クロスリング・ムービング・平均戦略は,異なる期間における指数的な移動平均値 (EMA) を用いて取引信号を生成する定量的な取引戦略である.この戦略は,市場動向を決定し,買い売り信号を生成するために,5期,9期および21期という3つのEMAのクロスオーバーを使用する.また,より長い期間の100期および200期EMAを組み込み,主要な傾向を測定する.
この戦略の主な指標は,5期,9期および21期の3つの EMAである.その取引論理は以下の点に基づいている.
5 期間の EMA が 9 期間の EMA を越えるときに買い信号が生成され,その下を越えるときに売り信号が生成されます.
取引シグナルを検証するために,21期 EMA を使用することができる. 5期と9期 EMA が両方が21期 EMA の上,売り信号の下にある場合,取引シグナルはより信頼性がある.
100 と 200 EMA は,市場における中期から長期間の傾向を決定するために使用され,短期間の取引シグナルに対する傾向の検証または警告を提供することができる.
この戦略には以下の利点があります.
EMAの計算とクロスオーバー判断は簡単です
市場の変化に敏感です. 5 & 9 EMAは短期的なトレンドを迅速に把握できます.
ストップ・ロスト/テイク・プロフィートを設定しやすい. EMAは移動するストップ・ロストラインとして機能します.
拡張可能.他の EMA や指標を簡単に導入してシステムを豊かにすることができます.
この戦略の主なリスクは以下のとおりです.
誤った信号のリスク. EMAクロスオーバーは100%信頼性がないため誤ったブレイクが発生する可能性があります.他の要因は慎重に検討する必要があります.
トレンド逆転リスク. 急速なEMAは短期的な修正を反映し,主要なトレンド逆転を無視する可能性があります. 中期から長期間のEMAはチェックする必要があります.
パラメータ調整リスク パラメータは,異なる製品や市場体制によって大きく異なるため,徹底的な最適化とテストが必要です.
この戦略は,次の側面で最適化できます.
KD,MACDなどのフィルターを導入して 信号をスクリーンし 誤った信号を減らす
損失を制限するためにストップ・ロスのサイズを拡大するか 利益を確保するためにストップ・ロスを採用するか
最適な EMA 期間の組み合わせを見つけるためにパラメータを最適化する.機械学習は,期間を動的に最適化するためにも使用できる.
定量的なフレームワークを統合することで,取引の作業流程全体を自動化します.
交差移動平均戦略は明確な論理を持ち,短期のトレンドを効果的に把握し,操作が簡単である.しかし,決定決定のためにEMA交差にのみ依存することは依然として盲点がある.リスクを減らすために追加の要因が必要である.この戦略は,収益性と安定性を向上させるためにより多くの技術指標または技術導入することによって改善の可能性が大きい.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © nagversion //@version=5 strategy("5/9/21 EMA Strategy with 200 and 100 EMA", overlay=true) // Calculate EMAs ema5 = ta.ema(close, 5) ema9 = ta.ema(close, 9) ema21 = ta.ema(close, 21) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Plot EMAs plot(ema5, title="5 EMA", color=color.blue) plot(ema9, title="9 EMA", color=color.yellow) plot(ema21, title="21 EMA", color=color.red) plot(ema100, title="100 EMA", color=color.purple) plot(ema200, title="200 EMA", color=color.green) // Strategy conditions longCondition = ta.crossover(ema5, ema9) and ta.crossover(ema9, ema21) shortCondition = ta.crossunder(ema5, ema9) and ta.crossunder(ema9, ema21) if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Set strategy properties if required (like stop loss, take profit, etc.)