Chiến lược này dựa trên các kênh băng tần tự thích ứng, được thiết kế với hai chiến lược dừng lỗ theo dõi khác nhau, được xác minh lại một cách có hệ thống trong nhiều khung thời gian, thuộc chiến lược giao dịch theo dõi xu hướng.
Tính toán đường ray lên xuống của kênh băng tần tự điều chỉnh chiều rộng của kênh thông qua các tham số.
Chiến lược theo dõi phá vỡ, mở lệnh sau khi giá phá vỡ cổng và dừng lỗ trong cổng.
Chiến lược đảo ngược trở lại, mở vị trí khi giá đến kênh và dừng khi giá trở lại kênh.
Chỉ số CCI hỗ trợ việc đánh giá số lượng đường bay.
Thử nghiệm phản hồi nhiều khung thời gian đã chứng minh tính khả thi của cả hai chiến lược.
Đường băng tần đơn giản và trực quan, có thể nắm bắt được xu hướng giá một cách hiệu quả.
Cả hai chiến lược này có thể thích ứng với các tình huống thị trường khác nhau để tăng cường sự ổn định.
Chỉ số CCI có thể hỗ trợ việc đánh giá số lượng trống.
Nhiều khung thời gian làm cho kết quả trở nên thuyết phục hơn.
Các quy tắc chiến lược rất đơn giản, rõ ràng và dễ thực hiện.
Các trường hợp có thể xảy ra hư hỏng đường băng tần.
Cả hai chiến lược này đều có nguy cơ dừng quá sớm hoặc quá muộn.
Chỉ số CCI có thể phát ra tín hiệu sai.
Những sai lệch trong dữ liệu phản hồi cần được xử lý cẩn thận.
Các tham số có thể có quá phù hợp khi tối ưu hóa.
Kiểm tra các tham số khác nhau để tìm ra sự kết hợp tối ưu.
Đánh giá thêm các chỉ số khác để lọc tín hiệu.
Tối ưu hóa chiến lược dừng lỗ và giảm rủi ro.
Nghiên cứu phương pháp tính toán chiều rộng tự điều chỉnh của kênh.
Thử nghiệm lại và xác minh trong nhiều giống và chu kỳ.
Các tham số tối ưu hóa động theo phương pháp học máy.
Chiến lược này được thiết kế dựa trên hai chiến lược theo dõi dừng lỗ dựa trên kênh băng tần, được kiểm chứng lại trong nhiều khung thời gian. Bằng cách tối ưu hóa tham số, cải thiện chiến lược dừng lỗ, có thể tăng cường sự ổn định của hệ thống, phát triển nó thành một hệ thống giao dịch theo dõi xu hướng đáng tin cậy.
/*backtest
start: 2022-09-13 00:00:00
end: 2023-09-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "Underworld Hunter", overlay=true)
len = input(75, minval=1, title="Length")
src = input(close, title="Source")
basis = 0.0
basis := na(basis[1]) ? sma(src, len) : ema(ema(ema(src,len),len),len)
mult = input(1.9, minval=0.001, maxval=50, title="Deviation")
dev = mult * stdev(src, len)
upper = basis + dev
lower = basis - dev
//CCI calculation and inputs
lengthcci = input(20, minval=1, title="Period for CCI")
ma = sma(close, lengthcci)
ccivalue = (src - ma) / (0.015 * dev(src, lengthcci))
//CCI plotting
cciover0 = ccivalue >= 100 and ccivalue <= 120
cciover1 = ccivalue > 120 and ccivalue <= 140
cciover2 = ccivalue > 140 and ccivalue <= 160
cciover3 = ccivalue > 160 and ccivalue <= 180
cciover4 = ccivalue > 180
cciunder0 = ccivalue <= -100 and ccivalue >= -120
cciunder1 = ccivalue <= -120 and ccivalue > -140
cciunder2 = ccivalue <= -140 and ccivalue > -160
cciunder3 = ccivalue <= -160 and ccivalue > -180
cciunder4 = ccivalue <= -180
plotshape(cciover0, title="CCIO0", location=location.abovebar, color=#c6ff1a, transp=0, style=shape.circle, size=size.tiny)
plotshape(cciunder0, title="CCIU0", location=location.belowbar, color=#c6ff1a, transp=0, style=shape.circle, size=size.tiny)
plotshape(cciover1, title="CCIO1", location=location.abovebar, color=#ffff00, transp=0,style=shape.circle, size=size.tiny)
plotshape(cciunder1, title="CCIU1", location=location.belowbar, color=#ffff00, transp=0, style=shape.circle, size=size.tiny)
plotshape(cciover2, title="CCIO2", location=location.abovebar, color=#ff9900, transp=0, style=shape.circle, size=size.tiny)
plotshape(cciunder2, title="CCIU2", location=location.belowbar, color=#ff9900, transp=0, style=shape.circle, size=size.tiny)
plotshape(cciover3, title="CCIO3", location=location.abovebar, color=#ff0000, transp=0, style=shape.circle, size=size.tiny)
plotshape(cciunder3, title="CCIU3", location=location.belowbar, color=#ff0000, transp=0, style=shape.circle, size=size.tiny)
plotshape(cciover4, title="CCIO4", location=location.abovebar, color=#cc00cc, transp=0,style=shape.circle, size=size.tiny)
plotshape(cciunder4, title="CCIU4", location=location.belowbar, color=#cc00cc, transp=0,style=shape.circle, size=size.tiny)
//plotting
plot(upper, title="Upper shadow", color=color.black, transp = 30, linewidth = 4)
plot(upper, title="Upper line", color=#FF2E00, transp = 0, linewidth = 2)
plot(lower, title="Lower shadow", color=color.black, transp = 30, linewidth = 4)
plot(lower, title="Lower line", color=#FF2E00, transp = 0, linewidth = 2)
plot(basis, title="Basic line", color=color.red, transp = 50, linewidth = 2)
mean = input(title="Test Reverse to the Mean instead", type=input.bool, defval=false)
test = input(title="Enable testing", type=input.bool, defval=true)
ordersize=floor(50000/close)
if(close>upper and strategy.opentrades==0 and not mean and test)
strategy.entry("Hunt Up", strategy.long, ordersize)
if (close<upper and close[1]<upper and close[2]<upper)
strategy.close("Hunt Up", qty_percent = 100, comment = "Hunt End")
if(close<lower and strategy.opentrades==0 and not mean and test)
strategy.entry("Hunt Down", strategy.short, ordersize)
if (close>lower and close[1]>lower and close[2]>lower)
strategy.close("Hunt Down", qty_percent = 100, comment = "Hunt End")
//bounce of bands
if(close>upper and strategy.opentrades==0 and mean and test)
strategy.entry("Sneak Down", strategy.short, ordersize)
if (close<upper and close[1]<upper and close[2]<upper and close>high[1])
strategy.close("Sneak Down", qty_percent = 100, comment = "SneakEnd")
if(close<lower and strategy.opentrades==0 and mean and test)
strategy.entry("Sneak Up", strategy.long, ordersize)
if (close>lower and close[1]>lower and close[2]>lower and close<low[1])
strategy.close("Sneak Up", qty_percent = 100, comment = "Sneak End")