
Ini adalah strategi perdagangan kuantitatif tingkat lanjut yang menggabungkan rata-rata pergerakan eksponensial (EMA), konfirmasi volume, dan indikator tingkat tren rata-rata (ATR). Strategi ini menggunakan beberapa indikator teknis untuk tidak hanya memahami tren pasar secara akurat, tetapi juga meningkatkan keandalan transaksi melalui konfirmasi volume. Pada saat yang sama, strategi ini menggunakan ATR untuk menyesuaikan posisi stop-loss dan take-profit secara dinamis, sehingga mewujudkan sistem manajemen risiko yang komprehensif. .
Logika inti dari strategi ini terdiri dari tiga bagian utama:
Strategi ini membangun sistem perdagangan yang logis dan ketat dengan menggunakan berbagai indikator teknis secara komprehensif. Keuntungan inti dari strategi ini terletak pada berbagai mekanisme konfirmasi dan manajemen risiko yang dinamis, tetapi perlu juga memperhatikan risiko seperti pembalikan tren dan penembusan volume palsu. Melalui optimalisasi dan perbaikan berkelanjutan, strategi ini diharapkan dapat mencapai kinerja yang lebih baik dalam transaksi aktual.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-16 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Enhanced Volume + Trend Strategy", overlay=true)
// Inputs
emaLength = input.int(50, title="EMA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplierSL = input.float(2.0, title="ATR Multiplier for Stop Loss")
atrMultiplierTP = input.float(3.0, title="ATR Multiplier for Take Profit")
volLength = input.int(20, title="Volume Moving Average Length")
volMultiplier = input.float(1.5, title="Volume Multiplier (Relative to Previous Volume)")
// Trend Detection using EMA
ema = ta.ema(close, emaLength)
// ATR Calculation for Stop Loss/Take Profit
atr = ta.atr(atrLength)
// Volume Moving Average
volMA = ta.sma(volume, volLength)
// Additional Volume Condition (Current Volume > Previous Volume + Multiplier)
volCondition = volume > volMA * volMultiplier and volume > volume[1]
// Entry Conditions based on Trend (EMA) and Volume (Volume Moving Average)
longCondition = close > ema and volCondition
shortCondition = close < ema and volCondition
// Stop Loss and Take Profit Levels
longStopLoss = close - (atr * atrMultiplierSL)
longTakeProfit = close + (atr * atrMultiplierTP)
shortStopLoss = close + (atr * atrMultiplierSL)
shortTakeProfit = close - (atr * atrMultiplierTP)
// Strategy Execution
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLoss, limit=longTakeProfit)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Short", stop=shortStopLoss, limit=shortTakeProfit)
// Plotting EMA
plot(ema, color=color.yellow, title="EMA")
// Plot Volume Moving Average
plot(volMA, color=color.blue, title="Volume Moving Average")
// Signal Visualizations
plotshape(series=longCondition, color=color.green, style=shape.labelup, location=location.belowbar, title="Buy Signal")
plotshape(series=shortCondition, color=color.red, style=shape.labeldown, location=location.abovebar, title="Sell Signal")