Chiến lược Combination Momentum Reversal

Tác giả:ChaoZhang, Ngày: 2023-10-23 15:11:20
Tags:

img

Tổng quan

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

Phân tích logic

Chiến lược bao gồm hai tiểu chiến lược:

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

    • Sử dụng Stochastic 9 ngày để xác định mức mua quá mức và bán quá mức

    • Đi dài nếu giá đóng tăng trong 2 ngày liên tiếp và Stochastic dưới 50

    • Đi ngắn nếu giá đóng giảm trong 2 ngày liên tiếp và Stochastic trên 50

  2. Chiến lược giá trị tuyệt đối của CMO

    • Tính toán giá trị tuyệt đối của CMO

    • CMO trên 70 chỉ ra mua quá mức, mua ngắn

    • CMO dưới 20 chỉ ra bán quá mức, đi dài

Cuối cùng, một tín hiệu giao dịch được tạo ra khi hai chiến lược phụ đồng ý.

Chiến lược sử dụng đầy đủ các điểm mạnh của chỉ số động lực CMO và chỉ số đảo ngược Stochastic. CMO là tốt trong việc xác định xu hướng trong khi Stochastic hữu ích để bắt đảo ngược ngắn hạn. Sự kết hợp cho phép mô hình khám phá các cơ hội trên các giai đoạn thị trường khác nhau.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Mô hình đa yếu tố thích nghi với môi trường thị trường khác nhau

  2. CMO có khả năng phát hiện xu hướng mạnh mẽ, Stochastic xác định chính xác các điểm đảo ngược

  3. Chỉ giao dịch khi hai tín hiệu đồng ý tránh tín hiệu sai và cải thiện lợi nhuận

  4. Không gian điều chỉnh tham số lớn cho phép tối ưu hóa cho các sản phẩm và khung thời gian khác nhau

  5. Kết hợp các chỉ số dài hạn và ngắn hạn khám phá ra nhiều cơ hội hơn

  6. Quy tắc đơn giản và rõ ràng, dễ hiểu và tự động hóa, phù hợp với giao dịch algos

Phân tích rủi ro

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

  1. Khả năng tín hiệu sai từ các chiến lược con tồn tại, các thông số cần tối ưu hóa

  2. Sự thay đổi đột ngột có thể dẫn đến tổn thất lớn

  3. Tần suất giao dịch cao, chi phí giao dịch cần được xem xét

  4. Tính chất chậm của các chỉ số dẫn đến sự chậm trễ

  5. Điều chỉnh tham số là thách thức cho các sản phẩm khác nhau

Giải pháp:

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

  2. Sử dụng stop loss để giới hạn lỗ cho mỗi giao dịch

  3. Điều chỉnh các quy tắc nhập vào tần suất giao dịch thấp hơn

  4. Sử dụng dữ liệu tick để giảm thiểu sự chậm trễ

  5. Áp dụng máy học để điều chỉnh tham số tự động

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

Chiến lược có thể được cải thiện trong các khía cạnh sau:

  1. Tạo thêm các yếu tố như biến động và khối lượng cho một 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ố năng động thích nghi với các chế độ thị trường

  3. Tối ưu hóa logic nhập bằng cách sử dụng xác suất và làm mịn theo cấp số nhân v.v.

  4. Bảo hiểm vị trí dài hạn với các giao dịch ngắn hạn để đạt được mục tiêu kép

  5. Tạo thêm các tính năng với deep learning để 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 có tham số để tránh sự thiên vị của con người

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

Kết luận

Chiến lược này sử dụng chỉ số động lực CMO và chỉ số đảo ngược Stochastic để xây dựng một mô hình đa yếu tố cho các cơ hội giao dịch trong các thị trường xu hướng và bên cạnh. So với các mô hình đơn yếu tố, cách tiếp cận đa yếu tố thích nghi tốt hơn với môi trường thị trường phức tạp. Trong khi đó, không gian điều chỉnh tham số lớn và các quy tắc đơn giản làm cho nó dễ dàng tối ưu hóa và tự động hóa, phù hợp với phát triển giao dịch algô. Tuy nhiên, quản lý rủi ro là rất quan trọng, và nhu cầu cao về lựa chọn tham số và tối ưu hóa mô hình là cần thiết. Nhìn chung, chiến lược hỗn hợp đảo ngược động lực cung cấp một ý tưởng giao dịch có hệ thống xứng đáng để tham khảo và khám phá.


/*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 )

Thêm nữa