Strategi MACD Tanpa Tren

Penulis:ChaoZhang, Tanggal: 2023-10-30 17:08:16
Tag:

img

Gambaran umum

Strategi ini menggunakan metode menghilangkan tren harga saham untuk mengamati indikator MACD dengan lebih jelas. Dengan menghitung garis cepat DEMA dan garis lambat DEMA, garis MACD dan garis sinyal berasal. Sinyal perdagangan dihasilkan dengan menyeberang antara garis MACD dan garis sinyal. Strategi ini juga menggabungkan filter kondisi tanggal dan bulan dan logika stop loss untuk membentuk sistem yang lebih lengkap.

Logika Strategi

Pertama, EMA harga dihitung untuk menghilangkan tren harga dan mendapatkan EMA terdetensi. Kemudian garis cepat DEMA, garis lambat DEMA dan garis MACD dihitung berdasarkan EMA. DEMA garis cepat dihitung dengan: pertama menghitung EMA1 dari garis cepat, kemudian menghitung EMA2 dari EMA1, dan akhirnya menghitung DEMA=(2*EMA1-EMA2). DEMA garis lambat dan garis sinyal dihitung dengan cara yang sama. Setelah mendapatkan garis MACD (DEMA garis cepat - DEMA garis lambat) dan garis sinyal, sinyal beli dihasilkan ketika garis MACD melintasi di atas garis sinyal, dan sinyal jual dihasilkan ketika garis MACD melintasi garis sinyal di bawah. Akhirnya, gabungkan filter tanggal dan bulan, dan atur stop loss logic.

Logika inti dari strategi ini adalah:

  1. Menghilangkan tren harga untuk melihat indikator MACD lebih jelas.

  2. Menghitung garis cepat DEMA, garis lambat DEMA untuk memperoleh garis MACD dan garis sinyal.

  3. Garis MACD dan penyeberangan garis sinyal menghasilkan sinyal perdagangan.

  4. Tambahkan filter tanggal dan bulan.

  5. Atur logika stop loss.

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menghilangkan tren harga dapat mengungkapkan situasi silang MACD dengan lebih jelas tanpa disesatkan oleh tren.

  2. Menggunakan algoritma DEMA untuk menghitung MACD menyaring keluar beberapa kebisingan dan membuat sinyal lebih jelas.

  3. Menggabungkan filter tanggal dan bulan dapat mengurangi transaksi yang tidak perlu.

  4. Logika stop loss dapat mengurangi kerugian dalam waktu dan mengendalikan risiko.

  5. Menggunakan crossover untuk menghasilkan sinyal mengurangi perdagangan yang salah.

  6. Secara keseluruhan, menggabungkan penghapusan tren, perhitungan DEMA dan filter kondisi, strategi ini dapat menghasilkan sinyal perdagangan yang relatif jelas dan dapat diandalkan.

Analisis Risiko

Beberapa risiko dari strategi ini perlu diperhatikan:

  1. Setelah menghilangkan tren, sinyal crossover MACD dapat meningkat, yang membutuhkan pengujian langsung untuk memverifikasi kelayakan.

  2. Meskipun algoritma DEMA menyaring beberapa kebisingan, masih bisa ada banyak sinyal palsu dalam perhitungan indikator.

  3. Kondisi filter tanggal dan bulan mungkin terlalu kaku, kehilangan beberapa peluang perdagangan.

  4. Posisi stop loss harus diatur dengan wajar, terlalu longgar akan meningkatkan risiko, terlalu ketat akan sering menghentikan kerugian.

  5. Strategi ini terutama bergantung pada MACD, jika pasar tidak cocok untuk indikator ini, kinerja dapat terpengaruh.

  6. Masih ada ruang besar untuk optimasi parameter, yang membutuhkan pengujian lebih lanjut melalui backtest dan perdagangan langsung.

Solusi:

  1. Tambahkan konfirmasi indikator lain untuk menghindari sinyal palsu.

  2. Mengoptimalkan kondisi filter tanggal dengan tepat.

  3. Uji dan optimalkan titik stop loss dengan hati-hati.

  4. Tambahkan mekanisme penilaian tren untuk menghindari perdagangan melawan tren.

  5. Komprehensif backtest dan optimasi parameter untuk meningkatkan stabilitas.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Uji rata-rata pergerakan harga yang berbeda untuk menemukan alternatif yang lebih baik untuk EMA.

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

  3. Tambahkan indikator tambahan seperti volume untuk menghindari sinyal palsu.

  4. Mengoptimalkan strategi stop loss, mengatur bergerak yang wajar atau perintah stop loss.

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

  6. Tambahkan penilaian tren untuk menghindari perdagangan melawan tren.

  7. Optimasi parameter yang komprehensif untuk meningkatkan stabilitas.

  8. Backtest pada periode waktu yang lebih lama untuk memeriksa kinerja jangka panjang.

  9. Perdagangan langsung untuk memverifikasi dan memodifikasi lebih lanjut parameter berdasarkan perdagangan nyata.

Ringkasan

Singkatnya, strategi ini menggunakan gagasan menghilangkan tren dan menghitung DEMA MACD dikombinasikan dengan filter tanggal untuk menghasilkan sinyal perdagangan, yang merupakan ide strategi yang sederhana namun layak. Keuntungannya yang terbesar adalah mengungkapkan pola MACD dengan jelas tanpa terpengaruh oleh tren harga. Namun, masih ada beberapa risiko dari strategi ini yang membutuhkan optimasi parameter dan langkah-langkah pengendalian risiko untuk diterapkan untuk aplikasi praktis. Ada juga ruang besar untuk optimasi, dan dengan verifikasi dan optimasi yang cukup, strategi ini dapat menjadi sistem perdagangan jangka pendek yang stabil dan andal.


/*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")





Lebih banyak