Chiến lược hợp nhất nắm bắt xu hướng theo dõi kép


Ngày tạo: 2023-11-06 11:49:41 sửa đổi lần cuối: 2023-11-06 11:49:41
sao chép: 0 Số nhấp chuột: 646
1
tập trung vào
1621
Người theo dõi

Chiến lược hợp nhất nắm bắt xu hướng theo dõi kép

Tổng quan

Chiến lược này kết hợp hai chiến lược con là 123 Reversal và SMA Elastic Oscillator để tạo thành chiến lược theo dõi xu hướng của tín hiệu lọc hai quỹ đạo. Chiến lược 123 Reversal đánh giá điểm biến tiềm năng thông qua hình dạng đường K; SMA Elastic Oscillator sử dụng đường trung bình di chuyển để xác định hướng xu hướng. Cả hai đều được xác minh lẫn nhau, tạo thành cơ chế xác nhận kép, có thể lọc hiệu quả các tín hiệu sai, nắm bắt hướng xu hướng mạnh hơn, và thực hiện giao dịch theo dõi xu hướng.

Nguyên tắc chiến lược

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

Chiến lược này bắt nguồn từ hệ thống P183 của Ulf Jensen trong cuốn sách Làm thế nào tôi có được lợi nhuận gấp ba lần trên thị trường tương lai. thuộc loại chiến lược đảo ngược. Khi giá đóng cửa cao hơn giá đóng cửa ngày trước 2 ngày liên tiếp và đường dài của chỉ số ngẫu nhiên vào ngày 9 thấp hơn 50, làm nhiều; Khi giá đóng cửa thấp hơn giá đóng cửa ngày trước 2 ngày liên tiếp và đường dài của chỉ số ngẫu nhiên vào ngày 9 cao hơn 50.

  1. Máy dao động đàn hồi SMA

Chỉ số này tương tự như chỉ số TSI được phát triển bởi William Blau, khác biệt là dao động SMA chứa một đường tín hiệu. Chỉ số SMA linh hoạt sử dụng giá trừ đi đường trung bình di chuyển kép của giá ngày hôm trước, sau đó vẽ đường trung bình di chuyển chỉ số của SMA làm đường tín hiệu để phát tín hiệu giao dịch. Các tham số chỉ số có thể được điều chỉnh để tối ưu hóa.

Xác nhận kép: Chỉ mở vị trí khi 123 đảo ngược và chỉ số linh hoạt SMA phát tín hiệu đồng hướng. Khi hai tín hiệu không đồng hướng, giữ vị trí trống.

Lợi thế chiến lược

  1. Kết hợp nhiều chỉ số, tạo ra cơ chế xác nhận kép, có thể lọc hiệu quả các tín hiệu sai.

  2. 123 Chiến lược đảo ngược sử dụng hình dạng K-line để xác định điểm đảo ngược tiềm năng. SMA Elastic Oscillator phát tín hiệu thông qua việc đánh giá xu hướng, cả hai đều được xác minh lẫn nhau, bù đắp cho sự thiếu hụt của chỉ số đơn lẻ.

  3. Các tham số của dao động linh hoạt SMA có thể điều chỉnh, có thể được tối ưu hóa cho các giống và chu kỳ khác nhau, linh hoạt.

  4. Nhìn chung, nó là một chiến lược theo dõi xu hướng, có thể được sử dụng để tiếp tục nắm bắt các xu hướng mạnh mẽ hơn.

Rủi ro chiến lược

  1. Sự tích hợp và cân bằng giữa chiến lược đảo ngược và chiến lược xu hướng cần phải được tối ưu hóa liên tục, nếu không có thể bỏ lỡ điểm đảo ngược hoặc tạo ra tổn thất lớn.

  2. Chiến lược đảo ngược tự nó có một số rủi ro giao dịch sai và cần điều chỉnh các tham số để giảm tỷ lệ thất bại.

  3. Chiến lược theo dõi thuần túy không thể xác định điểm đảo ngược xu hướng, có nguy cơ mất mát tiềm ẩn. Cần giảm vị trí thích hợp để tránh rủi ro.

  4. Các loại khác nhau và các tham số chu kỳ cần được thử nghiệm tối ưu hóa nhiều lần, không nên mang theo ổ cứng.

Tối ưu hóa chiến lược

  1. Điều chỉnh các tham số 123 để giảm tỷ lệ giao dịch sai.

  2. Điều chỉnh tham số dao động linh hoạt SMA, tối ưu hóa độ nhạy của chỉ số.

  3. Thêm chiến lược dừng lỗ để giảm tổn thất một lần.

  4. Kết hợp với các chỉ số khác để đánh giá khả năng đảo ngược, giảm bớt khi thích hợp.

  5. Kiểm tra các thông số tối ưu hóa của các giống khác nhau, nâng cao tính ổn định.

Tóm tắt

Chiến lược này kết hợp các lợi thế của chiến lược theo dõi xu hướng mạnh mẽ thông qua cơ chế xác nhận kép, tích hợp đảo ngược và chiến lược xu hướng. Nó có thể loại bỏ tiếng ồn một cách hiệu quả, do đó, tiếp tục nắm bắt các cơ hội xu hướng tốt.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/07/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
// The SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by 
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages 
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the 
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine 
// tune these signals. The user may change the input (close), method (EMA), period lengths 
// and guide values.
//
// 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


SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand) =>
    pos = 0.0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
    xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
    xSMI = xSMA_R / xSMA_aR
    xEMA_SMI = ema(xSMI, SmthLen)
    pos:= iff(xEMA_SMI < LowBand, -1,
    	   iff(xEMA_SMI > TopBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & SMI Ergodic Oscillator", 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, "---- SMI Ergodic Oscillator ----")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSMI_Erg = SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSMI_Erg == 1 , 1,
	   iff(posReversal123 == -1 and posSMI_Erg == -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 )