ダブルEMAのゴールデンクロス・デッドクロストラッキング戦略
概要
本戦略は、高速EMAと低速EMAを計算し、両者の大小関係を比較することで、ダブルEMAのゴールデンクロスとデッドクロスの売買シグナルを生成するトレンド追従戦略です。高速線が低速線を上抜けたときに買いシグナル、下抜けたときに売りシグナルを生成し、シンプルなトレンド追従の仕組みを実現します。
戦略の原理
本戦略のコアロジックは主に以下の部分で構成されています。
-
高速EMAと低速EMAの計算:
ta.ema()関数を使用して、fastInputの長さの高速EMAとslowInputの長さの低速EMAを計算します。 -
バックテスト期間の設定:
useDateFilterパラメータでバックテスト期間のフィルタリング有無を設定し、backtestStartDateとbacktestEndDateでバックテストの開始日と終了日を設定します。 -
売買シグナルの生成:
ta.crossover()とta.crossunder()関数を使用して高速EMAと低速EMAの大小関係を比較し、高速線が低速線を上抜けたときに買いシグナル、下抜けたときに売りシグナルを生成します。 -
時間範囲外の注文処理:バックテスト期間外では、未約定の注文をキャンセルし、すべてのポジションをクローズします。
-
移動平均線の描画:チャート上に高速EMAと低速EMAの移動平均線を描画します。
戦略の利点
非常にシンプルなトレンド追従戦略であり、以下の利点があります。
-
戦略ロジックがシンプルで、理解・実装が容易です。
-
EMAは価格データを平滑化するため、ノイズ取引を低減できます。
-
EMAの期間パラメータをカスタマイズでき、さまざまな市場環境に適応できます。
-
バックテスト期間を柔軟に設定でき、特定の期間に対してテストが可能です。
-
エントリー・イグジット条件を最適化し、他のインジケーターと組み合わせて使用できます。
リスク分析
本戦略には以下のようなリスクにも注意が必要です。
-
ダブルEMA戦略はおおまかであり、市場変化に柔軟に対応できません。
-
頻繁な取引や重複取引のリスクがあります。
-
EMAパラメータの設定が不適切だと、誤った売買シグナルが発生する可能性があります。
-
バックテスト期間が不適切だと、オーバーフィッティングのリスクがあります。
-
ドローダウンや損失を避けられないリスクがあります。
パラメータ最適化、適切な変動フィルター、ストップロスの設定などによりリスクをコントロールできます。
最適化の方向性
本戦略は以下の点から最適化が可能です。
-
EMA期間パラメータの最適化:最適なパラメータの組み合わせを探索します。
-
他のインジケーターを追加してフィルタリングし、不要な取引を回避します。
-
ストップロス戦略を追加し、1回の損失をコントロールします。
-
トレンドやボラティリティなどのフィルターを組み合わせ、取引頻度を低減します。
-
異なる銘柄や契約でテストし、最適な戦略適用対象を探します。
-
スリッページや手数料などのコストを考慮し、よりリアルなバックテストを実施します。
まとめ
本戦略は全体として非常にシンプルなダブルEMAのゴールデンクロス・デッドクロス戦略であり、ロジックは明確で分かりやすく、高速・低速EMAの比較により売買シグナルを生成します。本戦略の利点は実装の簡便さにありますが、頻繁な取引や過最適化につながりやすいなどの問題もあります。次のステップとしては、パラメータ最適化やリスク管理などの面から改善を加え、より安定した実用的な戦略にすることが考えられます。
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MollyETF_EMA_Crossover", overlay = true, initial_capital = 100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)
- 1

