Strategi MACD Penangkal Tren


Tanggal Pembuatan: 2023-10-30 17:08:16 Akhirnya memodifikasi: 2023-10-30 17:08:16
menyalin: 1 Jumlah klik: 641
1
fokus pada
1617
Pengikut

Strategi MACD Penangkal Tren

Ringkasan

Strategi ini menggunakan tendensi untuk menghilangkan harga saham, sehingga lebih jelas melihat bentuk indikator MACD. Dengan menghitung garis cepat DEMA dan garis lambat DEMA, kemudian mendapatkan garis lurus dan sinyal MACD, menilai persimpangan mereka untuk menghasilkan sinyal perdagangan. Strategi ini juga menggabungkan filter kondisi bulan, tanggal, dan stop loss logika posisi kosong, untuk membentuk sistem strategi yang lebih lengkap.

Prinsip Strategi

Pertama, menghitung harga EMA, untuk menghilangkan harga tren, mendapatkan harga setelah trend EMA. Kemudian berdasarkan EMA masing-masing menghitung DEMA garis cepat, DEMA garis lambat dan MACD garis lurus. Di antaranya, cara menghitung DEMA garis cepat adalah: pertama menghitung EMA1 garis cepat, kemudian menghitung EMA2 EMA1 lalu menghitung DEMA = 2*EMA1-EMA2)。 DEMA garis lambat dan garis sinyal dihitung dengan cara yang sama。 Setelah mendapatkan MACD garis lurus ((DEMA garis cepat - DEMA garis lambat) dan garis sinyal, jika MACD garis lurus melewati garis sinyal, menghasilkan sinyal beli; jika MACD garis lurus melewati garis sinyal di bawah garis lurus, menghasilkan sinyal jual。 Akhirnya, filter sinyal dengan syarat bulan, tanggal, dan atur logika stop loss。

Logika inti dari strategi ini adalah:

  1. Menghilangkan tren harga, melihat lebih jelas bentuk indikator MACD

  2. Hitung DEMA jalur cepat, jalur lambat, dan dapatkan MACD jalur lurus dan jalur sinyal

  3. Garis lurus MACD dan garis sinyal bersilang menghasilkan sinyal perdagangan

  4. Filter syarat tanggal dan bulan

  5. Setting Stop Loss Logic

Analisis Keunggulan

Keuntungan utama dari strategi ini adalah:

  1. Menghilangkan tren harga, dapat lebih jelas melihat persimpangan indikator MACD, dan menghindari tertipu oleh tren.

  2. Dengan menggunakan algoritma DEMA untuk menghitung indikator MACD, beberapa kebisingan dapat disaring sehingga sinyal lebih jelas.

  3. Filter yang digabungkan dengan tanggal dan bulan dapat mengurangi transaksi yang tidak perlu.

  4. Setting Stop Loss Logic, dapat menghentikan kerugian tepat waktu, mengendalikan risiko.

  5. Penggunaan sinyal cross-generator dapat mengurangi kesalahan transaksi.

  6. Secara keseluruhan, strategi ini dikombinasikan dengan eliminasi tren, perhitungan DEMA, dan penyaringan kondisi, yang dapat menghasilkan sinyal perdagangan yang lebih jelas dan lebih dapat diandalkan.

Analisis risiko

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. Setelah eliminasi tren, MACD crossover mungkin akan meningkat, yang perlu divalidasi secara real time.

  2. Meskipun algoritma DEMA telah memfilter sebagian dari kebisingan, penghitungan indikator masih dapat menunjukkan lebih banyak sinyal palsu.

  3. Kondisi penyaringan tanggal dan bulan mungkin terlalu kaku, sehingga Anda kehilangan beberapa peluang perdagangan.

  4. Penetapan posisi stop loss perlu dipertimbangkan, terlalu longgar akan meningkatkan risiko, terlalu ketat akan sering stop loss.

  5. Strategi ini didasarkan pada indikator MACD, yang dapat dipengaruhi oleh ketidakcocokan pasar.

  6. Ada banyak ruang untuk mengoptimalkan parameter strategi, dan perlu dilakukan pengujian lebih lanjut melalui pengujian ulang dan hard disk.

Tanggapan:

  1. Menambahkan konfirmasi indikator lainnya untuk menghindari sinyal palsu.

  2. Optimalkan kondisi penyaringan tanggal, dan relaksasi sesuai.

  3. Tes dan optimalisasi titik-titik stop loss.

  4. Bergabung dengan mekanisme penilaian tren untuk menghindari perdagangan berlawanan arah.

  5. Pengukuran dan pengoptimalan parameter secara menyeluruh untuk meningkatkan stabilitas.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Uji rata-rata harga yang berbeda untuk mencari jenis garis EMA alternatif yang lebih cocok.

  2. Cobalah kombinasi parameter yang berbeda untuk mengoptimalkan panjang jalur cepat, lambat dan sinyal MACD.

  3. Meningkatkan indikator penilaian tambahan seperti indikator energi, menghindari sinyal palsu.

  4. Mengoptimalkan strategi stop loss, mengatur stop loss bergerak yang masuk akal atau stop loss tunggal.

  5. Optimalkan kondisi penyaringan tanggal dan bulan untuk membuatnya lebih fleksibel.

  6. Menambahkan penilaian tren, menghindari operasi berlawanan arah.

  7. Optimalisasi parameter secara menyeluruh untuk meningkatkan stabilitas strategi.

  8. Melakukan pengujian kembali pada periode waktu yang lebih lama untuk memeriksa efek jangka panjang dari strategi tersebut.

  9. Melakukan verifikasi di lapangan, dan memodifikasi parameter kebijakan lebih lanjut sesuai dengan situasi di lapangan.

Meringkaskan

Secara keseluruhan, strategi ini menggunakan ide eliminasi tren, menghitung indikator MACD dalam bentuk DEMA, dan menggabungkan penyaringan tanggal untuk menghasilkan sinyal perdagangan. Ini adalah strategi yang sederhana namun dapat diterapkan. Keuntungan terbesarnya adalah dapat melihat bentuk MACD dengan jelas dan menghindari pengaruh tren harga.

Kode Sumber Strategi
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "Trendless MACD  Strategy",shorttitle="MACD-T Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.01,initial_capital=100000)



maperiod=input(9)
ema=ema(close,maperiod)


fastmacd = input(12,title='MACD Fast  Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')

macdslowline1 = ema(ema,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = ema(ema,fastmacd)
macdfastline2 = ema(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine1 = ema(MACDLine, signalmacd)
SignalLine2 = ema(SignalLine1, signalmacd)
SignalLine = ((2 * SignalLine1) - SignalLine2 )


MACDSignal = MACDLine-SignalLine


colorbar= MACDSignal>0?green:red

plot(MACDSignal,color=colorbar,style=columns,title='Histogram',histbase=0)
p1 = plot(MACDLine,color=blue,title='MACDLine')
p2=plot(SignalLine,color=red,title="SignalLine")
fill(p1,p2,color=blue)


longCond =  crossover(MACDLine,SignalLine) 

shortCond =  crossunder(MACDLine,SignalLine) 




monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)

yearfrom= input(2018)
yearuntil=input(2021)

if (  longCond   ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND",  comment="LONG")
    
else
    strategy.cancel(id="LONG")
    



if ( shortCond  ) 

    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT")
else
    strategy.cancel(id="SHORT")