这个策略是基于唐奇安通道的长期趋势跟踪策略。它使用唐奇安通道的上轨和下轨来寻找价格突破口,在突破口发生时进入市场。同时它使用通道的中轨作为止损线来退出市场。这个策略适用于有明显趋势的市场,可以捕捉长期趋势以获得高额利润。
该策略使用长度为20周期的唐奇安通道。通道的上轨是最近20周期内的最高价,下轨是最近20周期内的最低价。中轨默认长度是上下轨的2倍,也可以设置为和上下轨相同长度。当价格突破上轨时,做多;当价格突破下轨时,做空。当价格跌破中轨时,平掉多单;当价格涨破中轨时,平掉空单。
使用更长的中轨长度可以让获利头寸有更大的运行空间,在市场存在趋势时能够获得更高的利润。其实,长度为上下轨2倍的中轨非常接近 Wilder 推荐的 3 倍 ATR 移动止损。所以这个更长的中轨可以作为趋势跟踪策略的替代止损方法。
该策略具有以下优势:
该策略也存在一些风险:
可以通过适当缩短中轨长度或搭配其他止损指标来降低风险。也可以优化入场逻辑以减少不必要的交易。
该策略可以从以下几个方面进行优化:
该策略整体来说是一个非常简单的长期趋势跟踪策略。它使用唐奇安通道指标判断趋势方向并入场,以中轨进行移动止损。在趋势明显的市场中,它可以获得较高的盈利。但该策略也存在一定的风险,需要对参数和止损逻辑进行优化,以获得更稳定的效果。
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// Donchian Channels Strategy - Long Term Trend
// by SparkyFlary
//For Educational Purposes
//Results can differ on different markets and can fail at any time. Profit is not guaranteed.
strategy("Donchian Channels Strategy - Long Term Trend", shorttitle="Donchian Channels LT Strategy", overlay=true)
length = input(20, title="Donchian Channel length")
option = input("double", title="Middleband length: regular or double", options=["regular","double"])
upperband = highest(high, length)[1]
lowerband = lowest(low, length)[1]
middlebandLength = option=="double"?length*2:length
middleband = avg(highest(high, middlebandLength)[1], lowest(low, middlebandLength)[1])
//Plots
ubP = plot(upperband, title="Upperband", style=plot.style_line, linewidth=2)
lbP = plot(lowerband, title="Lowerband", style=plot.style_line, linewidth=2)
mbP = plot(middleband, title="Middleband", style=plot.style_line, color=color.maroon, linewidth=2)
//Strategy
buy = close > upperband
sell = close < middleband
short = close < lowerband
cover = close > middleband
strategy.entry(id="enter long", long=true, when=buy)
strategy.close(id="enter long", comment="exit long", when=sell)
strategy.entry(id="enter short", long=false, when=short)
strategy.close(id="enter short", comment="exit short", when=cover)