该策略是一种基于价格突破固定回看范围来产生交易信号的策略。当价格突破回看期间的最高价时,进行做多操作;当价格跌破最高价时,进行平仓。可以方便切换做多做空方向。
设置回看周期参数,例如4天。
计算过去4天的最高价。
当今日最高价突破过去4天最高价时,做多。
当价格无法突破过去4天最高价时,平仓。
通过reverse参数可将做多做空方向进行切换。
该策略具有以下优势:
突破简单易行,signal明确。
固定突破范围参数,避免复杂参数优化和过度优化。
可方便切换做多做空方向,适应多种市场环境。
回看固定范围过滤了部分噪声,可实现持续跟踪趋势。
无需计算复杂指标,策略简洁高效。
该策略的主要风险有:
突破范围固定,无法适应市场变化。
未考虑止损,存在超出风险承受的大幅亏损。
固定参数易受市场失效的概率影响。
噪声交易可能过于频繁,提高交易成本。
未进行参数优化,使用默认参数难以达到最佳效果。
可从以下几个方面进行优化:
对关键参数进行优化,找到最佳参数组合。
加入基于ATR等的动态突破范围计算。
考虑加入移动止损或固定比例止损。
结合趋势指标,避免震荡市场的过度交易。
在更多交易品种中测试参数健壮性。
增加机器学习算法,实现参数自动优化。
该策略整体是一个非常简单的基于价格突破的交易策略。通过优化参数范围、加入止损机制、趋势判断等方式进行改进,可以成为一个易于实现且实用的量化策略。
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version = 2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 28/11/2016
// Breakout Range Long 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="Breakout Range Long Strategy Backtest", overlay = true)
look_bak = input(4, minval=1, title="Look Bak")
reverse = input(false, title="Trade reverse")
xHighest = highest(high, look_bak)
pos = iff(high > xHighest[1], 1, 0)
if (pos == 1 and strategy.position_size == 0 and reverse == false)
strategy.entry("Long", strategy.long)
if (pos == 1 and strategy.position_size == 0 and reverse == true)
strategy.entry("Short", strategy.short)
if (pos == 0 and strategy.position_size > 0)
strategy.close("Long")
if (pos == 0 and strategy.position_size < 0)
strategy.close("Short")
barcolor(strategy.position_size > 0 ? green: strategy.position_size < 0 ? red: blue)
plotshape(pos, style=shape.triangleup, location = location.belowbar, color = green)