Strategi perdagangan kuantitatif MACD ganda

Penulis:ChaoZhang, Tanggal: 2023-11-13 18:04:07
Tag:

img

Gambaran umum

Strategi ini menggunakan kombinasi sistem EMA ganda dan indikator RSI untuk menentukan tren pasar saat menghasilkan sinyal perdagangan. Ini termasuk dalam strategi trend berikut. Strategi sederhana dan mudah digunakan ini berlaku untuk berbagai indeks utama dan cryptocurrency.

Logika Strategi

Strategi ini menggunakan dua MACD dengan pengaturan parameter yang berbeda sebagai indikator perdagangan utama. MACD pertama mengadopsi EMA pendek 10 periode, EMA panjang 22 periode, dan garis sinyal 9 periode. MACD kedua menggunakan EMA pendek 21 periode, EMA panjang 45 periode, dan garis sinyal 20 periode.

MACD pertama menghasilkan sinyal beli ketika garis DIFF melintasi di atas nol, dan sinyal jual ketika melintasi di bawah nol.

Selain itu, strategi ini menggunakan rumus momentum harga untuk menentukan tren. penutupan terbaru + tinggi dibagi dengan penutupan sebelumnya + tinggi di atas 1 menunjukkan tren naik dan menghasilkan sinyal beli, dan sebaliknya untuk sinyal jual.

Akhirnya, garis K RSI Stoch di atas 20 membantu mengkonfirmasi sinyal jual.

Analisis Keuntungan

Mekanisme EMA ganda dalam strategi ini dapat secara efektif menyaring breakout palsu. Rumus momentum tambahan juga menghindari sinyal yang salah yang disebabkan oleh volatilitas. Penggabungan Stoch RSI menghindari mengejar puncak dengan mengeluarkan sinyal jual di sekitar area overbought.

Strategi ini hanya menggunakan kombinasi sederhana dari beberapa indikator umum tanpa hubungan logika yang terlalu kompleks, yang membuatnya sangat mudah dipahami dan dimodifikasi.

Menurut hasil backtest, strategi ini telah mencapai pengembalian kumulatif yang layak dan kontrol penarikan maksimum di berbagai produk seperti indeks saham dan cryptocurrency.

Analisis Risiko

Risiko utama dari strategi ini terletak pada penggunaan rata-rata bergerak untuk penentuan, yang dapat dengan mudah menyebabkan whipsaws dan kerugian ketika harga berfluktuasi dengan ganas.

Efektivitas Stoch RSI dalam mendeteksi tingkat overbought/oversold tidak ideal.

Jika harga jatuh tajam tapi MACD belum membentuk salib kematian, strategi ini akan mempertahankan posisi yang kalah dan terus mengambil kerugian.

Arahan Optimasi

Pertimbangkan untuk menambahkan stop loss untuk mengendalikan kerugian posisi tunggal, misalnya stop loss ATR atau stop loss berdasarkan moving average yang lebih rendah.

Tambahkan indikator lain untuk konfirmasi, seperti menggabungkan KD atau Bollinger Bands dengan Stoch RSI untuk deteksi overbought/oversold yang lebih andal.

Masukkan analisis volume, seperti meningkatkan stop loss ketika volume penjualan yang signifikan muncul, atau menghindari posisi baru ketika volume lemah.

Uji kombinasi parameter yang berbeda dan optimalkan periode MACD. Juga uji menambahkan MACD dari kerangka waktu lain untuk konfirmasi ganda.

Kesimpulan

Strategi perdagangan kuantitatif MACD ganda memiliki logika yang sederhana dan jelas, menggunakan crossover EMA ganda untuk menentukan tren, dilengkapi dengan indikator momentum untuk menghindari sinyal yang salah. Ini dapat menyaring peluang perdagangan probabilitas tinggi. Pengaturan parameter universal dan kinerja yang solid menjadikannya strategi dasar yang baik untuk dibangun. Langkah selanjutnya adalah untuk meningkatkan stabilitas dan profitabilitasnya dengan meningkatkan mekanisme stop loss, menambahkan analisis volume, menggabungkan indikator lain, dll.


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

//@version=2
strategy("Multiple MACD RSI simple strategy", overlay=true, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)

fastLength = input(10)
slowlength = input(22)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = sma(MACD, MACDLength)
delta = MACD - aMACD

fastLength2 = input(21)
slowlength2 = input(45)
MACDLength2 = input(20)

MACD2 = ema(open, fastLength2) - ema(open, slowlength2)
aMACD2 = sma(MACD2, MACDLength2)
delta2 = MACD2 - aMACD2


uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])

smoothK = input(2, minval=1, title="K smoothing Stoch RSI")
smoothD = input(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = input(7, minval=1, title="RSI Length")
lengthStoch = input(8, minval=1, title="Stochastic Length")
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
h0 = hline(80)
h1 = hline(20)

yearin = input(2018, title="Year to start backtesting from")

if (delta > 0) and (year>=yearin) and (delta2 > 0) and (uptrend > 1)
    strategy.entry("buy", strategy.long, comment="buy")

if (delta < 0) and (year>=yearin) and (delta2 < 0) and (downtrend < 1) and (d > 20)
    strategy.entry("sell", strategy.short, comment="sell")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Lebih banyak