Chiến lược thu thập xu hướng tổng hợp hai hướng

Tác giả:ChaoZhang, Ngày: 2023-11-06 11:49:41
Tags:

img

Tổng quan

Chiến lược này hợp nhất các chiến lược phụ 123 Reversal và SMA Ergodic Oscillator để tạo thành một chiến lược theo dõi xu hướng với lọc tín hiệu hai đường. Chiến lược 123 Reversal đánh giá các điểm chuyển đổi tiềm năng thông qua các mẫu nến; SMA Ergodic Oscillator xác định hướng xu hướng bằng cách sử dụng đường trung bình động. Chúng xác minh lẫn nhau để tạo thành một cơ chế xác nhận kép, có thể lọc hiệu quả các tín hiệu sai và nắm bắt các hướng xu hướng tương đối mạnh để theo dõi xu hướng giao dịch.

Chiến lược logic

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

Chiến lược này được lấy từ hệ thống trên trang 183 của cuốn sách của Ulf Jensen How I Tripled My Money in the Futures Market. Nó thuộc loại đảo ngược. Khi giá đóng cao hơn giá đóng trước trong 2 ngày liên tiếp, và đường chậm của stochastic 9 ngày dưới 50, đi dài; khi giá đóng thấp hơn giá đóng trước trong 2 ngày liên tiếp, và đường nhanh của stochastic 9 ngày trên 50, đi ngắn.

  1. SMA Ergodic Oscillator

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

Chứng minh hai lần: chỉ mở các vị trí khi 123 Reversal và SMA Ergodic đưa ra tín hiệu theo cùng một hướng.

Ưu điểm

  1. Tích hợp nhiều chỉ số 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.

  2. 123 Chiến lược đảo ngược đánh giá các điểm đảo ngược tiềm năng thông qua các mô hình nến. SMA Ergodic Oscillator phát ra các tín hiệu dựa trên đánh giá xu hướng. Chúng bổ sung lẫn nhau để vượt qua những hạn chế của các chỉ số duy nhất.

  3. Các thông số của SMA Ergodic Oscillator có thể điều chỉnh để tối ưu hóa trên các sản phẩm và khung thời gian khác nhau.

  4. Là một chiến lược theo dõi xu hướng tổng thể, nó có thể theo dõi xu hướng liên tục để nắm bắt động lực mạnh mẽ.

Rủi ro

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

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

  3. Các chiến lược theo xu hướng thuần túy không thể đánh giá sự đảo ngược. Có những rủi ro mất mát tiềm năng. Kích thước vị trí nên được giảm theo thời gian để tránh rủi ro.

  4. Các thông số cần tối ưu hóa và thử nghiệm lặp đi lặp lại cho các sản phẩm và khung thời gian khác nhau.

Những cải tiến

  1. Điều chỉnh các tham số của 123 Reversal để giảm tần suất giao dịch sai.

  2. Điều chỉnh các tham số của SMA Ergodic Oscillator để tối ưu hóa độ nhạy của chỉ báo.

  3. Thêm chiến lược dừng lỗ để giới hạn lỗ trên mỗi giao dịch.

  4. Kết hợp các chỉ số khác để đánh giá khả năng đảo ngược và giảm kích thước vị trí theo thời gian.

  5. Các thông số thử nghiệm trên các sản phẩm khác nhau để cải thiện độ bền.

Tóm lại

Chiến lược này tích hợp các lợi thế của các chiến lược đảo ngược và xu hướng thông qua cơ chế xác nhận kép, tạo ra hiệu ứng theo dõi xu hướng mạnh mẽ. Nó có thể lọc hiệu quả tiếng ồn, theo xu hướng và liên tục nắm bắt các cơ hội xu hướng chất lượng cao. Trong khi đó, có một số rủi ro rút vốn tồn tại. Các thông số cần tối ưu hóa liên tục và kiểm soát rủi ro bằng cách dừng lỗ. Chìa khóa là cân bằng đảo ngược và xu hướng, cộng với dừng lỗ. Nó có thể hoạt động tốt hơn cho việc theo dõi dài hạn. Nhìn chung, chiến lược này có giá trị thực tế, và có thể được sử dụng như một phần của danh mục chiến lược, hoặc độc lập.


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

Thêm nữa