
Strategi ini adalah strategi perdagangan kuantitatif yang menggabungkan harga purata bertimbangan kuantitatif ((VWAP) dan dispersi trend rata-rata bergerak ((MACD)). Strategi ini mencari masa masuk dan keluar yang terbaik dalam arah trend pasaran dengan menggabungkan indikator pergerakan harga dengan berat kuantitatif. Strategi ini menggunakan VWAP sebagai tahap rujukan harga yang penting, sambil menggunakan indikator MACD untuk menangkap perubahan pergerakan pasaran, yang membolehkan penempatan tempat jual beli yang lebih tepat dalam perdagangan.
Logik teras strategi adalah berdasarkan elemen utama berikut:
Strategi dua indikator VWAP-MACD menyediakan sokongan teknikal yang boleh dipercayai untuk membuat keputusan perdagangan dengan menggabungkan analisis berat dan dinamik. Strategi ini direka dengan munasabah, logik jelas, mempunyai kepraktisan yang baik dan kebolehskalian. Dengan pengoptimuman berterusan dan pengendalian risiko yang lebih baik, strategi ini dijangka memperoleh keuntungan yang stabil dalam perdagangan sebenar.
/*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")