Strategi Trading Kuantitatif Menggabungkan RSI, MACD dan Support/Resistance

Penulis:ChaoZhang, Tanggal: 2024-01-05 16:24:58
Tag:

img

Gambaran umum

Strategi ini didasarkan pada indikator RSI dan MACD, dikombinasikan dengan level support/resistance untuk penilaian sinyal perdagangan. Namanya adalah Panda Sticking Out Tongue strategi. Strategi ini menggunakan indikator RSI untuk menentukan tingkat overbought/oversold, indikator MACD untuk menentukan tren bullish/bearish, dan menggambar level support/resistance berdasarkan harga tertinggi dan terendah selama 100 periode terakhir, menghasilkan sinyal beli di dekat support dan sinyal jual di dekat resistance.

Logika Strategi

Strategi ini terutama bergantung pada dua indikator - RSI dan MACD. Indikator RSI menilai status overbought/oversold, sementara indikator MACD menentukan status bullish/bearish trend. Pertama-tama menghitung nilai RSI 14 periode, dan menetapkan ambang overbought sebagai 70 dan ambang oversold sebagai 30. Kemudian menghitung nilai MACD berdasarkan garis cepat 12 hari, garis lambat 26 hari, dan garis sinyal 9 hari. RSI di bawah 30 dianggap oversold; RSI di atas 70 dianggap overbought.

Selain itu, strategi ini juga menghitung harga tertinggi dan terendah selama 100 periode terakhir sebagai level support/resistance. Ketika sinyal beli dipicu, harga harus dekat dengan level support, yaitu dalam 1% dari level support, untuk benar-benar mengeluarkan order beli.

Keuntungan dari Strategi

Strategi ini menggabungkan analisis tren dan deteksi tingkat overbought/oversold untuk menghindari sinyal palsu yang hanya bergantung pada satu indikator. Dengan memperkenalkan filter support/resistance, strategi ini dapat mengurangi perdagangan yang salah karena rebound di dekat tingkat S/R utama. Kombinasi MACD dan RSI dapat secara akurat mengidentifikasi pergerakan harga dan status OB/OS. Dibandingkan dengan strategi moving average sederhana, strategi ini dapat menangkap tren harga jangka panjang dengan lebih fleksibel.

Risiko dari Strategi

Risiko utama dari strategi ini meliputi:

  1. Hal ini mungkin kehilangan sebagian besar keuntungan dalam tren yang kuat, karena cenderung masuk setelah pembalikan selesai.

  2. Pengaturan parameter RSI dan MACD yang tidak tepat dapat menyebabkan sinyal yang salah.

  3. Logika deteksi S/R sederhana dapat melebih-lebihkan atau meremehkan zona S/R yang sebenarnya.

  4. Kurangnya mekanisme stop loss. Tidak mampu mengontrol kerugian secara efektif dalam kondisi pasar yang ekstrim.

Untuk mengatasi risiko ini, metode seperti MACD adaptif, penyesuaian parameter RSI yang dioptimalkan, identifikasi S / R yang ditingkatkan, pemodelan rezim pasar dll dapat digunakan untuk meningkatkan strategi.

Petunjuk untuk Peningkatan

Strategi dapat ditingkatkan dari dimensi berikut:

  1. Memperkenalkan mekanisme stop loss misalnya CANVAS stop loss

  2. Menggunakan MACD adaptif untuk pengaturan parameter dinamis

  3. Memperkenalkan pengakuan pola harga untuk identifikasi S/R yang lebih ilmiah

  4. Menggabungkan lebih banyak data untuk membangun logika deteksi keadaan pasar untuk menggunakan parameter yang berbeda secara adaptif

  5. Gunakan algoritma pembelajaran mesin untuk mengoptimalkan strategi dari ujung ke ujung

Melalui perbaikan ini, kita dapat lebih mengurangi penarikan dan meningkatkan stabilitas strategi.

Kesimpulan

Strategi ini mengintegrasikan indikator RSI dan MACD untuk menentukan status OB/OS, dan perdagangan di sekitar level support/resistance, mewakili pendekatan trend-following. Dengan menggabungkan filter support/resistance, risikonya berkurang. Keuntungannya terletak pada sinyal yang stabil dan risiko yang dapat dikendalikan yang cocok untuk kepemilikan jangka panjang.


/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI + MACD with Support and Resistance", shorttitle="RSI_MACD_SR", overlay=true)

// Input for RSI and MACD values
rsiOverbought = input(70, title="RSI Overbought Threshold")
rsiOversold = input(30, title="RSI Oversold Threshold")
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalSmoothing = input(9, title="MACD Signal Smoothing")

// Calculating RSI and MACD
rsiValue = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)

// Support and Resistance
support = ta.lowest(100)
resistance = ta.highest(100)

// Drawing support and resistance lines
// line.new(x1=bar_index[0], y1=support, x2=bar_index[-1], y2=support, color=color.green, width=1)
// line.new(x1=bar_index[0], y1=resistance, x2=bar_index[-1], y2=resistance, color=color.red, width=1)

// Buy Condition: If RSI is oversold and MACD line crosses above the signal line
// Additionally, check if price is near the support line
longCondition = ta.crossover(macdLine, signalLine) and rsiValue < rsiOversold and (close - support) < (close * 0.01)
strategy.entry("Long", strategy.long, when=longCondition, comment="Buy")

// Sell Condition: If RSI is overbought and MACD line crosses below the signal line
// Additionally, check if price is near the resistance line
shortCondition = ta.crossunder(macdLine, signalLine) and rsiValue > rsiOverbought and (resistance - close) < (close * 0.01)
strategy.entry("Short", strategy.short, when=shortCondition, comment="Sell")

// Plot values on the chart for visualization
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

Lebih banyak