Ini adalah sistem strategi dagangan yang menggabungkan penunjuk momentum RSI dengan penunjuk turun naik ATR. Strategi ini mengenal pasti peluang dagangan yang berpotensi dengan memantau persilangan RSI dengan purata bergerak sambil menggunakan penunjuk ATR sebagai penapis turun naik untuk memastikan turun naik pasaran yang mencukupi. Strategi ini beroperasi semasa waktu dagangan Eropah (8:00-21:00 waktu Prague) pada jangka masa 5 minit dengan tahap mengambil keuntungan dan stop-loss tetap.
Logik teras berdasarkan beberapa komponen utama: 1. Indikator RSI mengenal pasti kawasan yang terlalu dijual (di bawah 45) dan terlalu dibeli (di atas 55) 2. RSI crossovers dengan purata bergerak isyarat masuk pencetus 3. Indikator ATR menapis persekitaran turun naik yang rendah, hanya membenarkan perdagangan di atas ambang 4. Waktu dagangan terhad kepada 8:00-21:00 waktu Prague 5. Strategi stop-loss dan mengambil keuntungan tetap ditetapkan pada 5000 mata
Peraturan perdagangan khusus: - Syarat panjang: RSI melintasi di atas MA di bawah 45, memenuhi kriteria masa dan turun naik - Syarat pendek: RSI melintasi di bawah MA di atas 55, memenuhi kriteria masa dan turun naik - Syarat keluar: Penutupan automatik pada tahap mengambil keuntungan atau henti rugi
Strategi ini membina sistem perdagangan yang agak lengkap dengan menggabungkan penunjuk RSI dan ATR. Kekuatannya utama terletak pada pelbagai mekanisme penapisan dan pengurusan risiko yang komprehensif, walaupun terdapat batasan. Melalui pengoptimuman yang dicadangkan, strategi menunjukkan potensi untuk peningkatan prestasi. Kuncinya adalah penyesuaian parameter berterusan dan pengoptimuman berdasarkan keadaan perdagangan sebenar untuk mengekalkan daya adaptasi.
/*backtest start: 2024-11-10 00:00:00 end: 2024-12-09 08:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Custom RSI + ATR Strategy", overlay=true) // === Настройки индикаторов === rsi_length = input.int(14, minval=1, title="RSI Length") rsi_ma_length = input.int(10, minval=1, title="RSI MA Length") atr_length = input.int(14, minval=1, title="ATR Length") atr_threshold = input.float(0.5, minval=0.1, title="ATR Threshold") // === Параметры стоп-лосса и тейк-профита === stop_loss_ticks = input.int(5000, title="Stop Loss Ticks") take_profit_ticks = input.int(5000, title="Take Profit Ticks") // === Получение значений индикаторов === rsi = ta.rsi(close, rsi_length) rsi_ma = ta.sma(rsi, rsi_ma_length) atr_value = ta.atr(atr_length) // === Время для открытия сделок === start_time = timestamp("Europe/Prague", year, month, dayofmonth, 8, 0) end_time = timestamp("Europe/Prague", year, month, dayofmonth, 21, 0) in_trading_hours = (time >= start_time and time <= end_time) // === Условие по волатильности === volatility_filter = atr_value > atr_threshold // === Условия для лонгов === long_condition = ta.crossover(rsi, rsi_ma) and rsi < 45 and in_trading_hours and volatility_filter if (long_condition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", stop=low - stop_loss_ticks * syminfo.mintick, limit=high + take_profit_ticks * syminfo.mintick) // === Условия для шортов === short_condition = ta.crossunder(rsi, rsi_ma) and rsi > 55 and in_trading_hours and volatility_filter if (short_condition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit/Stop Loss", "Short", stop=high + stop_loss_ticks * syminfo.mintick, limit=low - take_profit_ticks * syminfo.mintick) // === Отображение индикаторов на графике === plot(rsi, color=color.blue, title="RSI") plot(rsi_ma, color=color.red, title="RSI MA") hline(45, "RSI 45", color=color.green) hline(55, "RSI 55", color=color.red) plot(atr_value, color=color.orange, title="ATR", linewidth=2) hline(atr_threshold, "ATR Threshold", color=color.purple)