この戦略は,急速な期間の指数関数移動平均 (EMA) を計算し,チャートにプロットし,トレンド逆転を決定するためにリアルタイムでクロスオーバーをモニターする. 取引信号は,誤った信号を避けるためにRSIオシレーターを組み込むことで形成される. 急速な EMAが遅い EMAを超えると購入信号が生成される. 急速な EMAが遅い EMAを下回ると販売信号が生成される.
この戦略は,傾向逆転を決定するためにEMAクロスオーバーを使用して,RSIによってフィルタリングされ,中期から長期間の傾向を把握する明確な論理を持っています.しかし,EMA/RSIパラメータの最適化とストップ損失,また不安定な市場で逆転を逃すリスクおよび失敗は残っています.調整されたパラメーターとリスク制御により,ターニングポイントを特定し,投資決定を策定するのに役立ちます.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Trend Change with EMA Entry/Exit - Intraday", overlay=true) // Define the fast and slow EMA periods fast_ema_period = input(10, title="Fast EMA Period") slow_ema_period = input(50, title="Slow EMA Period") // Calculate the EMAs ema_fast = ta.ema(close, fast_ema_period) ema_slow = ta.ema(close, slow_ema_period) // Plot the EMAs on the chart plot(ema_fast, title="Fast EMA", color=color.blue, linewidth=2) plot(ema_slow, title="Slow EMA", color=color.orange, linewidth=2) // Detect trend changes (crossovers and crossunders) is_uptrend = ta.crossover(ema_fast, ema_slow) is_downtrend = ta.crossunder(ema_fast, ema_slow) // Relative Strength Index (RSI) rsi_length = input(14, title="RSI Length") overbought_level = input(70, title="Overbought Level") oversold_level = input(30, title="Oversold Level") rsi_value = ta.rsi(close, rsi_length) // Trend Filter is_trending = ta.change(is_uptrend) != 0 or ta.change(is_downtrend) != 0 // Entry and Exit signals enter_long = is_uptrend and rsi_value < overbought_level and is_trending exit_long = is_downtrend and is_trending enter_short = is_downtrend and rsi_value > oversold_level and is_trending exit_short = is_uptrend and is_trending strategy.entry("Buy", strategy.long, when=enter_long) strategy.close("Buy", when=exit_long) strategy.entry("Sell", strategy.short, when=enter_short) strategy.close("Sell", when=exit_short)