Chiến lược theo dõi xu hướng kênh dao động nhiều khung thời gian

Tác giả:ChaoZhang, Ngày: 2023-12-25 14:27:06
Tags:

Tổng quan

Chiến lược này dựa trên chỉ số Supertrend, kết hợp với phân tích xu hướng thị trường nhiều khung thời gian và áp dụng phương pháp kênh dao động để xác định các cơ hội nhập cảnh.

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

  • Sử dụng chỉ số Supertrend truyền thống để xác định hướng xu hướng
  • Thêm Supertrend của khung thời gian cao hơn để đảm bảo có một xu hướng trong khung thời gian cao hơn
  • Xác định hướng xu hướng tổng thể dựa trên các chỉ số Supertrend của hai khung thời gian
  • Xác định các cơ hội nhập cảnh cụ thể dựa trên sự phá vỡ giá của đường ray trên và dưới của kênh dao động

Phân tích lợi thế

  • Phân tích nhiều khung thời gian giúp đánh giá xu hướng đáng tin cậy hơn
  • Kết hợp các khung thời gian cao và thấp đảm bảo nắm bắt xu hướng chính trong khi có thể nắm bắt các cơ hội ngắn hạn
  • Các cài đặt kênh dao động dừng điểm mất mát giúp kiểm soát rủi ro

Rủi ro và giải pháp

  • Bản thân Supertrend có một số hiện tượng chậm lại, có thể bỏ lỡ các điểm đảo ngược xu hướng.
  • Nguy cơ chậm trễ có thể được giảm bằng cách tối ưu hóa các tham số hoặc kết hợp các chỉ số khác để hỗ trợ xác định sự thay đổi xu hướng

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

  • Tối ưu hóa các thông số Supertrend để giảm chậm
  • Thêm các chỉ số lọc xu hướng để đảm bảo nắm bắt xu hướng chính xác hơn
  • Kiểm tra và chọn các phương pháp dừng lỗ phù hợp hơn

Tóm lại

Chiến lược này tích hợp phân tích nhiều khung thời gian và các chỉ số theo dõi xu hướng để nắm bắt xu hướng chính trong khi tìm kiếm các cơ hội nhập cảnh cụ thể.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ramki_simple
// Thanks to LonesomeTheBlue for the original code
//@version=4
strategy("Multi Supertrend with no-repaint HTF option strategy", overlay = true, shorttitle='Multi Supertrend')
//auto higher time frame
HTFAuto = timeframe.period == '1' ? '5' : 
  timeframe.period == '3' ? '15' : 
  timeframe.period == '5' ? '15' : 
  timeframe.period == '15' ? '60' : 
  timeframe.period == '30' ? '60' : 
  timeframe.period == '45' ? '60' : 
  timeframe.period == '60' ? '240' : 
  timeframe.period == '120' ? '240' : 
  timeframe.period == '180' ? '240' : 
  timeframe.period == '240' ? 'D' : 
  timeframe.period == 'D' ? 'W' :
  '5W'
HTFSelection = input(title='Select HTF Automatically for Additional Supertrend', type=input.bool, defval=false)
HTFUserSel = input(title='Select Higher Timeframe for Additional Supertrend',type=input.resolution, defval ='')
HTF = HTFSelection ? HTFAuto : HTFUserSel


Mult1 = input(title='Multiplier for Default Supertrend', defval=3.0, minval = 0, maxval = 10)
Period1 = input(title='Period for Default Supertrend', defval=10, minval = 1, maxval = 100)
Mult2 = input(title='Multiplier for Additional Supertrend', defval=2.0, minval = 0, maxval = 10)
Period2 = input(title='Period for Additional Supertrend', defval=14, minval = 1, maxval = 100)

chbarcol = input(true, title = "Change Bar Color")

[Trailings, Trend] = supertrend(Mult1, Period1)

linecolor = Trend == -1 and Trend[1] == -1 ? color.teal :
   Trend == 1 and Trend[1] == 1 ? color.red :
   color.new(color.white, 100)
plot(Trailings, color = linecolor,  linewidth = 2,title = "SuperTrend")

f_Security(_symbol, _res, _src) => security(_symbol, _res, _src[1], lookahead = barmerge.lookahead_on)

nonVectorSupertrend(Mult, Period) =>
    [Trail_, Trend_] = supertrend(Mult, Period)
    Trail_*Trend_


[TrailingslHtf, TrendHtf] = supertrend(Mult2, Period2)

if HTF != timeframe.period and HTF != ''
    CompositeTrailHtf = f_Security(syminfo.tickerid, HTF,nonVectorSupertrend(Mult2, Period2) )
    TrailingslHtf := abs(CompositeTrailHtf)
    TrendHtf := CompositeTrailHtf > 0 ? 1 : -1


linecolorHtf = TrendHtf == -1 and TrendHtf[1] == -1 ? color.blue :
   TrendHtf == 1 and TrendHtf[1] == 1 ? color.maroon :
   color.new(color.white, 100)
plot(TrailingslHtf, color = linecolorHtf, linewidth = 3, title = "Supertrend Higher Time Frame")

barcolor_ = Trend == -1 and TrendHtf == -1 ? color.lime :
   Trend == 1 and TrendHtf == 1 ? color.red :
   color.white
barcolor(color = chbarcol ? barcolor_ : na)

vwapfilter = input(false)

Long = Trend == -1 and TrendHtf == -1
Short = Trend == 1 and TrendHtf == 1
strategy.entry("enter long", true, 1, when = Long and not Long[1] and (vwapfilter and close > vwap or not vwapfilter))
strategy.entry("enter short", false, 1, when = Short and not Short[1] and (vwapfilter and close < vwap or not vwapfilter))
strategy.close("enter long", when = Long[1] and not Long)
strategy.close("enter short", when = Short[1] and not Short)

Thêm nữa