Chiến lược hợp chất chuyển động đảo ngược

Tác giả:ChaoZhang, Ngày: 2024-01-05 14:06:21
Tags:

img

Tổng quan

Chiến lược biến động biến động hợp chất kết hợp một chiến lược đảo ngược và một chiến lược biến động. Bằng cách sử dụng cả tín hiệu đảo ngược giá và tín hiệu chỉ số biến động, nó nắm bắt các điểm chuyển đổi thị trường chính xác hơn và đi vào thị trường kịp thời khi giá bắt đầu đảo ngược.

Chiến lược logic

Chiến lược bao gồm hai phần:

  1. 123 Chiến lược đảo ngược: Đi dài khi đóng cửa cao hơn đóng cửa trước trong 2 ngày liên tiếp sau 2 ngày đóng cửa thấp hơn và đường K chậm 9 ngày dưới 50; Đi ngắn khi đóng cửa thấp hơn đóng cửa trước trong 2 ngày liên tiếp sau 2 ngày đóng cửa cao hơn và đường K nhanh 9 ngày trên 50.

  2. DAPD Momentum Breakout Strategy: DAPD là sự khác biệt trung bình giữa mức cao nhất 21 ngày và mức thấp nhất 21 ngày. Xác định các điểm vào và ra dựa trên DAPD breakout.

Một tín hiệu vào được tạo ra khi hai chiến lược cung cấp các tín hiệu liên kết.

Ưu điểm

Chiến lược kết hợp các ưu điểm của chiến lược đảo ngược và động lực, nắm bắt các điểm chuyển đổi chính xác hơn.

  1. Bộ lọc kép làm tăng độ tin cậy tín hiệu, tỷ lệ thành công cao hơn khi các tín hiệu liên kết.

  2. Mô hình 123 làm giảm nguy cơ chém.

  3. Động lực DAPD phù hợp với các sản phẩm xu hướng.

Rủi ro

  1. Rủi ro không phù hợp thời gian tín hiệu.

  2. Khó để tối ưu hóa hai tập hợp các tham số cùng nhau.

  3. Rủi ro chi phí giao dịch tăng gấp đôi.

Tối ưu hóa

  1. Tối ưu hóa sự sắp xếp tín hiệu của hai chiến lược.

  2. Hiệu quả thử nghiệm của các bộ tham số khác nhau trên các sản phẩm khác nhau.

  3. Chỉ dùng tín hiệu mạnh để lọc những tín hiệu yếu.

Kết luận

Chiến lược biến đổi động lực hợp chất nắm bắt giá ngược kịp thời bằng cách kết hợp các ưu điểm của các chiến lược đảo ngược và động lực. Các bộ lọc kép làm tăng tỷ lệ thành công. Cải thiện hiệu suất hơn nữa có thể đạt được bằng cách tối ưu hóa sự sắp xếp tín hiệu. Chiến lược phù hợp với các nhà đầu tư có đủ vốn và chuyên môn giao dịch.


/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 10/12/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 is similar to Bollinger Bands. It based on DAPD - Daily
// Average Price Delta. DAPD is based upon a summation for each of the
// highs (hod) for the 21 days prior to today minus the summation for
// each of the lows (lod) for the last 21 days prior to today. The result
// of this calculation would then be divided by 21.
// It will be buy when high above previos DAPD high and sell if low below previos DAPD low
//
// 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

DAPD(Length) =>
    pos = 0.0
    xHighSMA = sma(high, Length)
    xLowSMA = sma(low, Length)        
    nDAPD = xHighSMA - xLowSMA
    nTop = high + nDAPD
    nBottom = low - nDAPD
    pos :=  iff(high > nTop[1], 1,
    	     iff(low < nBottom[1], -1, nz(pos[1], 0)))    
    pos

strategy(title="Combo Backtest 123 Reversal & DAPD", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDAPD = input(21, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDAPD = DAPD(LengthDAPD)
pos = iff(posReversal123 == 1 and posDAPD == 1 , 1,
	   iff(posReversal123 == -1 and posDAPD == -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