Strategi perdagangan kuantitatif multi-faktor VWAP-MACD-RSI

VWAP MACD RSI TP SL
Tanggal Pembuatan: 2024-11-27 16:11:00 Akhirnya memodifikasi: 2024-11-27 16:11:00
menyalin: 1 Jumlah klik: 771
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif multi-faktor VWAP-MACD-RSI

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang didasarkan pada tiga indikator teknis VWAP, MACD, dan RSI. Strategi ini mengidentifikasi peluang jual beli di pasar dengan mengkombinasikan sinyal ganda dari VWAP, MACD, dan RSI. Strategi ini menggunakan mekanisme stop loss persentase untuk mengelola risiko, dan menggunakan manajemen posisi strategi untuk mengoptimalkan pemanfaatan dana.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada analisis komprehensif dari tiga indikator utama:

  1. Menggunakan VWAP sebagai garis acuan tren utama, dianggap sebagai sinyal konversi tren potensial ketika harga menembus VWAP
  2. Bagan MACD digunakan untuk mengkonfirmasi kekuatan dan arah tren, dengan nilai positif menunjukkan tren naik, dan nilai negatif menunjukkan tren turun
  3. RSI digunakan untuk mengidentifikasi apakah pasar berada dalam kondisi overbought atau oversold, untuk menghindari masuk dalam situasi ekstrim

Syarat pembelian harus memenuhi:

  • Harga naik melampaui VWAP
  • MACD berupa kolom dengan nilai positif
  • RSI belum mencapai level overbought

Kondisi penjualan harus memenuhi:

  • Harga turun dari VWAP
  • MACD adalah negatif.
  • RSI belum mencapai level oversold

Keunggulan Strategis

  1. Verifikasi silang berbagai indikator teknis untuk meningkatkan keandalan sinyal
  2. Dengan VWAP, faktor volume diperkenalkan untuk meningkatkan analisis mendalam pasar.
  3. Menggunakan RSI untuk memfilter tren ekstrim dan mengurangi risiko terobosan palsu
  4. Menggunakan Stop Loss Persentase, Beradaptasi Secara Dinamis Dengan Berbagai Rentang Harga
  5. position sizing berdasarkan rasio nilai bersih akun, untuk mengimplementasikan manajemen posisi dinamis
  6. Strategi logis yang jelas, mudah dipahami dan dipertahankan

Risiko Strategis

  1. Pasar yang bergejolak dapat membuat transaksi lebih sering dan meningkatkan biaya transaksi.
  2. Beberapa indikator dapat menyebabkan sinyal yang terlambat, yang mempengaruhi waktu masuk.
  3. Stop loss persentase tetap mungkin tidak cocok untuk semua kondisi pasar
  4. Tidak mempertimbangkan perubahan volatilitas pasar, yang dapat meningkatkan risiko pada periode fluktuasi tinggi
  5. Kurangnya penyaringan intensitas tren yang mungkin menghasilkan terlalu banyak sinyal di pasar tren lemah

Arah optimasi strategi

  1. Memperkenalkan ATR untuk menyesuaikan stop loss secara dinamis agar lebih beradaptasi dengan pergerakan pasar
  2. Menambahkan filter intensitas tren untuk mengurangi sinyal palsu di pasar yang bergoyang
  3. Optimalkan pengaturan siklus VWAP, pertimbangkan kombinasi VWAP multi-siklus
  4. Memperkenalkan mekanisme konfirmasi pengiriman untuk meningkatkan keandalan sinyal penembusan
  5. Pertimbangkan untuk menambahkan filter waktu untuk menghindari perdagangan pada saat likuiditas rendah
  6. Posisi sizing mekanisme yang memungkinkan penyesuaian posisi secara dinamis, menyesuaikan ukuran posisi sesuai dengan kondisi pasar

Meringkaskan

Strategi ini membangun sistem perdagangan yang relatif lengkap dengan menggunakan tiga indikator teknis klasik VWAP, MACD dan RSI secara komprehensif. Strategi ini dirancang untuk memfokuskan pada keandalan sinyal dan manajemen risiko, meningkatkan kualitas perdagangan melalui verifikasi silang multi-indikator. Meskipun ada beberapa aspek yang perlu dioptimalkan, kerangka kerja keseluruhan masuk akal dan memiliki skalabilitas yang baik.

Kode Sumber Strategi
/*backtest
start: 2024-10-27 00:00:00
end: 2024-11-26 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("pbs", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Input for take-profit and stop-loss
takeProfitPercent = input.float(0.5, title="Take Profit (%)", step=0.1) / 100
stopLossPercent = input.float(0.25, title="Stop Loss (%)", step=0.1) / 100


macdFastLength = input.int(12, title="MACD Fast Length")
macdSlowLength = input.int(26, title="MACD Slow Length")
macdSignalLength = input.int(9, title="MACD Signal Length")


rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level", step=1)
rsiOversold = input.int(30, title="RSI Oversold Level", step=1)


vwap = ta.vwap(close)


[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
macdHistogram = macdLine - signalLine

rsi = ta.rsi(close, rsiLength)


plot(vwap, color=color.purple, linewidth=2, title="VWAP")
hline(rsiOverbought, "Overbought", color=color.red, linestyle=hline.style_dotted)
hline(rsiOversold, "Oversold", color=color.green, linestyle=hline.style_dotted)
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")

// Buy Condition
longCondition = ta.crossover(close, vwap) and macdHistogram > 0 and rsi < rsiOverbought

// Sell Condition
shortCondition = ta.crossunder(close, vwap) and macdHistogram < 0 and rsi > rsiOversold

// Execute trades based on conditions
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=close * (1 + takeProfitPercent), stop=close * (1 - stopLossPercent))

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Short", limit=close * (1 - takeProfitPercent), stop=close * (1 + stopLossPercent))

// Plot Buy/Sell Signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")