Chiến lược Combination Momentum Reversal

Tác giả:ChaoZhang, Ngày: 2024-01-12 12:22:47
Tags:

img

Tổng quan

Chiến lược này kết hợp chiến lược 123 Reversal và chiến lược trung bình chuyển động CMO để tạo ra các tín hiệu giao dịch kết hợp. Chiến lược 123 Reversal tạo ra các tín hiệu giao dịch bằng cách hình thành mức cao hoặc thấp mới từ giá đóng trong hai ngày liên tiếp kết hợp với các phán đoán về động lực thị trường từ Trình dao động Stochastic. Chiến lược trung bình chuyển động CMO sử dụng chỉ số CMO để xác định động lực giá và tạo ra các tín hiệu giao dịch. Sự kết hợp các tín hiệu từ cả hai chiến lược có thể tạo ra các tín hiệu kết hợp đáng tin cậy hơn.

Chiến lược logic

Chiến lược 123 Reversal tạo ra các tín hiệu giao dịch dựa trên logic sau:

  1. Khi giá đóng tăng trong hai ngày liên tiếp và Động cơ Stochastic 9 ngày dưới 50, mua dài.

  2. Khi giá đóng giảm trong hai ngày liên tiếp và Động cơ Stochastic 9 ngày trên 50, hãy bán ngắn.

Bằng cách đánh giá liệu giá có hình thành mức cao hay thấp mới trong ngắn hạn kết hợp với chỉ báo về động lực của Stochastic Oscillator, các tín hiệu giao dịch được tạo ra.

Chiến lược trung bình động của CMO tạo ra các tín hiệu giao dịch dựa trên logic sau:

  1. Tính toán các giá trị CMO trong 5, 10 và 20 ngày.

  2. Lấy trung bình.

  3. Khi CMO trung bình lên trên 70, đi dài.

  4. Khi CMO trung bình giảm xuống dưới -70, đi ngắn.

Bằng cách thực hiện các hoạt động tổng thể trên các giá trị CMO của các khung thời gian khác nhau, chiến lược xác định hướng động lực giá và tạo ra các tín hiệu giao dịch.

Chiến lược combo thực hiện một hoạt động AND trên các tín hiệu của hai chiến lược, có nghĩa là các tín hiệu giao dịch thực tế chỉ được kích hoạt khi cả hai chiến lược cung cấp tín hiệu mua hoặc bán đồng thời.

Ưu điểm

Những lợi thế của chiến lược này bao gồm:

  1. Các tín hiệu kết hợp đáng tin cậy hơn với ít tín hiệu sai hơn.

  2. 123 Chiến lược đảo ngược ghi lại xu hướng sau khi điều chỉnh ngắn hạn.

  3. Chiến lược trung bình động của CMO đánh giá đà tăng trong các khung thời gian lớn hơn.

  4. Có thể thích nghi với môi trường thị trường khác nhau.

Phân tích rủi ro

Những rủi ro của chiến lược này bao gồm:

  1. 123 Chiến lược đảo ngược phụ thuộc rất nhiều vào mô hình giá và có thể thất bại đôi khi.

  2. Chỉ số CMO nhạy cảm với biến động thị trường, có thể tạo ra các tín hiệu sai.

  3. Các tín hiệu của chiến lược kết hợp có thể quá bảo thủ, bỏ lỡ các cơ hội giao dịch.

  4. Cần điều chỉnh các tham số thích hợp để thích nghi với các chu kỳ và môi trường thị trường khác nhau.

Các biện pháp đối phó là:

  1. Tối ưu hóa các quy tắc nhận dạng mẫu của chiến lược đảo ngược.

  2. Thêm các chỉ số phụ khác vào chiến lược trung bình động của CMO.

  3. Đánh giá hiệu suất gần đây một cách năng động và điều chỉnh các thông số phù hợp.

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

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

  1. Sử dụng các thuật toán máy học để tự động tối ưu hóa các trọng lượng combo.

  2. Thêm các mô-đun điều chỉnh thích nghi để tối ưu hóa các tham số một cách năng động.

  3. Thêm các mô-đun dừng lỗ để kiểm soát rủi ro hiệu quả.

  4. Đánh giá độ vững chắc của chiến lược và cải thiện các thuật toán nhận dạng mẫu.

  5. Bao gồm sự lựa chọn ngành, các yếu tố cơ bản và các yếu tố khác.

Kết luận

Chiến lược này tạo thành một hệ thống giao dịch kết hợp hiệu quả từ hai chiến lược bổ sung cao - 123 Reversal và trung bình động CMO. Với kiểm soát rủi ro thích hợp, nó có thể tạo ra lợi nhuận alpha ổn định. Khi các thuật toán và mô hình tiếp tục được nâng cấp, lợi nhuận và sự ổn định của chiến lược này dự kiến sẽ được cải thiện hơn nữa.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/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 average of three different length CMO's. This indicator 
//    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

CMOav(Length1,Length2,Length3, TopBand, LowBand) =>
    pos = 0
    xMom = close - close[1]
    xMomabs = abs(close - close[1])
    nSum1 = sum(xMom, Length1)
    nSumAbs1 = sum(xMomabs, Length1)
    nSum2 = sum(xMom, Length2)
    nSumAbs2 = sum(xMomabs, Length2)
    nSum3 = sum(xMom, Length3)
    nSumAbs3 = sum(xMomabs, Length3)
    nRes = 100 * (nSum1 / nSumAbs1 + nSum2 / nSumAbs2 + nSum3 / nSumAbs3 ) / 3
    pos := iff(nRes > TopBand, 1,
    	     iff(nRes < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMOav", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length1 = input(5, minval=1)
Length2 = input(10, minval=1)
Length3 = input(20, minval=1)
TopBand = input(70, minval=1)
LowBand = input(-70, maxval=-1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOav = CMOav(Length1,Length2,Length3, TopBand, LowBand)
pos = iff(posReversal123 == 1 and posCMOav == 1 , 1,
	   iff(posReversal123 == -1 and posCMOav == -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