Sumber dimuat naik... memuat...

VWAP-MACD-RSI Strategi Perdagangan Kuantitatif Berbilang Faktor

Penulis:ChaoZhang, Tarikh: 2024-11-27 16:11:00
Tag:VWAPMACDRSITPSL

img

Ringkasan

Ini adalah strategi dagangan kuantitatif berdasarkan tiga penunjuk teknikal: VWAP, MACD, dan RSI. Strategi ini mengenal pasti peluang dagangan dengan menggabungkan isyarat dari Harga Purata Berat Volume (VWAP), Divergensi Convergensi Purata Bergerak (MACD), dan Indeks Kekuatan Relatif (RSI).

Prinsip Strategi

Logik teras berdasarkan analisis komprehensif tiga penunjuk utama:

  1. VWAP berfungsi sebagai garis rujukan trend utama, dengan persilangan harga menunjukkan perubahan trend yang berpotensi
  2. Histogram MACD mengesahkan kekuatan trend dan arah, dengan nilai positif menunjukkan trend menaik dan nilai negatif menunjukkan trend menurun
  3. RSI mengenal pasti keadaan pasaran yang terlalu banyak dibeli atau terlalu banyak dijual untuk mengelakkan memasuki tahap yang melampau

Syarat pembelian memerlukan:

  • Harga melintasi di atas VWAP
  • Histogram MACD positif
  • RSI di bawah tahap overbought

Syarat jualan memerlukan:

  • Harga menyeberang di bawah VWAP
  • Histogram MACD negatif
  • RSI di atas paras oversold

Kelebihan Strategi

  1. Penanda teknikal berbilang penanda silang meningkatkan kebolehpercayaan isyarat
  2. VWAP menggabungkan faktor jumlah untuk analisis kedalaman pasaran yang lebih baik
  3. RSI menapis keadaan pasaran yang melampau, mengurangkan risiko pecah palsu
  4. Keuntungan berasaskan peratusan dan stop loss menyesuaikan diri dengan julat harga yang berbeza
  5. Ukuran kedudukan berdasarkan ekuiti akaun membolehkan pengurusan kedudukan dinamik
  6. Logik strategi yang jelas, mudah difahami dan dikekalkan

Risiko Strategi

  1. Pasaran yang bergelombang boleh menghasilkan perdagangan yang kerap, meningkatkan kos urus niaga
  2. Pelbagai penunjuk boleh menyebabkan isyarat tertunda, mempengaruhi masa kemasukan
  3. Peratusan tetap mengambil keuntungan dan berhenti kerugian mungkin tidak sesuai dengan semua keadaan pasaran
  4. Kekurangan pertimbangan turun naik boleh meningkatkan risiko semasa tempoh turun naik yang tinggi
  5. Kekurangan penapisan kekuatan trend boleh menghasilkan isyarat berlebihan dalam trend lemah

Arahan Pengoptimuman Strategi

  1. Memperkenalkan ATR untuk pelarasan dinamik tahap mengambil keuntungan dan berhenti kerugian
  2. Tambah penapis kekuatan trend untuk mengurangkan isyarat palsu di pasaran bergolak
  3. Mengoptimumkan tetapan tempoh VWAP, mempertimbangkan gabungan beberapa tempoh VWAP
  4. Melaksanakan mekanisme pengesahan jumlah untuk meningkatkan kebolehpercayaan isyarat pecah
  5. Pertimbangkan untuk menambah penapis masa untuk mengelakkan perdagangan semasa tempoh kecairan yang rendah
  6. Melaksanakan mekanisme saiz kedudukan dinamik berdasarkan keadaan pasaran

Ringkasan

Strategi ini membina sistem dagangan yang agak lengkap dengan menggabungkan tiga penunjuk teknikal klasik: VWAP, MACD, dan RSI. Reka bentuk menekankan kebolehpercayaan isyarat dan pengurusan risiko melalui penanda silang pelbagai penanda untuk meningkatkan kualiti dagangan. Walaupun terdapat aspek yang memerlukan pengoptimuman, kerangka keseluruhan adalah baik dan menawarkan skalabiliti yang baik.


/*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")

Berkaitan

Lebih lanjut