この戦略は,2つの移動平均値 (EMA) のクロスオーバーに基づいて取引信号を生成する.短期EMA (20日) が長期EMA (50日) を越えると,購入信号が誘発され,短期EMAが長期EMAを下回ると,販売信号が誘発される.さらに,この戦略は長期トレンドの基準として200日EMAをプロットする.この戦略の背後にある主なアイデアは,異なる期間の移動平均値のクロスオーバーを使用して市場トレンドの変化を把握することです.
EMAのダブルムービング・アベレージ・クロスオーバー戦略は,トレンド市場に適したシンプルで直接的な取引戦略である.短期および長期間のムービング・アベレージのクロスオーバーを利用し,長期的なトレンド参照を組み込むと同時に市場のトレンドの変化を把握する.この戦略には,不安定な市場における非最適なパフォーマンスやムービング・アベレージの遅れなどのいくつかの制限があるが,追加の指標を組み込み,パラメータを最適化し,リスク管理措置を実施し,トレンドを確認することによってさらに強化することができる.これらの最適化は戦略の強度と収益性を向上させる.
/*backtest start: 2023-03-23 00:00:00 end: 2024-03-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy by Peter Gangmei", overlay=true) // Define the length for moving averages short_ma_length = input.int(20, "Short MA Length") long_ma_length = input.int(50, "Long MA Length") long_ma_200_length = input.int(200, "Long MA 200 Length") // Define start time for testing start_time = timestamp(2024, 01, 01, 00, 00) // Calculate current date and time current_time = timenow // Calculate moving averages ema20 = ta.ema(close, short_ma_length) ema50 = ta.ema(close, long_ma_length) ema200 = ta.ema(close, long_ma_200_length) // Crossing conditions crossed_above = ta.crossover(ema20, ema50) crossed_below = ta.crossunder(ema20, ema50) // Entry and exit conditions within the specified time frame if true if (crossed_above) strategy.entry("Buy", strategy.long) alert("Buy Condition", alert.freq_once_per_bar_close) if (crossed_below) strategy.entry("Sell", strategy.short) alert("Sell Condition", alert.freq_once_per_bar_close) // Plotting moving averages for visualization plot(ema20, color=color.green, title="EMA20") plot(ema50, color=color.red, title="EMA50") plot(ema200, color=color.blue, title="EMA200") // Placing buy and sell markers plotshape(series=crossed_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=crossed_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")