Chiến lược kết hợp động lượng đa yếu tố và đảo chiều


Ngày tạo: 2023-10-23 15:11:20 sửa đổi lần cuối: 2023-10-23 15:11:20
sao chép: 0 Số nhấp chuột: 700
1
tập trung vào
1617
Người theo dõi

Chiến lược kết hợp động lượng đa yếu tố và đảo chiều

Tổng quan

Chiến lược này thực hiện mô hình đa yếu tố bằng cách kết hợp sử dụng chỉ số động lực CMO và chỉ số đảo ngược Stochastic để khám phá các cơ hội giao dịch trong các môi trường thị trường khác nhau.

Phân tích nguyên tắc

Chiến lược này bao gồm hai chiến lược con:

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

    • Sử dụng chỉ số Stochastic 9 ngày để đánh giá quá mua quá bán
    • Nếu giá đóng cửa tăng 2 ngày liên tiếp và Stochastic thấp hơn 50, hãy làm nhiều hơn
    • Nếu giá đóng cửa giảm 2 ngày liên tiếp và Stochastic cao hơn 50, tháo lỗ
  2. Chiến lược giá trị tuyệt đối CMO

    • Tính toán giá trị tuyệt đối của CMO
    • CMO cho rằng họ đang mua quá mức khi giá trị tuyệt đối cao hơn 70
    • CMO nghĩ rằng mình đang bán quá mức khi giá trị tuyệt đối của mình thấp hơn 20

Cuối cùng, nếu hai tín hiệu chiến lược con phù hợp, tín hiệu giao dịch sẽ được phát ra.

Chiến lược này tận dụng lợi thế của chỉ số động lực CMO và chỉ số đảo ngược Stochastic. CMO có thể nhận ra xu hướng tốt hơn, còn Stochastic có thể phát hiện cơ hội đảo ngược ngắn hạn.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Mô hình đa yếu tố, kết hợp động lượng và đảo ngược, thích ứng với các môi trường thị trường khác nhau

  2. CMO có khả năng nhận biết xu hướng, Stochastic có khả năng đánh giá các điểm đảo ngược

  3. Chỉ giao dịch khi hai tín hiệu phù hợp, tránh tín hiệu sai và tăng tỷ lệ lợi nhuận

  4. Các tham số tối ưu có nhiều không gian, có thể điều chỉnh cho các giống và chu kỳ khác nhau

  5. Kết hợp các chỉ số ngắn và dài để khám phá thêm cơ hội giao dịch

  6. Quy tắc đơn giản, rõ ràng, dễ hiểu và phù hợp với giao dịch thuật toán

Phân tích rủi ro

Chiến lược này cũng có những rủi ro sau:

  1. Có khả năng các chiến lược con phát ra tín hiệu sai và cần phải tối ưu hóa các tham số

  2. Sự kiện bất ngờ khiến xu hướng đảo ngược, gây ra tổn thất lớn hơn

  3. Tỷ lệ giao dịch có thể quá cao, chi phí giao dịch là một yếu tố cần xem xét

  4. Các chiến lược con đều là các chỉ số trì hoãn, có vấn đề về thời gian trễ

  5. Cần điều chỉnh tham số cho các giống khác nhau, yêu cầu tối ưu hóa tham số cao hơn

Phản ứng:

  1. Các tham số chiến lược phụ tối ưu hóa để giảm khả năng tín hiệu sai

  2. Thiết lập dừng lỗ, kiểm soát lỗ đơn

  3. Điều chỉnh các điều kiện mở cửa để giảm tần suất giao dịch

  4. Sử dụng dữ liệu tick theo thời gian thực để giảm sự chậm trễ

  5. Tự động tối ưu hóa tham số bằng cách sử dụng phương pháp học máy

Hướng tối ưu hóa

Chính sách này có thể được tối ưu hóa bằng cách:

  1. Nhập nhiều yếu tố hơn, chẳng hạn như tỷ lệ biến động, giá trị, v.v., để tạo ra mô hình đa yếu tố có hệ thống

  2. Xây dựng cơ chế tối ưu hóa tham số động, điều chỉnh tham số theo tình hình thị trường

  3. Tối ưu hóa logic mở vị trí, đưa ra các phương pháp như xác suất và trơn tru chỉ số

  4. Đảm bảo mục tiêu kép trong việc bảo vệ các vị thế dài hạn trong thời gian ngắn

  5. Sử dụng Deep Learning để trích xuất nhiều tính năng hơn, xây dựng các quy tắc giao dịch phi tuyến tính

  6. Khám phá các mô hình không tham số, tránh sự sai lệch của tham số chọn nhân tạo

  7. Kết hợp dữ liệu tần số cao, các sự kiện tin tức, giảm sự chậm trễ tín hiệu

Tóm tắt

Chiến lược này thực hiện mô hình đa yếu tố để khám phá nhiều cơ hội giao dịch trong thị trường chuyển động bằng cách sử dụng chỉ số động lực CMO và chỉ số đảo ngược Stochastic. So với chỉ số đơn lẻ, kết hợp đa yếu tố có thể thích ứng với môi trường thị trường phức tạp hơn. Đồng thời, không gian tối ưu hóa tham số của chiến lược này rộng lớn, quy tắc đơn giản, phù hợp với phát triển giao dịch thuật toán.

Mã nguồn chiến lược
/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/09/2019
// 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
//    This indicator plots the absolute value of CMO. CMO was developed by Tushar 
//    Chande. A scientist, an inventor, and a respected trading system developer, 
//    Mr. Chande developed the CMO to capture what he calls "pure momentum". For 
//    more definitive information on the CMO and other indicators we recommend the 
//    book The New Technical Trader by Tushar Chande and Stanley Kroll.
//    The CMO is closely related to, yet unique from, other momentum oriented indicators 
//    such as Relative Strength Index, Stochastic, Rate-of-Change, etc. It is most closely 
//    related to Welles Wilder`s RSI, yet it differs in several ways:
//        - It uses data for both up days and down days in the numerator, thereby directly 
//          measuring momentum;
//        - The calculations are applied on unsmoothed data. Therefore, short-term extreme 
//          movements in price are not hidden. Once calculated, smoothing can be applied to 
//          the CMO, if desired;
//        - The scale is bounded between +100 and -100, thereby allowing you to clearly see 
//          changes in net momentum using the 0 level. The bounded scale also allows you to 
//          conveniently compare values across different securities.
//
// 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

CMOabs(Length, TopBand, LowBand) =>
    pos = 0
    xMom = abs(close - close[1])
    xSMA_mom = sma(xMom, Length)
    xMomLength = close - close[Length]
    nRes = abs(100 * (xMomLength / (xSMA_mom * Length)))
    pos := iff(nRes > TopBand, -1,
    	     iff(nRes < LowBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMOabs", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCMO = input(9, minval=1)
TopBand = input(70, minval=1)
LowBand = input(20, maxval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOabs = CMOabs(LengthCMO, TopBand, LowBand)
pos = iff(posReversal123 == 1 and posCMOabs == 1 , 1,
	   iff(posReversal123 == -1 and posCMOabs == -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 )