该策略通过计算Hull移动平均线及其上下百分比带,实现突破买入和止损卖出的量化交易。策略优势包括参数可调、实现简单、 stopper严格。但也存在追高杀跌、频繁交易等风险。通过优化止损策略、添加短线操作等,可以获得更好的效果。
计算长度为length的Hull移动平均线hullma。
根据hullma的百分比绘制上轨xL1、xL3和下轨xL2、xL4。
当收盘价上穿下轨时,做多;当收盘价下穿上轨时,平仓。
该策略具有以下优势:
HullMA指标对价格变化敏感,可以有效跟踪趋势。
百分比带设置自由度高,可以通过调整来适应不同品种。
通过双轨策略,可以有效过滤错误信号。
止损策略可以有效控制风险。
该策略也存在一些风险:
可能存在追高杀跌的情况。
频繁买卖带来的滑点损耗。
参数设置不当可能导致交易频繁。
停损位置设置需要反复测试优化。
该策略可以从以下方向进行优化:
优化hullMA长度 parameter,适应不同品种。
优化百分比带parameter,降低错误交易。
添加短线操作策略,利用回调获取更多利润。
优化停损策略,确保止损有效。
测试不同品种参数健壮性。
本策略通过HullMA指标及其百分比带构建了一个较为简单直观的突破交易策略。策略优劣势明确,通过参数调整和功能优化扩展,可以成为一个非常实用的量化策略。
/*backtest
start: 2023-03-01 00:00:00
end: 2024-02-29 00:00:00
period: 5d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("hullma percentage lines", overlay=true)
length = input(9, minval=1)
src = input(close, title="Source")
hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(hullma)
Uband1 = input(3, minval=1, step = .5)
Lband1 = input(3, minval=1, step = .5)
Uband2 = input(6, minval=1, step = .5)
Lband2 = input(6, minval=1, step = .5)
v1 = Uband1+100
v2 = 100 - Lband1
v3 = Uband2+100
v4 = 100 - Lband2
xL1 = (hullma / 100) * v1
xL2 = (hullma / 100) * v2
xL3 = (hullma / 100) * v3
xL4 = (hullma / 100) * v4
plot(xL1, color=yellow, title="H1")
plot(xL2, color=yellow, title="L1")
plot(xL3, color=yellow, title="H2")
plot(xL4, color=yellow, title="L2")
longCondition1 = crossover(close, xL4)
if (longCondition1)
strategy.entry("l1", strategy.long)
longCondition2 = crossover(close, xL2)
if (longCondition2)
strategy.entry("l1", strategy.long)
shortCondition1 = crossover(close, xL1)
if (shortCondition1)
strategy.close("l1", strategy.long)
shortCondition2 = crossover(close, xL2)
if (shortCondition2)
strategy.close("l1", strategy.long)
shortCondition3 = crossover(close, xL3)
if (shortCondition3)
strategy.close("l1", strategy.long)