Chiến lược giao dịch định lượng đa yếu tố

Tác giả:ChaoZhang, Ngày: 2023-12-27 15:46:27
Tags:

img

Tổng quan

Chiến lược này kết hợp chiến lược đảo ngược 123 và chiến lược đường tâm lý để tạo thành một chiến lược giao dịch định lượng đa yếu tố. Bằng cách xem xét toàn diện các mô hình kỹ thuật, tâm lý thị trường và các yếu tố khác, chiến lược có thể đưa ra các phán đoán chính xác hơn khi xác định xu hướng thị trường.

Nguyên tắc

123 Chiến lược đảo ngược

Chiến lược đảo ngược 123 đánh giá rằng nếu giá đóng của ngày tăng so với ngày trước, và đường K chậm dưới 50, đi dài; nếu nó giảm, và đường K nhanh trên 50, đi ngắn. Chiến lược này tận dụng các đặc điểm của các sự đảo ngược ngắn hạn để kiếm lợi nhuận.

Chiến lược tuyến tâm lý

Chiến lược đường tâm lý đếm tỷ lệ tăng và giảm trong một chu kỳ nhất định. Nếu tăng lớn hơn 50%, nó cho thấy những con bò kiểm soát thị trường; nếu tăng thấp hơn 50%, nó cho thấy những con gấu kiểm soát thị trường. Hãy đưa ra phán đoán về tâm lý thị trường dựa trên tỷ lệ tăng và giảm.

Chiến lược này kết hợp các tín hiệu từ hai chiến lược trên: mở các vị trí khi hai chiến lược cung cấp tín hiệu theo cùng một hướng và đóng các vị trí khi cung cấp tín hiệu theo các hướng khác nhau.

Ưu điểm

Chiến lược kết hợp nhiều yếu tố và có thể đưa ra đánh giá chính xác hơn về xu hướng thị trường, tránh những đánh giá sai do một chỉ số kỹ thuật duy nhất gây ra.

Rủi ro và giải pháp

Việc thiết lập các tham số cho mỗi yếu tố trong chiến lược sẽ có tác động lớn hơn đến hiệu suất chiến lược. Sự kết hợp các tham số không hợp lý có thể làm giảm đáng kể hiệu quả của chiến lược. Ngoài ra, những thay đổi mạnh mẽ trong xu hướng cũng có thể khiến chiến lược thất bại. Để giảm rủi ro, chúng ta cần kiểm tra lại các điều kiện thị trường khác nhau để tìm các thiết lập tham số tối ưu; cũng kiểm soát kích thước vị trí để đảm bảo rằng một lỗ duy nhất sẽ không quá lớn.

Hướng dẫn tối ưu hóa

Trên cơ sở hiện tại, chúng ta có thể tiếp tục thêm các yếu tố đánh giá khác như biến động và khối lượng để hình thành một logic chiến lược ba chiều hơn; hoặc thêm thuật toán học máy để đạt được tối ưu hóa thích nghi tham số tự động.

Tóm lại

Chiến lược này xem xét một cách toàn diện nhiều yếu tố như các mô hình kỹ thuật và tâm lý thị trường. Việc xác nhận giữa các yếu tố khác nhau đảm bảo tính hợp lệ của tín hiệu. Đồng thời, nó để lại nhiều không gian để tối ưu hóa và dự kiến sẽ đạt được hiệu suất vượt trội. Đây là một chiến lược định lượng chất lượng cao đáng theo dõi, tích lũy và tối ưu hóa dài hạn.


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/04/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Psychological line (PSY), as an indicator, is the ratio of the number of 
// rising periods over the total number of periods. It reflects the buying 
// power in relation to the selling power.
// If PSY is above 50%, it indicates that buyers are in control. Likewise, 
// if it is below 50%, it indicates the sellers are in control. If the PSY 
// moves along the 50% area, it indicates balance between the buyers and 
// sellers and therefore there is no direction movement for the market.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


PLine(Length) =>
    pos = 0.0
    cof = close > close[1]? 1:0
    xPSY = sum(cof,Length) / Length * 100
    pos:= iff(xPSY > 50, 1,
           iff(xPSY < 50, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Psychological line", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Psychological line ----")
LengthPLine = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPLine = PLine(LengthPLine)
pos = iff(posReversal123 == 1 and posPLine == 1 , 1,
	   iff(posReversal123 == -1 and posPLine == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Thêm nữa