Strategi dagangan kuantitatif MACD berganda


Tarikh penciptaan: 2023-11-13 18:04:07 Akhirnya diubah suai: 2023-11-13 18:04:07
Salin: 0 Bilangan klik: 1057
1
fokus pada
1617
Pengikut

Strategi dagangan kuantitatif MACD berganda

Gambaran keseluruhan

Strategi ini menggunakan kombinasi sistem EMA rata-rata dua dengan indikator RSI untuk membantu mengeluarkan isyarat perdagangan sambil menilai trend pasaran. Strategi ini mudah digunakan, berlaku untuk pelbagai indeks saham besar dan mata wang digital, dan telah memperoleh lebih daripada 500% pendapatan terkumpul dalam pengembalian dari 2013 hingga kini.

Prinsip Strategi

Strategi ini menggunakan MACD dengan dua set parameter yang berbeza sebagai penunjuk perdagangan utama. MACD pertama menggunakan garis purata pendek 10 kitaran dan garis purata panjang 22 kitaran, garis tambahan 9 kitaran. MACD kedua menggunakan garis purata pendek 21 kitaran dan garis panjang 45 kitaran, garis tambahan 20 kitaran.

Apabila garis DIFF MACD yang pertama melintasi sumbu sifar menghasilkan isyarat beli, dan apabila garis bawah melintasi sumbu sifar menghasilkan isyarat jual. Isyarat yang dikeluarkan oleh garis DIFF MACD kedua berfungsi untuk mengesahkan isyarat MACD pertama.

Pada masa yang sama, strategi ini juga menggunakan formula untuk mengira pergerakan harga, dengan harga penutupan + harga tertinggi K baris terkini yang dikurangkan dengan harga penutupan + harga tertinggi K baris sebelumnya, hasil yang lebih besar daripada 1 menunjukkan bahawa ia kini berada dalam trend menaik, menghasilkan isyarat beli, sebaliknya menghasilkan isyarat jual.

Akhirnya, garis K Stoch RSI lebih besar daripada 20 juga akan mengesahkan isyarat jual.

Analisis kelebihan

Strategi ini menggunakan kombinasi dua EMA untuk menilai trend, yang dapat menyaring penembusan palsu dengan berkesan. Rumus dinamik yang dibantu juga dapat mengelakkan isyarat yang salah akibat gegaran. Penggunaan indikator RSI Stoch, yang dapat menghantar isyarat jual di kawasan overbought dan oversold, untuk mengelakkan penembusan.

Strategi ini hanya menggunakan kombinasi mudah beberapa petunjuk biasa, tidak mempunyai hubungan logik yang terlalu rumit, sangat mudah difahami dan diubah suai. Tetapan parameter juga sangat universal, tidak perlu dioptimumkan untuk pelbagai varieti, dan sangat mudah disesuaikan.

Berdasarkan hasil pengkajian semula, strategi ini telah menghasilkan keuntungan terkumpul yang baik dalam pelbagai jenis seperti indeks saham, mata wang digital dan lain-lain, dan kawalan penarikan balik maksimum adalah ideal. Ia boleh digunakan sebagai strategi pemantauan trend yang sangat umum.

Analisis risiko

Risiko utama strategi ini adalah dengan menggunakan garis rata untuk membuat keputusan, mudah untuk whipsaw apabila harga bergolak-golak besar, menyebabkan kerugian. Di samping itu, tidak ada penutupan kerugian yang ditetapkan untuk mengawal kerugian tunggal.

Stoch RSI memberi kesan yang kurang baik terhadap keputusan overbought dan oversold, dan ia mudah terlepas isyarat pembalikan.

Strategi ini juga akan terus kehilangan kedudukan jika terdapat penurunan harga yang ketara tetapi MACD belum membentuk garpu mati.

Arah pengoptimuman

Anda boleh mempertimbangkan untuk menetapkan hentian untuk mengawal kerugian tunggal. Sebagai contoh, anda boleh menetapkan hentian ATR atau berhenti pada garis rata-rata yang lebih rendah pada harga penutupan.

Indikator lain boleh ditambah sebagai bantuan, seperti penyambungan KD atau Bollinger Bands dengan Stoch RSI, untuk keputusan yang lebih dipercayai mengenai overbought dan oversold.

Analisis jumlah transaksi boleh ditingkatkan, contohnya dengan meningkatkan stop loss apabila banyak stok dikurangkan, atau mengelakkan gudang apabila kapasiti tidak mencukupi.

Anda boleh menguji kombinasi parameter yang berbeza untuk mengoptimumkan parameter kitaran MACD. Anda juga boleh menguji penambahan MACD dengan kitaran yang berbeza untuk membentuk pengesahan berganda.

ringkaskan

Strategi perdagangan kuantitatif MACD ganda mempunyai konsep keseluruhan yang mudah dan jelas, menggunakan trend penilaian gabungan EMA ganda, ditambah dengan petunjuk momentum untuk mengelakkan isyarat yang salah, untuk memilih masa perdagangan yang lebih baik. Tetapan parameter strategi ini adalah umum, prestasi sebenar stabil, dan boleh disesuaikan secara optimum sebagai strategi asas. Langkah seterusnya dapat meningkatkan kestabilan dan kadar keuntungan strategi dengan meminda cara menghentikan kerugian, menambah analisis jumlah transaksi, menggabungkan indikator lain dan sebagainya.

Kod 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)