均线交叉和MACD过滤的海因阿修蜡烛策略V3


创建日期: 2023-10-25 11:26:17 最后修改: 2023-10-25 11:26:17
复制: 0 点击次数: 1056
avatar of ChaoZhang ChaoZhang
1
关注
1617
关注者

均线交叉和MACD过滤的海因阿修蜡烛策略V3

概述

本策略通过计算海因阿修蜡烛的移动均线交叉来产生交易信号,并结合MACD作为过滤条件,实现了一个较为稳定的交易系统。

策略原理

  1. 计算海因阿修蜡烛的开盘价和收盘价
  2. 计算快速移动均线(EMA)和慢速移动均线(SMA)
  3. 当快速移动均线上穿慢速移动均线时,产生买入信号
  4. 当快速移动均线下穿慢速移动均线时,产生卖出信号
  5. 如果启用MACD过滤,只有当MACD柱上穿0轴时才产生买入信号,MACD柱下穿0轴时才产生卖出信号

优势分析

  1. 海因阿修蜡烛能有效滤除市场噪音,使得移动均线交叉信号更可靠
  2. 结合不同周期的均线,可以采用多重确认,避免假突破
  3. MACD过滤有助于进一步避免假信号,提高信号质量
  4. 采用海因阿修蜡烛计算均线,可以降低 Scientistå1⁄4 è ́±è ̄„ 2022å1 ́11月10日10:33

本V3版本的海因阿修蜡烛策略,通过计算海因阿修蜡烛的移动均线交叉来产生交易信号,并结合MACD作为过滤条件,相比V1和V2版本有了很大的改进。

总体来说,该策略具有以下优势:

  1. 海因阿修蜡烛能有效滤除市场噪音,使得移动均线交叉信号更清晰可靠。

  2. 采用快慢均线组合,可以避免被单一均线的假突破欺骗。

  3. 加入MACD过滤机制,可以进一步避免假信号,提高入场的准确率。

  4. 采用不同周期的均线,实现多时间框架的确认,这也提高了信号的可靠性。

  5. 使用海因阿修蜡烛计算均线,可以减少由普通K线带来的回撤。

  6. 该策略参数设置合理,操作频率适中,无需高频交易也可以获得稳定收益。

但是该策略也存在一些风险需要注意:

  1. 在震荡行情中,可能会出现多次调整仓位的反复交易。

  2. MACD作为过滤指标也可能出现失效的情况,导致假信号的产生。

  3. 均线系统对参数设置比较敏感,需要谨慎测试最佳参数组合。

  4. 长期持有仓位时,需要关注突发事件带来的重大行情变化。

  5. 仍需人工判断大级别趋势,避免逆势交易带来的损失。

总的来说,该策略作为一个较成熟的均线策略,在参数调整合理的前提下,可以获得稳定的投资收益。但交易者仍需关注风险,适时调整仓位,并结合趋势判断来运用该策略。

策略源码
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Heiken-Ashi Strategy  V3 by wziel

// strategy("Heiken-Ashi Strategy  V3",shorttitle="WZIV3",overlay=true,default_qty_value=10000,initial_capital=10000,currency=currency.USD)
res = input(title="Heikin Ashi Candle Time Frame",  defval="60")
hshift = input(1,title="Heikin Ashi Candle Time Frame Shift")
res1 = input(title="Heikin Ashi EMA Time Frame",  defval="180")
mhshift = input(0,title="Heikin Ashi EMA Time Frame Shift")
fama = input(1,"Heikin Ashi EMA Period")
test = input(1,"Heikin Ashi EMA Shift")
sloma = input(30,"Slow EMA Period")
slomas = input(1,"Slow EMA Shift")
macdf = input(false,title="With MACD filter")
res2 = input(title="MACD Time Frame",  defval="15")
macds = input(1,title="MACD Shift")




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

//macd
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdl = security(ha_t,res2,macdLine[macds])
macdsl= 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("Buy",strategy.long,when = golong)
strategy.entry("Sell",strategy.short,when = goshort)