Strategi perdagangan berdasarkan sinyal crossover MACD dan RSI

Penulis:ChaoZhang, Tanggal: 2023-12-18 17:19:03
Tag:

img

Gambaran umum

Strategi ini menggunakan indikator MACD untuk menilai tren pasar dan mengidentifikasi titik perdagangan potensial, sementara menggabungkan indikator RSI untuk mengkonfirmasi kondisi overbought/oversold. Sinyal perdagangan hanya dihasilkan ketika MACD memberikan sinyal beli/jual dan RSI secara bersamaan mengkonfirmasi bahwa pasar oversold/overbought. Hal ini dapat secara efektif menyaring sinyal palsu dan meningkatkan stabilitas strategi.

Prinsip Strategi

Perhitungan Indikator MACD

Indikator MACD terdiri dari perbedaan antara EMA cepat dan EMA lambat, mencerminkan perbedaan antara tren harga rata-rata jangka pendek dan jangka panjang.

Ketika garis cepat melintasi di atas garis lambat, itu adalah sinyal salib emas yang menunjukkan tren naik. Ketika garis cepat melintasi di bawah garis lambat, itu adalah sinyal salib kematian yang menunjukkan tren turun.

Perhitungan Indikator RSI

Indikator RSI mencerminkan kondisi overbought/oversold di pasar.

RSI di bawah 30 menunjukkan aset itu terjual terlalu banyak karena pembeli lebih cepat daripada penjual untuk jangka waktu yang lama.

RSI di atas 70 menunjukkan aset itu terlalu banyak karena tekanan jual melampaui tekanan pembelian selama garis waktu yang dilacak.

Pembacaan di bawah 30 menunjukkan kondisi oversold sementara pembacaan di atas 70 menunjukkan kondisi overbought.

Sinyal Strategi

Strategi ini menggunakan RSI untuk menyaring sinyal, hanya menghasilkan sinyal perdagangan yang sebenarnya ketika MACD memberikan sinyal dan RSI secara bersamaan mengkonfirmasi ekstrim overbought / oversold.

Secara khusus, ketika MACD menghasilkan golden cross, jika RSI <=34 pada saat yang sama, mengkonfirmasi pasar oversold, sinyal beli dihasilkan.

Mekanisme konfirmasi ganda ini dapat menyaring banyak sinyal perdagangan yang tidak dapat diandalkan, sehingga meningkatkan stabilitas dan keandalan strategi.

Analisis Keuntungan

Penyaringan Indikator Ganda Meningkatkan Keandalan Sinyal

Strategi ini menggabungkan indikator MACD dan RSI untuk konfirmasi ganda, yang secara efektif dapat mengurangi gangguan dari sinyal palsu dan menyaring beberapa sinyal perdagangan yang tidak dapat diandalkan, sehingga meningkatkan keandalan dan stabilitas sinyal.

Penghakiman Tren yang Jelas

Sebagai indikator harga dan volume, MACD dapat dengan jelas menentukan tren naik dan turun pasar. Dikombinasikan dengan penilaian overbought/oversold RSI, ia dapat dengan akurat menangkap titik pembalikan penting di pasar. Sinyal masuk dan keluar jelas.

Ruang Optimasi Parameter Besar

Parameter dari komponen MACD dan RSI strategi ini dapat dioptimalkan dan disesuaikan agar sesuai dengan siklus dan instrumen perdagangan yang berbeda.

Mudah Dimengerti dan Terapkan

MACD, RSI dan indikator lain yang digunakan dalam strategi ini adalah indikator teknis yang sangat khas dan umum digunakan yang mudah dipahami.

Analisis Risiko

Mungkin Melewatkan Beberapa Peluang Perdagangan

Strategi ini mengadopsi pendekatan konfirmasi ganda yang relatif konservatif yang, dalam menyaring sinyal palsu, dapat menyebabkan beberapa peluang perdagangan yang hilang yang bisa menghasilkan keuntungan berdasarkan satu sinyal indikator.

  • Solusi: Luangkan rentang ambang RSI dengan tepat untuk mengurangi kekakuan konfirmasi dan memungkinkan strategi untuk menangkap lebih banyak peluang perdagangan.

Kejadian kerugian selama pergerakan pasar yang ekstrim

Dalam hal volatilitas pasar yang ekstrim, indikator MACD dan RSI dapat terlambat dalam membuat penilaian, yang mengarah pada sinyal perdagangan yang salah yang dihasilkan oleh strategi dan kerugian yang terjadi.

  • Solusi: Mengintegrasikan mekanisme stop loss untuk mencegah kerugian yang berlebihan dalam perdagangan tunggal.

Kinerja sangat tergantung pada pengaturan parameter

Kinerja strategi ini sangat tergantung pada kualitas pengaturan parameter MACD, RSI dan lainnya. Konfigurasi parameter yang salah dapat dengan mudah menyebabkan sinyal perdagangan terbalik.

  • Solusi: Optimalkan kombinasi parameter melalui backtesting untuk menemukan pengaturan parameter yang optimal.

Arahan Optimasi

Mengintegrasikan Stop Loss Mechanisms Untuk Mengontrol Risiko

Aturan stop loss yang didasarkan pada harga atau indikator dapat diterapkan untuk keluar dari posisi dengan ambang kerugian yang diizinkan yang telah ditentukan sebelumnya, secara efektif membatasi kerugian pada perdagangan individu.

Sesuaikan Parameter untuk Sesuai dengan Karakteristik Pasar

Optimasi terus-menerus dari parameter kunci seperti periode garis cepat/lambat MACD dan ambang overbought/oversold RSI untuk menyelaraskan dengan struktur siklus yang berkembang dan keunikan instrumen perdagangan yang berbeda.

Uji Atas Aset Untuk Menemukan Yang Paling Cocok

Melakukan backtest di indeks ekuitas, cryptocurrency, pasangan forex, komoditas dan aset lainnya untuk menemukan pasar mana yang paling sesuai dengan karakteristik strategi.

Masukkan Indikator Tambahan untuk Konfirmasi Multidimensional

Indikator seperti Stochastics, OBV, CCI dll dapat ditambahkan di atas komponen MACD dan RSI untuk akurasi konfirmasi yang lebih besar melalui pendekatan penyaringan sinyal multidimensi.

Kesimpulan

Strategi ini menentukan tren pasar dan sinyal perdagangan berdasarkan indikator MACD, sementara RSI mengkonfirmasi kondisi overbought/oversold untuk menyaring sinyal palsu.

Kinerja dapat ditingkatkan lebih lanjut melalui teknik pengoptimalan, stop loss, konfirmasi multiprong dll. Dengan logika sederhana dan stabilitas yang baik, ini berfungsi sebagai strategi awal yang baik bagi pemula untuk berlatih dan mengoptimalkan.


/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(default_qty_type = strategy.percent_of_equity, default_qty_value = 25, pyramiding = 10, title="MACD crossover while RSI Oversold/Overbought", overlay=true, shorttitle="MACD Cross + RSI Oversold Overbought", initial_capital = 1000)

//MACD Settings
fastMA = input(title="Fast moving average",  defval = 12, minval = 7) //7 16
slowMA = input(title="Slow moving average",  defval = 26, minval = 7) //24 26 
signalLength = input(9,minval=1) //9 6

//RSI settings
RSIOverSold = input(34 ,minval=1) //26
RSIOverBought = input(75 ,minval=1) //77
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought


[currMacd,_,_] = macd(close[0], fastMA, slowMA, signalLength)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, signalLength)
signal = ema(currMacd, signalLength)

crossoverBear = cross(currMacd, signal) and currMacd < signal ? avg(currMacd, signal) : na
crossoverBull = cross(currMacd, signal) and currMacd > signal ? avg(currMacd, signal) : na

plotshape(crossoverBear and wasOverbought , title='MACD-BEAR', style=shape.triangledown, text='overbought', location=location.abovebar, color=orange, textcolor=orange, size=size.tiny) 
plotshape(crossoverBull and wasOversold, title='MACD-BULL', style=shape.triangleup, text='oversold', location=location.belowbar, color=lime, textcolor=lime, size=size.tiny) 

// Configure backtest start date with inputs
startDate = input(title="Start Date",
     defval=8, minval=1, maxval=31)
startMonth = input(title="Start Month",
     defval=3, minval=1, maxval=12)
startYear = input(title="Start Year",
     defval=2021, minval=1800, maxval=2100)

afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))
     
if (afterStartDate==true)
    posSize = abs(strategy.position_size)
    strategy.order("long", strategy.long, when = crossoverBull and wasOversold) 
    strategy.order("long", long=false, qty=posSize/3, when = crossoverBear and wasOverbought) 


Lebih banyak