ハイケン・アシ移動平均クロスオーバー戦略とMACDフィルターV3

作者: リン・ハーンチャオチャン, 日付: 2023年10月25日 11:26:17
タグ:

img

概要

この戦略は,フィルター条件としてMACDと組み合わせたハイケンアシキャンドルの移動平均クロスオーバーを計算して取引信号を生成する.比較的安定した取引システムを実装する.

戦略の論理

  1. ハイケンアシのキャンドルの開閉価格を計算します.

  2. 速移平均 (EMA) と遅移平均 (SMA) を計算する.

  3. 速いMAが遅いMAを超えると,買い信号が生成されます.

  4. 速いMAが遅いMAを下回ると,売り信号が生成される.

  5. MACDフィルタが有効になっている場合,MACDヒストグラムが0線を超えるとのみ購入信号が生成され,MACDヒストグラムが0線を下回るとのみ販売信号が生成されます.

利点分析

  1. ハイケン・アシのキャンドルは市場の騒音を効果的にフィルタリングし,MAクロスオーバー信号をより信頼性のあるものにします.

  2. 異なる期間のMAsを組み合わせることで,単一のMAsから誤ったブレイクが回避されます.

  3. MACDフィルターはさらに誤った信号を回避し,信号品質を改善します.

  4. ハイケン・アシを使って MAを計算すると 通常のキャンドルからの抽出量が減少します

  5. この戦略には合理的なパラメータと適度な取引頻度があり,高頻度取引なしで安定した利益を得ることができます.

リスク分析

しかし,いくつかのリスクは注意する必要があります.

  1. 変動する市場では,繰り返しポジション調整が起こる可能性があります.

  2. MACDフィルタが故障し,誤った信号が生じる場合もあります.

  3. MAシステムはパラメータ調整に敏感で,注意深く最適化する必要があります.

  4. ロングホールディングポジションは,市場に大きな変化を引き起こす可能性があるイベントを監視する必要があります.

  5. 主要なトレンドの手動判断は,反トレンド取引による損失を避けるためにまだ必要である.

結論として,これは比較的成熟した MA 戦略で,適切なパラメータ調整で安定した利益をもたらすことができます. しかし,トレーダーは依然としてリスクに注意し,それに応じてポジションを調整し,それを適用するときにトレンド分析を組み合わせなければなりません.


/*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)





もっと