Strategi ini menghitung rata-rata bergerak eksponensial (EMA) dari periode cepat dan lambat, menggambarkannya pada grafik, dan memantau crossover secara real-time untuk menentukan pembalikan tren. Sinyal perdagangan dibentuk dengan menggabungkan osilator RSI untuk menghindari sinyal palsu. Sinyal beli dihasilkan ketika EMA cepat melintasi di atas EMA lambat. Sinyal jual dihasilkan ketika EMA cepat melintasi di bawah EMA lambat.
Strategi ini memiliki logika yang jelas menggunakan EMA crossover untuk menentukan pembalikan tren, disaring oleh RSI untuk menangkap tren jangka menengah hingga panjang. Namun, optimasi parameter EMA / RSI dan stop loss, serta risiko pembalikan yang hilang dan kegagalan di pasar yang tidak stabil tetap ada. Dengan parameter yang disesuaikan dan pengendalian risiko, itu dapat digunakan untuk mengidentifikasi titik balik dan merumuskan keputusan investasi.
/*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)