Strategi perdagangan kuantitatif MACD ganda


Tanggal Pembuatan: 2023-11-13 18:04:07 Akhirnya memodifikasi: 2023-11-13 18:04:07
menyalin: 0 Jumlah klik: 1057
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif MACD ganda

Ringkasan

Strategi ini menggunakan kombinasi sistem EMA dua rata-rata dengan indikator RSI, untuk menilai tren pasar sekaligus membantu mengirim sinyal perdagangan, termasuk strategi pelacakan tren. Strategi ini sederhana dan mudah digunakan, berlaku untuk berbagai indeks saham besar dan mata uang digital, dan telah menghasilkan lebih dari 500% keuntungan kumulatif dalam pengembalian dari 2013 hingga saat ini.

Prinsip Strategi

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

Ketika MACD pertama melewati sumbu nol pada garis DIFF, sinyal beli dihasilkan, dan ketika sumbu nol di bawahnya melewati sumbu nol, sinyal jual dihasilkan. Sinyal yang dikeluarkan oleh garis DIFF MACD kedua berfungsi untuk mengkonfirmasi sinyal MACD pertama.

Pada saat yang sama, strategi ini juga menggunakan rumus untuk menghitung dinamika harga, dengan harga penutupan + harga tertinggi dari K-line terbaru dibagi dengan harga penutupan + harga tertinggi dari K-line sebelumnya, hasil yang lebih besar dari 1 menunjukkan tren naik saat ini, menghasilkan sinyal beli, sebaliknya menghasilkan sinyal jual.

Akhirnya, K-line Stoch RSI lebih besar dari 20 juga akan mengkonfirmasi sinyal jual.

Analisis Keunggulan

Strategi ini menggunakan kombinasi dua EMA untuk menilai tren, yang dapat secara efektif memfilter penipuan palsu. Rumus dinamis yang dibantu juga dapat menghindari sinyal yang salah karena getaran. Penggunaan indikator RSI Stoch, yang dapat mengirim sinyal jual di zona overbought dan oversold, untuk menghindari puncak.

Strategi ini hanya menggunakan kombinasi sederhana dari beberapa indikator umum, tanpa hubungan logis yang terlalu rumit, sangat mudah dipahami dan dimodifikasi. Pengaturan parameter juga sangat universal, tidak perlu dioptimalkan untuk varietas yang berbeda, dan sangat mudah beradaptasi.

Menurut hasil retrospeksi, strategi ini telah menghasilkan keuntungan akumulatif yang baik pada berbagai varietas seperti indeks saham, mata uang digital, dan lain-lain, dan pengendalian penarikan maksimum juga lebih ideal.

Analisis risiko

Risiko utama dari strategi ini adalah bahwa penilaian dilakukan dengan menggunakan garis rata-rata, yang rentan terhadap whipsaw ketika harga bergeser secara signifikan, sehingga menyebabkan kerugian. Selain itu, tidak ada stop loss yang ditetapkan untuk mengendalikan kerugian perorangan.

Stoch RSI tidak terlalu efektif dalam menentukan overbought dan oversold, sehingga mudah untuk melewatkan sinyal reversal.

Strategi ini juga akan terus kehilangan posisi jika terjadi penurunan harga yang drastis tetapi MACD belum terbentuk.

Arah optimasi

Anda dapat mempertimbangkan untuk mengatur stop loss untuk mengontrol kerugian tunggal. Misalnya, mengatur stop loss ATR atau stop loss pada rata-rata harga penutupan yang lebih rendah.

Indikator lain dapat ditambahkan untuk membantu, misalnya dengan mengkombinasikan indikator KD atau Bollinger Bands dengan Stoch RSI, untuk penilaian yang lebih andal tentang overbought dan oversold.

Analisis volume transaksi dapat ditingkatkan, misalnya dengan meningkatkan stop loss jika ada banyak penarikan, atau menghindari penambangan jika kapasitas tidak mencukupi.

Anda dapat menguji kombinasi parameter yang berbeda untuk mengoptimalkan parameter siklus MACD. Anda juga dapat menguji menambahkan MACD dengan periode yang berbeda untuk membentuk konfirmasi ganda.

Meringkaskan

Strategi perdagangan kuantitatif MACD ganda ini memiliki konsep yang sederhana dan jelas, menggunakan kombinasi penilaian tren EMA ganda, ditambah dengan indikator momentum untuk menghindari sinyal yang salah, untuk memilih waktu perdagangan yang lebih baik. Parameter strategi ini diatur secara universal, stabil dalam kinerja, dan dapat disesuaikan secara optimal sebagai strategi dasar. Langkah selanjutnya dapat meningkatkan stabilitas dan tingkat keuntungan strategi dengan cara memodifikasi stop loss, menambahkan analisis volume transaksi, dan menggabungkan indikator lainnya.

Kode Sumber Strategi
/*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)