Strategi dagangan kuantitatif berbilang faktor VWAP-MACD-RSI

VWAP MACD RSI TP SL
Tarikh penciptaan: 2024-11-27 16:11:00 Akhirnya diubah suai: 2024-11-27 16:11:00
Salin: 1 Bilangan klik: 771
1
fokus pada
1617
Pengikut

Strategi dagangan kuantitatif berbilang faktor VWAP-MACD-RSI

Gambaran keseluruhan

Ini adalah strategi perdagangan kuantitatif berdasarkan VWAP, MACD, dan RSI. Strategi ini mengidentifikasi peluang jual beli di pasaran dengan menggabungkan pelbagai isyarat perdagangan rata-rata bertimbangan ((VWAP), rata-rata bergerak berhampiran (MACD) dan rasio lemah (RSI). Strategi ini menggunakan peratusan stop loss untuk menguruskan risiko dan menggunakan pengurusan kedudukan strategi untuk mengoptimumkan penggunaan dana.

Prinsip Strategi

Logik utama strategi ini adalah berdasarkan kepada analisis komprehensif terhadap tiga indikator utama:

  1. Menggunakan VWAP sebagai garis rujukan trend utama, dianggap sebagai isyarat perubahan trend yang berpotensi apabila harga menembusi VWAP
  2. Carta MACD digunakan untuk mengesahkan kekuatan dan arah trend, dengan nilai positif menunjukkan trend naik, dan nilai negatif menunjukkan trend turun
  3. RSI digunakan untuk mengenal pasti sama ada pasaran berada dalam keadaan overbought atau oversold untuk mengelakkan masuk dalam keadaan yang melampau

Syarat pembelian perlu dipenuhi:

  • Harga melepasi VWAP
  • MACD sebagai nilai positif
  • RSI tidak mencapai tahap overbought

Syarat jualan perlu dipenuhi:

  • Harga turun menerusi VWAP
  • Garis MACD negatif
  • RSI tidak mencapai tahap oversold

Kelebihan Strategik

  1. Memperbaiki kebolehpercayaan isyarat dengan cross-validasi pelbagai petunjuk teknikal
  2. Memperkenalkan faktor kuantiti urus niaga untuk menambah analisis kedalaman pasaran melalui VWAP
  3. Menggunakan RSI untuk menyaring pergerakan ekstrem dan mengurangkan risiko penembusan palsu
  4. Menggunakan peratusan stop loss, secara dinamik menyesuaikan diri dengan pelbagai julat harga
  5. position sizing berdasarkan peratusan nilai bersih akaun, mewujudkan pengurusan kedudukan dinamik
  6. Strategi logik yang jelas, mudah difahami dan dipelihara

Risiko Strategik

  1. Pasaran yang bergolak mungkin menyebabkan perdagangan yang kerap dan meningkatkan kos transaksi
  2. Penunjuk ganda boleh menyebabkan kelewatan isyarat dan menjejaskan masa masuk
  3. Stop loss peratusan tetap mungkin tidak sesuai untuk semua keadaan pasaran
  4. Tidak mengambil kira perubahan kadar turun naik pasaran, yang mungkin meningkatkan risiko semasa turun naik yang tinggi
  5. Kekurangan penapis kekuatan trend, mungkin memberi terlalu banyak isyarat di pasaran yang lemah

Arah pengoptimuman strategi

  1. Memperkenalkan ATR untuk menyesuaikan stop loss secara dinamik untuk lebih beradaptasi dengan turun naik pasaran
  2. Menambah penapis kekuatan trend untuk mengurangkan isyarat palsu di pasaran goyah
  3. Optimumkan tetapan kitaran VWAP, pertimbangkan kombinasi VWAP pelbagai kitaran
  4. Memperkenalkan mekanisme pengesahan kuantiti untuk meningkatkan kebolehpercayaan isyarat penembusan
  5. Pertimbangkan untuk menambah penapis masa untuk mengelakkan dagangan pada masa kecairan rendah
  6. Mekanisme saiz kedudukan yang menyesuaikan diri secara dinamik, menyesuaikan saiz kedudukan mengikut keadaan pasaran

ringkaskan

Strategi ini membina sistem perdagangan yang agak lengkap dengan menggunakan tiga petunjuk teknikal klasik VWAP, MACD dan RSI secara komprehensif. Strategi ini memberi tumpuan kepada kebolehpercayaan isyarat dan pengurusan risiko dalam reka bentuknya, meningkatkan kualiti perdagangan melalui cross-verifikasi pelbagai petunjuk. Walaupun terdapat beberapa aspek yang perlu dioptimumkan, kerangka keseluruhan adalah munasabah dan mempunyai skalabiliti yang baik.

Kod 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")