该策略通过计算一定周期内的最高价和最低价,形成上下轨,并在价格突破上轨时做多,在价格跌破下轨时平仓。该策略捕捉趋势的强势阶段,通过趋势突破来判断入场时机。
该策略首先计算过去20根K线的最高价和最低价,形成上轨和下轨。当当前K线收盘价高于上轨时,做多;当价格跌破下轨时,平仓止损。
具体来说,策略通过highest和lowest函数计算最近20根K线的最高价和最低价,形成范围。然后判断当前K线收盘价是否高于上轨,如果是则做多;如果价格跌破下轨,则平仓止损。
该策略依靠趋势突破来判断入场时机,属于趋势跟踪策略。它只做多不做空,适用于具有明显趋势特征的品种。
该策略具有以下优势:
策略思路简单清晰,容易理解实现。
利用趋势突破来判断入场时机,可捕捉趋势的强势阶段。
采用移动止损来控制风险,可有效限制单笔损失。
只做多不做空,适用于趋势明显的品种。
可自定义参数,调整周期长度和止损幅度。
该策略也存在以下风险:
无法判断趋势反转,可能造成追高杀入。
止损位置容易被瞬间大幅度价格跳空触发。
趋势变化时,可能产生多个小止损。
只做多不做空,无法利用下行趋势获利。
参数设置不当可能导致过于敏感或迟钝。
该策略可以从以下几个方面进行优化:
增加趋势判断指标,避免在趋势反转时仍然做多。例如加入MACD等指标判断趋势方向。
优化移动止损策略,设置风险控制更合理。例如采用随价格波动的移动止损。
增加空头策略,在下行趋势中也可以开仓做空获利。
对参数进行测试优化,找到最优参数组合。
增加自动参数优化功能,根据市场情况动态调整参数。
结合多个时间周期进行策略判断,避免被单一周期误导。
该策略整体思路清晰易懂,利用趋势突破来判断入场时机,可捕捉趋势的强势阶段。同时采用移动止损来控制风险。但该策略也存在一些风险,如趋势判断不准、止损被突破等问题。我们可以从优化趋势判断、止损策略、空头策略等方面进行改进,使策略更全面和稳定。
/*backtest start: 2023-10-22 00:00:00 end: 2023-10-24 17:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Donchian Wicks Strategy - Long Only with Customizable Donchian Exit and Stop Loss", "DWS", overlay = true) // INPUTS iLength = input(20, "Length", minval = 1) stopLossPercent = input(1.0, "Stop Loss Percentage", type=input.float) / 100 // SETTING float up = na up := close > open ? high : nz(up[1]) float down = na down := close < open ? low : nz(down[1]) highest = highest(up, iLength) lowest = lowest(down, iLength) // PLOT p1 = plot(highest, "Highest", color.black, 2) p2 = plot(lowest, "Lowest", color.black, 2) fill(p1, p2, color.new(color.navy, 90), title="Range") // ENTRY SIGNALS wickDown = low < lowest // STRATEGY IMPLEMENTATION strategy.entry("Buy", strategy.long, when = wickDown) strategy.exit("Sell at Donchian High", from_entry="Buy", limit=highest) // Customizable Stop Loss stopLossLevel = close * (1 - stopLossPercent) strategy.exit("Stop Loss", from_entry="Buy", stop=stopLossLevel)