本策略基于迪纳波利(DiNapoli)去趋势震荡器进行交易信号判断。该指标通过价格与移动平均的差值,来反映价格的超买超卖区域,从而识别反转机会。策略以其突破特定门限为交易信号。
该策略主要包含以下要素:
移动平均线:计算一定周期的均线,判断价格趋势。
差值指标:价格减去均线的差值,形成震荡指标。
门限线:当差值指标超过门限值时产生交易信号。
做多信号:差值上穿门限线时做多。
做空信号:差值下穿门限线时做空。
反向选项:可将做多/空信号反向作为交易信号。
该策略通过判断价格与趋势之间的背离,以捕捉短期反转机会。实现逻辑简单直观。
相比其他反转策略,该策略具有以下优势:
原理简单,直观易理解,实施难度低。
少量参数,回测优化便利。
可自行调整参数,适用于不同周期。
提供反向选项,可灵活对不同市场使用。
明确的止损止盈方式,可控制风险。
回撤相对较小,可通过参数调整降低曲线震荡。
可引入机器学习进行参数优化。
总体来说,风险收益平衡良好,适合短线交易。
但该策略也存在以下主要风险:
过于依赖参数优化,存在过拟合风险。
移动平均线和指标均存在滞后性。
缺乏价格以外的辅助变量验证。
选时效果可能因市场环境变化而减弱。
难以长期持续获得Alpha,需要频繁调整。
需关注收益回撤比,防止曲线过于锯齿。
交易频率较高,影响交易成本。
需验证参数在多市场中的稳健性。
基于以上分析,该策略的优化方向包括:
测试不同均线参数的效果。
加入成交量指标进行验证。
设置止损止盈以控制风险。
评估多品种多周期健壮性。
通过滚动回测不断重新验证。
调整仓位管理,降低交易频率。
引入机器学习生成更优参数。
优化整体资金管理策略。
持续迭代策略,使之适应市场变化。
该策略整体来说是一个较简单的反转策略思路,可通过参数调整获得不错效果。但任何策略都需要防止过拟合,做到长期稳定盈利。这需要不断地回测与优化,从更多维度进行策略改进。
/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version = 2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 05/12/2016
// DiNapoli Detrended Oscillator Strategy
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="DiNapoli Detrended Oscillator Strategy Backtest")
Length = input(14, minval=1)
Trigger = input(0)
reverse = input(true, title="Trade reverse")
hline(Trigger, color=gray, linestyle=line)
xSMA = sma(close, Length)
nRes = close - xSMA
pos = iff(nRes > Trigger, 1,
iff(nRes <= Trigger, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
plot(nRes, color=blue, title="DiNapoli")
barcolor(possig == -1 ? red: possig == 1 ? green : blue )