この戦略は,EMA指数移動平均とMACD指標を計算し,両方のクロスオーバー信号を組み合わせてエントリーとアウトシグナルを生成する.価格がEMA線上を横切り,MACD線が信号線上を横切ったとき,価格がEMA線下を横切り,MACD線が信号線下を横切ると,ロングになります.
この戦略は,現在のトレンド方向を決定するためにEMA指数関数移動平均を使用する.同時に,取引信号を生成するためにMACD指標の移動平均クロスオーバーを使用する.価格がEMA線を突破するときにのみ,MACD黄金十字と死亡十字信号が考慮される.これは偽信号を避ける.
この戦略は主に移動平均取引戦略とMACD取引戦略の利点に基づいています.移動平均は傾向の方向をかなりよく判断できます.MACD指数移動平均の高速および遅い線クロスオーバーは購入と販売ポイントを示します.両方を組み合わせることで,シグナルの精度を向上させることができます.
この戦略は,EMAとMACDの二重指標を組み合わせて,いくつかの誤った信号を効果的にフィルタリングし,信号品質を改善する.同時に,EMAは主要なトレンドを判断し,MACDは特定のエントリーと出口点を判断する.両者は互いを補完し,良い収益を達成することができます.
さらに,この戦略は,価格がEMA線を突破したときのみMACD信号を考慮し,不安定な市場で間違った取引を避ける.これは戦略の安定性を向上させる.
この戦略の主なリスクはパラメータ設定にある.EMAとMACDのパラメータが正しく設定されていない場合,シグナルが見逃され,または誤ったシグナルが生成される可能性があります.また,市場の傾向が逆転した場合,戦略はいくつかの損失を負う可能性があります.
リスクを軽減するために,パラメータは,現在の市場サイクルであるEMAとMACDに適合するように適切に調整されるべきである.同時に,単一の損失を制御するためにストップロスを使用することが推奨される.市場は底部プロセスに入るかサポートに触ると,持続的な損失を避けるために取引は中止されるべきである.
戦略の次の側面を最適化することができる:
パラメータの有効性を確保するために,リアルタイム市場条件とサイクルに応じてEMAとMACDパラメータを調整するためにパラメータを動的に最適化します.
戦略信号を豊かにするために,BOLLチャンネルやKD指標などの他の指標を組み合わせて追加します.
機械学習方法を使用して,戦略パラメータを自動的に最適化し,バックテスト結果に基づいてパラメータを調整します
EMA線を突破する際,誤った突破を避けるために方向の強さを判断します.
利益と損失を削減するために利益とストップ損失戦略を追加します
移動平均クロスオーバー定量戦略は,高品質のシグナルを効果的に生成するために二重EMAとMACD指標を組み合わせます.パラメータ設定を最適化し,ストップ損失/利益を取ること,他の指標を追加し,戦略の安定性と収益性をさらに向上させることができます.この効果的でシンプルな戦略は定量トレーダーにとって大きな参照およびアプリケーション価値を持っています.
/*backtest start: 2022-12-15 00:00:00 end: 2023-12-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("LONERTESTV2", overlay=true) // Input definitions fastLength = input(12, title="Fast Length") slowlength = input(26, title="Slow Length") MACDLength = input(9, title="MACD Length") emaLength = input(13, title="EMA Length") //smaLength = input(200, title="SMA Length") // SMA Indicator - Are we in a Bull or Bear market according to 200 SMA? //SMA = ta.ema(close, smaLength) // EMA Indicator - Are we in a rally or not? EMA = ta.ema(close, emaLength) // MACD Indicator - Is the MACD bullish or bearish? MACD = ta.ema(close, fastLength) // - ta.ema(close, slowlength) aMACD = ta.ema(MACD, MACDLength) delta = MACD - aMACD // Set Buy/Sell conditions buy_entry = close > EMA and delta > 5 ? true : close > EMA and delta > -5 sell_entry = close < EMA and delta < -5 ? true : close < EMA and delta < 5 if buy_entry strategy.entry(id='EL', direction=strategy.long) if sell_entry strategy.entry(id='ES', direction=strategy.short) // strategy.entry("Buy", strategy.long) // strategy.entry("Sell", strategy.short)