
Strategi ini adalah strategi perdagangan kuantitatif yang menggabungkan harga rata-rata bobot perdagangan (VWAP) dan dispersi konvergensi rata-rata bergerak (MACD). Strategi ini mencari waktu masuk dan keluar yang optimal dalam arah tren pasar dengan menggabungkan indikator dinamika harga dengan bobot perdagangan. Strategi ini menggunakan VWAP sebagai level acuan harga yang penting, sementara menggunakan indikator MACD untuk menangkap perubahan dinamika pasar, sehingga dapat melakukan posisi jual beli yang lebih akurat dalam perdagangan.
Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:
Strategi indikator ganda VWAP-MACD, dengan menggabungkan analisis bobot dan dinamika perdagangan, memberikan dukungan teknis yang andal untuk keputusan perdagangan. Strategi ini dirancang secara rasional, logis jelas, memiliki kepraktisan yang baik dan skalabilitas. Dengan pengoptimalan terus menerus dan perbaikan manajemen risiko, strategi ini diharapkan menghasilkan keuntungan yang stabil dalam perdagangan nyata.
/*backtest
start: 2025-01-08 00:00:00
end: 2025-02-06 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("VWAP + MACD Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// VWAP Calculation
vwapValue = ta.vwap(close)
// MACD Settings
fastLength = input.int(12, title="MACD Fast Length")
slowLength = input.int(26, title="MACD Slow Length")
signalSmoothing = input.int(9, title="MACD Signal Smoothing")
// MACD Calculation
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
macdHistogram = macdLine - signalLine
// Plot VWAP
plot(vwapValue, color=color.orange, title="VWAP")
// Plot MACD
hline(0, "Zero Line", color=color.gray)
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
plot(macdHistogram, color=(macdHistogram >= 0 ? color.green : color.red), style=plot.style_histogram, title="MACD Histogram")
// Long Condition: MACD crosses above Signal and price is above VWAP
longCondition = ta.crossover(macdLine, signalLine) and close > vwapValue
if (longCondition)
strategy.entry("Long", strategy.long)
// Short Condition: MACD crosses below Signal and price is below VWAP
shortCondition = ta.crossunder(macdLine, signalLine) and close < vwapValue
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit Long: MACD crosses below Signal or price crosses below VWAP
exitLong = ta.crossunder(macdLine, signalLine) or close < vwapValue
if (exitLong)
strategy.close("Long")
// Exit Short: MACD crosses above Signal or price crosses above VWAP
exitShort = ta.crossover(macdLine, signalLine) or close > vwapValue
if (exitShort)
strategy.close("Short")