Strategi ini adalah sistem perdagangan pembalikan trend berdasarkan sinkronisasi beberapa penunjuk teknikal, yang terutamanya direka untuk perdagangan jangka pendek pada jangka masa 5 minit. Ia mengintegrasikan trend pergerakan purata berikut, pengesahan jumlah, penapisan turun naik ATR, dan kaedah analisis pelbagai dimensi lain untuk menyaring peluang perdagangan pembalikan kemungkinan tinggi melalui syarat kemasukan yang ketat. Strategi ini sangat sesuai untuk perdagangan semasa sesi likuiditi tinggi dan dapat menangkap peluang pembalikan pasaran jangka pendek dengan berkesan.
Logik teras strategi ini berdasarkan komponen utama berikut: 1. Pengesanan Isyarat Pembalikan: Menggunakan tempoh kembali (detik 12 lalai) untuk mengenal pasti corak pembalikan yang berpotensi dengan menganalisis hubungan harga dengan paras tertinggi dan terendah dalam sejarah. 2. Pengesahan Trend: Mengintegrasikan pelbagai penunjuk purata bergerak termasuk SMA, EMA, WMA, dan VWMA, yang membolehkan pengguna memilih jenis purata yang paling sesuai untuk keadaan pasaran yang berbeza. 3. Pengesahan Volume: mengesahkan isyarat pembalikan dengan membandingkan jumlah semasa dengan purata jumlah 20 tempoh. 4. Pengurusan Risiko: Mengatur sasaran stop-loss dan keuntungan secara dinamik berdasarkan penunjuk ATR, menggunakan 1.5x ATR sebagai julat stop-loss lalai dan 2x stop-loss sebagai sasaran keuntungan.
Strategi ini adalah sistem perdagangan jangka pendek yang direka dengan baik yang mencapai pengenalan isyarat pembalikan yang boleh dipercayai dan kawalan risiko melalui kerjasama pelbagai penunjuk. Kekuatannya terletak pada pilihan konfigurasi yang fleksibel dan mekanisme pengurusan risiko yang komprehensif, tetapi peniaga perlu mengoptimumkan tetapan parameter dengan teliti dan menggunakannya dalam persekitaran pasaran yang sesuai. Melalui pengoptimuman dan peningkatan yang berterusan, strategi ini berpotensi 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")