
Strategi ini adalah sistem perdagangan pembalikan tren berdasarkan koordinasi beberapa indikator teknis, terutama digunakan untuk perdagangan jangka pendek dalam jangka waktu 5 menit. Strategi ini memadukan metode analisis multidimensi seperti pelacakan tren rata-rata pergerakan, konfirmasi volume, penyaringan volatilitas ATR, dll., dan menyaring peluang perdagangan pembalikan probabilitas tinggi melalui kondisi masuk yang ketat. Strategi ini sangat cocok untuk beroperasi selama jam perdagangan dengan likuiditas yang baik dan dapat secara efektif menangkap peluang pembalikan jangka pendek di pasar.
Logika inti dari strategi ini didasarkan pada komponen-komponen kunci berikut:
Strategi ini adalah sistem perdagangan jangka pendek yang dirancang dengan baik yang mencapai identifikasi sinyal pembalikan yang lebih andal dan pengendalian risiko melalui koordinasi berbagai indikator. Keuntungan dari strategi ini terletak pada pilihan konfigurasinya yang fleksibel dan mekanisme manajemen risiko yang sempurna, tetapi juga mengharuskan pedagang untuk sepenuhnya mengoptimalkan pengaturan parameter dan menggunakannya dalam lingkungan pasar yang sesuai. Melalui pengoptimalan dan perbaikan berkelanjutan, 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")