この戦略は,異なる期間の移動平均を計算し,そのクロスオーバーを監視することによって取引信号を生成する.具体的には,30期,60期,200期の単純な移動平均 (SMA) を計算する.30期SMAが200期を超えると購入信号が生成される.30期SMAが200期を超えると販売信号が生成される.
この戦略の基本論理は,移動平均のクロスオーバーシステムに基づいている.移動平均は,市場のノイズを効果的にフィルタリングし,全体的なトレンドを特徴づけることができる.短期MAは短期的なトレンドと反応を捕捉し,長期MAはノイズをフィルタリングし,主要なトレンドをロックする.短期MAが長期MAを横切ると,短期的なモメンタムを強化し,潜在的なトレンド逆転を示し,購入信号を生成する.短期MAが長期MAを下回ると,主要なダウントレンドと共に弱まる短期モメンタムを示し,販売信号を生成する.
この戦略は,30期MAと200期MAを採用して取引信号を構築する.30期MAは短期的な上昇勢いを敏感に捉え,200期MAは長期的構造と主要トレンドをロックする.30期MAが200期MAを横切ると,購入信号が生成される.この時点で,短期市場雰囲気は改善し,短期と長期グリッドが正に並べられ,上昇につながる可能性があります.30期MAが200期MAを下回ると,販売信号が生成されます.悪化する短期的な雰囲気は長期側にとって不利です.短期的なトレンドを注意深くフォローする必要があります.偽信号をフィルタリングするには,ポジショナルの介入戦略は,3つの連続的な上昇信号を確認するシグナルに3本のキャンドルスタンドを追加します.
この戦略の主な利点は以下の通りである.
この戦略は,取引信号のMAクロスだけに依存しており,直感的で理解し実行するのが簡単です.
バックテストの結果は良好で この戦略は トレンドフォローする大きな機会をうまく把握し, 最大引き上げ率とシャープ比率を許容できる.
高拡張性. 戦略フレームワークは成熟しており,指標や調整パラメータを置き換えて簡単に最適化することができます. 他の要因と組み合わせることもできます.
この戦略にはいくつかのリスクもあります.
MAシステムからの遅延信号は,急速で偶発的な市場変動から利益を得ることができない.これはMAシステムの固有の制限であり,早期ポジショニングのためのボリンジャーバンドのような主要な指標を導入することで緩和することができる.
過剰なMAクロスにより,横向,範囲の市場で頻繁な非収益的な取引を行う. ストップ損失レベルを拡大し,リスクの制御を取り戻すためにポジショナル追加を使用する.
基本的要素を考慮しない. 盲目的に技術信号に従う. 経済データ,利益などを取り入れることで,ポジションサイズとストップ損失レベルを調整する.
この戦略は,次の側面で強化できます.
異なる回顧期間のMA組み合わせをテストする.例えば20日および60日MAs.
信号フィルタリングのための他の技術指標,例えばMACDとKDを組み込む.
取引量の変化を補完条件として考慮し,ブレイクアウトのために増幅されたボリュームを必要とするようなものです.
基本要素を補完指標として導入します.例えば,業績報告や利回り差.
動的にポジションサイズとストップロスのレベルを調整します.
概要すると,これは非常に典型的でシンプルなMAクロスオーバーシステムで,異なるバックバック期間の2つのMAによって形成されたゴールデンクロスとデスクロスから取引信号を生成します.利点はシンプルさ,理解しやすさ,受け入れられる最大引き下げとシャープ比率の良いバックテスト結果です.また,遅れの信号や不安定な市場で損失などの問題もあります.しかし,適切な強化によって改善することができます.全体的に,これはアルゴリズム取引を学び,実践する初心者にとって優れたスタート戦略です.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia de Cruce de Medias Móviles", overlay=true) // Medias móviles ma30 = ta.sma(close, 30) ma60 = ta.sma(close, 60) ma200 = ta.sma(close, 200) // Cruce de medias móviles crossoverUp = ta.crossover(ma30, ma200) crossoverDown = ta.crossunder(ma30, ma200) // Señales de compra y venta longCondition = crossoverUp shortCondition = crossoverDown // Ejecución de órdenes if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Cover", "Buy", stop=close - 40.000, limit=close + 40.000) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Cover", "Sell", stop=close + 40.000, limit=close - 40.000) // Plot de las medias móviles plot(ma30, color=color.blue, title="MA 30") plot(ma60, color=color.orange, title="MA 60") plot(ma200, color=color.green, title="MA 200") // Condiciones para cerrar la posición contraria if (strategy.position_size > 0) if (crossoverDown) strategy.close("Buy") if (strategy.position_size < 0) if (crossoverUp) strategy.close("Sell")