ダブル・ムービング・アベア・クロスオーバー戦略 (EMA9/20) は,2つの指数的なムービング・アベア (EMA) のクロスオーバーに基づいた定量的な取引戦略である.この戦略は,9日間のEMAと20日間のEMAを取引信号として使用し,両移動平均が交差するときに購入または売却信号を生成する.さらに,この戦略は価格と9日間のEMAのクロスオーバーを補助信号として使用し,トレーリング・ストップを活用して取引リスクを管理する.
この戦略の基本原理は,異なる期間の2つの移動平均値のクロスオーバーを利用して市場のトレンドを把握することです.短期移動平均値 (9日EMA) が長期移動平均値 (20日EMA) を越えると,市場の潜在的上昇傾向を示し,戦略は購入信号を生成します.逆に,短期移動平均値が長期移動平均値を下回ると,潜在的下落傾向を示し,戦略は販売信号を生成します.
移動平均クロスオーバー信号に加えて,この戦略は,価格と短期移動平均 (9日 EMA) の間のクロスオーバーも補助信号として組み込む.価格が9日 EMA を越えると,購入信号も発生し,価格が9日 EMA を越えると,販売信号も発生する. これにより,市場の動向の変化をより迅速に把握することができます.
リスク制御のために,この戦略はトレーリングストップメカニズムを使用する.取引が収益性のある状態に入ると,トレーリングストップは価格が反対方向にストップ・ロスのレベルを突破するまで価格動向に応じてストップ・ロスのポジションを継続的に調整し,潜在的な損失を制限しながら利益をロックします.
単純化: 戦略は移動平均クロスオーバーの古典的な原則に基づいており,理解し実行するのが簡単です.
トレンドフォロー:異なる期間の2つの移動平均値のクロスオーバーを利用することで,戦略は市場の主要なトレンドを効果的に把握することができます.
タイムリーストップ・ロース: トレイリング・ストップ・メカニズムの導入により,トレンドが逆転するときにポジションをタイムリーに閉鎖し,ダウンサイドリスクを制御できます.
パラメータの柔軟性: 戦略のパラメータ (移動平均期,ストップ・ロース・ポイントなど) は,さまざまな市場や手段に応じて最適化され,さまざまな市場条件に適応することができます.
取引頻度: 戦略は移動平均クロスオーバーと価格クロスオーバーの両方のシグナルを使用しているため,取引頻度が高くなり,取引コストが上昇する可能性があります.
不安定な市場: 不安定な市場や範囲限定の市場では,戦略はより多くの誤った信号を生み出し,収益性が低下する可能性があります.
パラメータ敏感性: 戦略のパフォーマンスはパラメータ選択に敏感であり,異なるパラメータは大きく異なる結果をもたらす可能性があります.
シグナルフィルタリング: 移動平均クロスオーバーと価格クロスオーバーのシグナルに加えて,他の技術指標 (RSI,MACDなど) をフィルタリング条件として導入し,誤ったシグナルを減らす.
ダイナミックパラメータ: ダイナミックに戦略パラメータ (移動平均期,ストップ・ロスのポイントなど) を調整し,市場変動やトレンド強度などの要因に基づいて,異なる市場状態に適応します.
ポジションサイズ: 市場の動向と信号強度に基づいてポジションサイズを動的に調整し,トレンド強度が高いときポジションサイズを増やし,トレンドが不透明または信号が弱ければポジションサイズを減らす.
複数のツールへの適応: 戦略を複数のツールや市場に拡大し,多様化と相関分析を通じて,全体的なリスクを削減し,収益の安定性を向上させる.
双動平均クロスオーバー戦略 - EMA9/20は,リスク制御のためにトレリングストップを使用しながら,異なる期間と価格クロスオーバーを持つ2つの移動平均のクロスオーバーを通じて市場動向を把握するシンプルで実践的な定量的な取引戦略である.この戦略は明確な論理を持ち,理解し,実行しやすく,初心者向けに学習および使用に適している.しかし,この戦略には,不安定な市場でのパフォーマンスが低下し,パラメータ選択に対する敏感性などのいくつかの制限もあります.したがって,実践的な応用では,シグナルフィルタリング,ダイナミックパラメーター調整,ポジションサイズ付け,および他の方法を導入し,市場の特定の特徴とツールの基準で戦略を最適化し,改善する必要があります.全体として,双動平均クロスオーバー戦略 - EMA9/20は,さらなる調査と探求に価値のある良好な定量的な基礎枠組みを提供し,取引戦略の改善に役立ちます.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title = "EMAs 9 / 20", shorttitle = '9/20 EMAs', initial_capital = 1000, overlay = true, default_qty_type = strategy.fixed, commission_type = strategy.commission.cash_per_contract, commission_value = 0.35, default_qty_value = 1) int trailOffset = 10 int trailPoints = 15 series float oEma9 = ta.ema(ohlc4, 9) series float oEma20 = ta.ema(ohlc4, 20) series bool closeCrossoverEma9 = ta.crossover(close, oEma9) series bool closeCrossunderEma9 = ta.crossover(close, oEma9) series bool nineCrossover20 = ta.crossover(oEma9, oEma20) series bool nineCrossunder20 = ta.crossunder(oEma9, oEma20) //Entry Exits if nineCrossover20 strategy.entry("Long 9Cross20", strategy.long, 2) else if closeCrossoverEma9 strategy.entry("Long 9CrossClose", strategy.long, 2) strategy.exit("Long 9CrossClose Exit", from_entry = "Long 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset) else if nineCrossunder20 strategy.close("Long 9Cross20") if nineCrossunder20 strategy.entry("Short 9Cross20", strategy.short, 2) else if closeCrossunderEma9 strategy.entry("Short 9CrossClose", strategy.short, 2) strategy.exit("Short 9CrossClose Exit", from_entry = "Short 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset) else if nineCrossover20 strategy.close("Short 9Cross20")