EMAとハイキン・アシの取引戦略

作者: リン・ハーンチャオチャン開催日:2023年10月17日 16:11:19
タグ:

img

この記事では,EMAとHeikin Ashiの取引戦略について説明しています.

概要

この戦略は指数的な移動平均値 (EMA) とハイキン・アシ (Heikin Ashi) を使用して,トレンドを決定し,価格が異なる期間の EMA を突破したときの取引信号を生成します.

取引の論理

この戦略は15期と50期EMAを使用する.現在のハイキン・アシの閉値を計算し,EMAと比較する.閉値が両方のEMAよりも高く,15期EMAが50期EMAよりも高くなった場合,ロング信号が生成される.閉値が両方のEMAよりも低く,15期EMAが50期EMAよりも低くなった場合,ショート信号が生成される.

価格が 15 期間の EMA を越えると,逆取引が行われます.

利点分析

  1. 市場騒音をフィルタリングし 傾向の方向性を決定するのに役立ちます

  2. 異なる期間の EMA を組み合わせることで,短期的および中期的トレンドの両方を把握できます.

  3. ハイキン・アシは 偽のブレイクをフィルタリングし 取引信号を確認します

  4. 戦略はシンプルで 実行も簡単です

リスク分析

  1. EMAは遅延し,トレンドターニングポイントを見逃す可能性があります.

  2. 固定パラメータは 変化する市場に適応できず 動的な最適化が必要です

  3. 頻繁な取引は 高額な取引コストにつながる可能性があります

  4. ブレイク取引は偽のブレイクが起こりうるため,追加の指標の確認が必要です.

パラメータの最適化,他の指標の統合などによってリスクを軽減できます

オプティマイゼーションの方向性

  1. 市場の変化に基づいて EMA 期間を動的に最適化します

  2. 偽のブレイクを防ぐためにブレイクアウトフィルターを最適化します 例えばボリューム確認を追加します

  3. MACDのような他の指標を組み込み 信号を確認します

  4. トレンドの EMA は遅い EMA で,範囲の EMA は上位です.

概要

この戦略は,トレンド指向を決定するためにEMAとシグナルを検証するためにHeikin Ashiを使用する.それは単純で直接的だが,EMA遅延と誤ったブレイクアウトリスクに対処する必要がある.リスクを軽減し戦略パフォーマンスを向上させるためにパラメータ最適化,指標統合を通じて改善を行うことができる.


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

//@version=3
strategy("EMA & Heikin Ashi", shorttitle="EMA & Heikin Ashi", overlay=true, initial_capital=1)


// squaa's Strategy
//
// Idea by Thw on March 10, 2018.
//
//
// The strategy should be used with high leverages,
// never stop running,
// and is always long or short.

// Input
price = input(close)
MA1_Length = input(15)
MA2_Length = input(50)


haclose = request.security(heikinashi(syminfo.tickerid), timeframe.period, close)

// === FUNCTION EXAMPLE ===
start     = timestamp(2018, 01, 01, 20, 00)  // backtest start window
window()  => time >= start ? true : false // create function "within window of time"


// Calculation
MA1 = ema(price, MA1_Length)
MA2 = ema(price, MA2_Length)

// Strategy
long = haclose > MA1 and haclose > MA2 and MA1 > MA2 and window()
short = haclose < MA1 and haclose < MA2 and MA1 < MA2 and window()

// MA trend output color
MA2_color = long?lime:short?red:blue

strategy.entry("Long", strategy.long, when=long)
strategy.entry("Short", strategy.short, when=short)
strategy.close("Long", when=haclose < MA1)
strategy.close("Short", when=haclose > MA1)


// MA output
EMA1 = plot(MA1, title="EMA 1", style=linebr, linewidth=1, color=MA2_color)
EMA2 = plot(MA2, title="EMA 2", style=linebr, linewidth=3, color=MA2_color)
fill(EMA1, EMA2, color=silver, transp=50)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

もっと