Strategi ini adalah sistem perdagangan pembalikan tren berdasarkan sinkronisasi beberapa indikator teknis, terutama dirancang untuk perdagangan jangka pendek pada jangka waktu 5 menit. Ini mengintegrasikan mengikuti tren rata-rata bergerak, konfirmasi volume, penyaringan volatilitas ATR, dan metode analisis multi-dimensi lainnya untuk menyaring peluang perdagangan pembalikan kemungkinan tinggi melalui kondisi masuk yang ketat. Strategi ini sangat cocok untuk perdagangan selama sesi likuiditas tinggi dan dapat secara efektif menangkap peluang pembalikan pasar jangka pendek.
Logika inti dari strategi ini didasarkan pada komponen utama berikut: 1. Deteksi Sinyal Reversal: Menggunakan periode lookback (default 12 periode) untuk mengidentifikasi pola reversal potensial dengan menganalisis hubungan harga dengan rekor tertinggi dan terendah dalam sejarah. Konfirmasi Tren: Mengintegrasikan berbagai indikator rata-rata bergerak termasuk SMA, EMA, WMA, dan VWMA, memungkinkan pengguna untuk memilih jenis rata-rata yang paling cocok untuk kondisi pasar yang berbeda. 3. Verifikasi Volume: Mengkonfirmasi sinyal pembalikan dengan membandingkan volume saat ini dengan rata-rata volume 20 periode. 4. Manajemen Risiko: Secara dinamis menyesuaikan target stop-loss dan laba berdasarkan indikator ATR, menggunakan 1.5x ATR sebagai kisaran stop-loss default dan 2x stop-loss sebagai target laba.
Strategi ini adalah sistem perdagangan jangka pendek yang dirancang dengan baik yang mencapai identifikasi sinyal pembalikan yang dapat diandalkan dan pengendalian risiko melalui kolaborasi multi-indikator. Kekuatannya terletak pada opsi konfigurasi yang fleksibel dan mekanisme manajemen risiko yang komprehensif, tetapi pedagang perlu mengoptimalkan pengaturan parameter secara menyeluruh dan menggunakannya di lingkungan pasar yang sesuai. Melalui optimalisasi dan perbaikan berkelanjutan, strategi ini memiliki potensi untuk menjadi alat perdagangan jangka pendek yang stabil.
/*backtest start: 2024-01-17 00:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Reversal Signals Strategy [AlgoAlpha]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Inputs group_strategy = "Strategy Settings" riskRewardRatio = input.float(2.0, "Risk-Reward Ratio", tooltip="Take Profit is Risk-Reward times Stop Loss", group=group_strategy) stopLossATRMultiplier = input.float(1.5, "Stop Loss ATR Multiplier", tooltip="Multiplier for ATR-based stop loss", group=group_strategy) // Reversal Signal Detection (from previous script) group_reversal = "Reversal Detection Settings" lookbackPeriod = input.int(12, "Candle Lookback", group=group_reversal) confirmationPeriod = input.int(3, "Confirm Within", group=group_reversal) enableVolumeConfirmation = input.bool(true, "Use Volume Confirmation", group=group_reversal) group_trend = "Trend Settings" trendMAPeriod = input.int(50, "Trend MA Period", group=group_trend) trendMAType = input.string("EMA", "MA Type", options=["SMA", "EMA", "WMA", "VWMA"], group=group_trend) group_appearance = "Appearance" bullColor = input.color(#00ffbb, "Bullish Color", group=group_appearance) bearColor = input.color(#ff1100, "Bearish Color", group=group_appearance) // Moving Average Selection ma_current = switch trendMAType "SMA" => ta.sma(close, trendMAPeriod) "EMA" => ta.ema(close, trendMAPeriod) "WMA" => ta.wma(close, trendMAPeriod) "VWMA" => ta.vwma(close, trendMAPeriod) // Volume Confirmation volumeIsHigh = volume > ta.sma(volume, 20) // Calculate Reversal Scores bullCandleScore = 0 bearCandleScore = 0 for i = 0 to (lookbackPeriod - 1) bullCandleScore += close < low[i] ? 1 : 0 bearCandleScore += close > high[i] ? 1 : 0 // Reversal Signals bullSignal = bullCandleScore == (lookbackPeriod - 1) and (not enableVolumeConfirmation or volumeIsHigh) bearSignal = bearCandleScore == (lookbackPeriod - 1) and (not enableVolumeConfirmation or volumeIsHigh) // ATR-based Stop Loss and Take Profit atrValue = ta.atr(14) stopLossLevel = stopLossATRMultiplier * atrValue takeProfitLevel = stopLossLevel * riskRewardRatio // Strategy Orders if bullSignal strategy.entry("Long", strategy.long) strategy.exit("Long TP/SL", from_entry="Long", stop=close - stopLossLevel, limit=close + takeProfitLevel) if bearSignal strategy.entry("Short", strategy.short) strategy.exit("Short TP/SL", from_entry="Short", stop=close + stopLossLevel, limit=close - takeProfitLevel) // Plot Reversal Signals plotshape(bullSignal, title="Buy Signal", style=shape.labelup, location=location.belowbar, color=bullColor, size=size.small, text="B") plotshape(bearSignal, title="Sell Signal", style=shape.labeldown, location=location.abovebar, color=bearColor, size=size.small, text="S") // Alerts for trade signals alertcondition(bullSignal, "Bullish Reversal", "Bullish Reversal Signal Detected") alertcondition(bearSignal, "Bearish Reversal", "Bearish Reversal Signal Detected")