动量均线交叉和MACD过滤的海肯阿什蜡烛策略


创建日期: 2024-01-02 12:18:03 最后修改: 2024-01-02 12:18:03
复制: 0 点击次数: 646
avatar of ChaoZhang ChaoZhang
1
关注
1247
关注者

动量均线交叉和MACD过滤的海肯阿什蜡烛策略

概述

本策略运用海肯阿什蜡烛技术辅以均线交叉信号和MACD指标进行过滤,构建趋势跟踪策略。策略可以在不同时间周期内捕捉市场趋势,利用均线交叉产生交易信号,再通过MACD指标过滤假Signals,在回测试中表现出较高的盈利率。

策略原理

本策略主要运用三大技术指标:

  1. 海肯阿什蜡烛技术。该技术通过修改收盘价构建出“无影线”的蜡烛线。这可以更清晰地表现出价格的真实趋势,过滤掉过多的市场噪音。

  2. 指数移动均线(EMA)。快速EMA用于捕捉短期趋势,慢速EMA用于判断长期趋势方向。当快速EMA上穿慢速EMA时产生买入信号;当快速EMA下穿慢速EMA时产生卖出信号。

  3. MACD指标。该指标结合快慢EMA,当MACD主线高于Signal线时为看涨信号,当主线低于Signal线时为看跌信号。

本策略的交易信号来自快速EMA和慢速EMA的金叉死叉。为了过滤假Signals,策略引入MACD指标进行辅助判断,只有当MACD指标发出同向信号时才会生成最终的交易信号,这大大降低了错误交易的概率。

具体来说,当快速EMA上穿慢速EMA(金叉)和MACD主线高于Signal线(看涨信号)同时出现时,产生买入信号;当快速EMA下穿慢速EMA(死叉)和MACD主线低于Signal线(看跌信号)同时出现时,产生卖出信号。

这种结合均线交叉和MACD指标的过滤方式,可以有效识别市场关键的转折点,顺势捕捉价格趋势。

策略优势

本策略具有以下几个突出优势:

  1. 捕捉趋势信号的概率大大提高。运用海肯阿什蜡烛技术可更清晰判断趋势,两均线的交叉系统产生信号的效力也非常强,结合MACD过滤后可靠性更高。

  2. 回撤风险较小。MACD作为辅助判断指标可在一定程度上规避止损风险,有效减少平仓亏损的情况。

  3. 可调参数较多。海肯阿什蜡烛的周期、均线系统的快慢周期、MACD的参数等都可根据市场调整,使策略更能适应不同行情。

  4. 实现较为简单清晰。以海肯阿什蜡烛表示价格,辅以常用指标进行判定,易于编程实现,代码简洁,容易理解。

  5. 资金使用效率较高。策略采用趋势跟踪法则,大部分时间能使资金随市场主流方向运作,有效利用资金量产生收益。

策略风险

本策略也存在以下一些可能的风险:

  1. 市场出现剧烈波动时,可能出现较大亏损。当价格出现大幅跳空或短期内快速反转时,止损措施可能会被突破,造成超出预期的损失。

  2. MACD过滤误判的可能。MACD作为辅助指标也可能产生误判,从而导致策略错误建仓或平仓。

  3. 参数设置过于死板。固定的参数组合不一定能适应多变的市场,可能错过良好的交易机会。

  4. 交易频率可能过高。跟随趋势建立仓位的方法可能造成频繁交易,增加交易成本和滑点损失。

为了规避和减小上述风险,可采取如下措施:

  1. 设置止损位,限制单笔亏损。同时也不要过度追涨杀跌,控制仓位规模。

  2. 调整MACD的参数,降低辅助指标发出错误信号的概率。也可以引入其他指标进行多重验证。

  3. 建立参数优化机制。采用机器学习等方法自动优化参数组合,使策略更具适应性。

  4. 适当放宽交易信号的触发条件,降低交易频率。也可以设置最小价格变动量才触发交易。

策略优化

本策略还具有很大的优化空间,可以从以下几个方面入手:

  1. 海肯阿什蜡烛的时段优化。可以测试更长或更短的蜡烛周期,找到更能表达市场趋势的时段区间。

  2. 均线系统的参数调整。修改快慢EMA的周期参数,找到最佳的参数组合。

  3. MACD指标的多参数优化。调整MACD的快慢均线和Signal线的参数,寻找最优参数。

  4. 策略风险管理模块的加强。设置更科学的止损和止盈规则,也可加入仓位控制、资金管理等模块。

  5. 加入更多辅助指标。比如引入KD、RSI等其他指标进行多因子验证,提高信号质量。

  6. 应用机器学习技术。使用神经网络、遗传算法等方法实时优化策略参数,使策略更具适应性。

通过技术指标的迭代组合、参数的持续优化、风险控制模块的加强等方法,本策略可以得到进一步提升,更稳定、高效的获利。

总结

本策略结合海肯阿什蜡烛和均线交叉系统捕捉市场趋势,以MACD指标进行辅助过滤,可有效识别关键转折点,产生高可靠性的交易信号。策略回测表现优异,具有获利概率高、回撤风险小、可调性强等优点。同时也需要注意风险控制,防范极端行情的冲击。通过持续的优化与改进,本策略具备成为量化交易高效策略的潜力。

策略源码
/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Heikin Ashi Strategy  V1 by nachobuey

strategy("Heikin Ashi Strategy  V2",shorttitle="HAS V2",overlay=true)
res = input(title="Heikin Ashi Candle Time Frame",  defval="15")
hshift = input(0,title="Heikin Ashi Candle Time Frame Shift")
//res1 = input(title="Heikin Ashi EMA Time Frame", type=resolution, defval="180")
res1   = input(title="Time frame (Minutes. Not lower than chart)",defval="300")
mhshift = input(0,title="Heikin Ashi EMA Time Frame Shift")
fama = input(16,"Heikin Ashi EMA Period")
test = input(0,"Heikin Ashi EMA Shift")
sloma = input(21,"Slow EMA Period")
slomas = input(0,"Slow EMA Shift")
macdf = input(false,title="With MACD filter")
res2 = input(title="MACD Time Frame",  defval="60")
macds = input(1,title="MACD Shift")




//Heikin Ashi Open/Close Price
ha_t = heikinashi(syminfo.tickerid)
ha_open = request.security(ha_t, res, open[hshift])
ha_close = request.security(ha_t, res, close[hshift])
mha_close = request.security(ha_t, res1, close[mhshift])

//macd
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdl = request.security(ha_t,res2,macdLine[macds])
macdsl= request.security(ha_t,res2,signalLine[macds])

//Moving Average
fma = ema(mha_close[test],fama)
sma = ema(ha_close[slomas],sloma)
plot(fma,title="MA",color=lime,linewidth=2,style=line)
plot(sma,title="SMA",color=red,linewidth=2,style=line)


//Strategy
golong =  crossover(fma,sma) and (macdl > macdsl or macdf == false )
goshort =   crossunder(fma,sma) and (macdl < macdsl or macdf == false )


strategy.entry("Long",strategy.long,when = golong)
strategy.entry("Short",strategy.short,when = goshort)

plotchar(golong,char="L", color=green)
plotchar(goshort,char="S", color=red)

alertcondition(golong, "HAS GO LONG", "OPEN LONG")
alertcondition(goshort, "HAS GO SHORT", "OPEN SHORT")