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


Ngày tạo: 2023-12-25 14:27:06 sửa đổi lần cuối: 2023-12-25 14:27:06
sao chép: 0 Số nhấp chuột: 687
1
tập trung vào
1623
Người theo dõi

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

[trans]

Tổng quan

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

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

  • Sử dụng chỉ số xu hướng siêu truyền thống để đánh giá xu hướng
  • Tăng các siêu xu hướng của khung thời gian cao, đảm bảo rằng khung thời gian cao cũng có xu hướng
  • Xác định hướng của xu hướng tổng thể dựa trên chỉ số siêu xu hướng của hai khung thời gian
  • Định thời điểm nhập cảnh cụ thể dựa trên đường đua của giá phá vỡ các kênh rung động

Phân tích lợi thế

  • Phân tích nhiều khung thời gian, xác định xu hướng một cách đáng tin cậy hơn
  • Kết hợp khung thời gian cao và thấp, đảm bảo xu hướng lớn và nắm bắt cơ hội ngắn hạn
  • Đường đi chấn động thiết lập điểm dừng lỗ, có lợi cho việc kiểm soát rủi ro

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

  • Các siêu xu hướng có thể bị chậm trễ và có thể bỏ lỡ điểm chuyển hướng.
  • Có thể xác định chuyển đổi xu hướng thông qua tối ưu hóa tham số hoặc kết hợp với các chỉ số khác để giảm nguy cơ bị tụt hậu

Hướng tối ưu hóa

  • Tối ưu hóa các tham số siêu xu hướng, giảm sự chậm trễ
  • Tăng bộ lọc xu hướng để đánh giá chính xác xu hướng
  • Kiểm tra và chọn phương pháp giảm thiệt hại phù hợp hơn

Tóm tắt

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 các xu hướng chính và tìm kiếm thời điểm tham gia cụ thể. Bằng cách tối ưu hóa liên tục, có thể đạt được lợi nhuận vượt trội ổn định trong thời gian dài.

||

Overview

This strategy is based on the Supertrend indicator, combined with multiple timeframe market trend analysis, and adopts the oscillation channel method to identify entry opportunities.

Strategy Principle

  • Use the traditional Supertrend indicator to determine the trend direction
  • Add Supertrend of higher timeframe to ensure there is a trend in higher timeframe too
  • Determine the overall trend direction based on the Supertrend indicators of two timeframes
  • Identify specific entry opportunities based on the price breakout of the upper and lower rails of the oscillation channel

Advantage Analysis

  • Multi-timeframe analysis makes trend judgment more reliable
  • Combining high and low timeframes ensures catching the major trend while being able to capture short-term opportunities
  • The oscillation channel setting stops loss points which helps risk control

Risks and Solutions

  • The Supertrend itself has some lagging phenomenon, which may miss trend reversal points
  • The lagging risk can be reduced by optimizing parameters or incorporating other indicators to assist in identifying trend changes

Optimization Directions

  • Optimize Supertrend parameters to reduce lagging
  • Add trend filtering indicators to ensure catching the major trend more accurately
  • Test and select more appropriate stop loss methods

Summary

This strategy integrates multi-timeframe analysis and trend tracking indicators to grasp the major trend while seeking specific entry opportunities. With continuous optimization, it is expected to achieve long-term steady excess returns.

Mã nguồn chiến lược
/*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)