この戦略は,複数の指数関数移動平均値 (EMA) をベースとしたトレンドフォローティングシステムである.異なる期間 (10, 30, 50) の3つのEMAを活用し,価格クロスオーバーとトレンド方向分析を組み合わせて,完全な買い売りシグナルシステムを構築する.この戦略はトレンド形成,確認,逆転を徹底的に考慮し,市場の主要なトレンド機会を効果的に把握する.
戦略は,取引信号を決定するために階層的な判断メカニズムを使用します. トレンド決定層: トレンド方向を判断するために3つのEMA (10/30/50) の相対的位置を使用する. EMA10 > EMA30 > EMA50で上昇傾向が特定され, EMA50 > EMA30 > EMA10で下落傾向が特定される. 2. 信号トリガー層: トレンドが確立されると, EMA30 との価格クロスオーバーによって取引信号がトリガーされる. 上向きのクロスは購入信号をトリガーし,下向きのクロスは販売信号をトリガーする. 3. ポジション管理層: EMA30 が EMA50 を逆方向に横切ると,対応するポジション閉じる信号を起動し,体系的な出口メカニズムを提供します.
EMAは,戦略の安定性と明確な取引信号の両方を保証する.いくつかの固有の遅延リスクがある一方で,戦略は合理的な最適化とリスク管理措置を通じて良い実用的な価値を示しています.それは特に制御されたリスクで安定したリターンを求めるトレーダーに適しています.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © banyat6913 //@version=5 strategy("EMA Trend Strategy", overlay=true) // Input Parameters ema_short_length = input.int(10, title="EMA Short Length", minval=1) ema_mid_length = input.int(30, title="EMA Mid Length", minval=1) ema_long_length = input.int(50, title="EMA Long Length", minval=1) // Calculate EMA ema_short = ta.ema(close, ema_short_length) ema_mid = ta.ema(close, ema_mid_length) ema_long = ta.ema(close, ema_long_length) // **TREND UP** // 1. EMA 10 > EMA 30 > EMA 50 uptrend_condition = ema_short > ema_mid and ema_mid > ema_long // 2. Bullish Candle Crossing Up EMA 30 bullish_candle = close > open cross_up_ema_mid = ta.crossover(close, ema_mid) // 3. If EMA 30 crosses down EMA 50 -> Close Buy Order ema_30_cross_down_50 = ta.crossunder(ema_mid, ema_long) // Buy Signal buy_signal = uptrend_condition and cross_up_ema_mid // Sell Signal for closing Buy Order close_buy_signal = ema_30_cross_down_50 // **TREND DOWN** // 1. EMA 50 > EMA 30 > EMA 10 downtrend_condition = ema_long > ema_mid and ema_mid > ema_short // 2. Bearish Candle Crossing Down EMA 30 bearish_candle = close < open cross_down_ema_mid = ta.crossunder(close, ema_mid) // 3. If EMA 30 crosses up EMA 50 -> Close Sell Order ema_30_cross_up_50 = ta.crossover(ema_mid, ema_long) // Sell Signal sell_signal = downtrend_condition and cross_down_ema_mid // Buy Signal for closing Sell Order close_sell_signal = ema_30_cross_up_50 // Backtesting Logic if (buy_signal) strategy.entry("Buy", strategy.long) if (close_buy_signal) strategy.close("Buy") if (sell_signal) strategy.entry("Sell", strategy.short) if (close_sell_signal) strategy.close("Sell") // Plot EMA Lines plot(ema_short, color=color.blue, title="EMA 10") plot(ema_mid, color=color.orange, title="EMA 30") plot(ema_long, color=color.green, title="EMA 50") // Plot Buy and Sell Signals on Chart plotshape(buy_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="BUY", title="Buy Signal") plotshape(close_buy_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="CLOSE BUY", title="Close Buy Signal") plotshape(sell_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="SELL", title="Sell Signal") plotshape(close_sell_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="CLOSE SELL", title="Close Sell Signal")