Strategi perdagangan MACD DEMA

Penulis:ChaoZhang, Tanggal: 2023-09-19 16:10:19
Tag:

Gambaran umum

Strategi ini menggabungkan indikator dual-rail MACD dan DEMA untuk menghasilkan sinyal perdagangan dari crossover.

Prinsip Strategi

  1. Menghitung garis cepat DEMAfast sebagai nilai DEMA dari harga dengan panjang periode fastmacd.

  2. Menghitung garis lambat DEMAslow sebagai nilai harga DEMA dengan panjang periode slowmacd.

  3. Garis MACD adalah perbedaan antara garis cepat dan lambat: DEMAfast - DEMAAslow.

  4. Garis sinyal adalah nilai DEMA dari garis MACD dengan sinyal periode macd.

  5. Crossover antara garis MACD dan sinyal menghasilkan sinyal perdagangan: panjang pada golden cross, pendek pada death cross.

  6. Tambahkan filter tanggal untuk hanya menghasilkan sinyal dalam kisaran tanggal yang ditentukan.

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menggabungkan MACD dan DEMA melengkapi indikator.

  2. Desain rel ganda DEMA mengurangi keterlambatan dan kebisingan indikator MACD.

  3. Sinyal crossover MACD mudah untuk ditafsirkan, bersih dan sederhana.

  4. Pengaturan filter tanggal yang fleksibel memenuhi kebutuhan strategi yang berbeda.

  5. Parameter MACD dapat dioptimalkan untuk fleksibilitas dalam kondisi pasar.

Analisis Risiko

Risiko utama dari strategi ini:

  1. MACD berjuang sebagai indikator tren di pasar sisi bergolak.

  2. Crossover dapat menghasilkan sinyal palsu, membutuhkan penyaringan yang efektif.

  3. Strategi stop loss tidak kuat, rentan terhadap stop oversized.

  4. Optimasi parameter tidak cukup komprehensif, perbedaan kinerja besar di antara produk.

  5. Filter tanggal terlalu kaku, perlu penyesuaian dinamis.

Solusi:

  1. Tambahkan indikator momentum untuk menghindari pasar sampingan.

  2. Tambahkan kondisi harga untuk menyaring salib palsu.

  3. Tetapkan stop loss awal dan trailing yang wajar.

  4. Parameter uji lintas produk, optimasi dinamis.

  5. Sesuaikan tanggal filter berdasarkan kondisi real-time.

Arahan Optimasi

Beberapa perbaikan potensial untuk strategi:

  1. Tambahkan filter volume untuk sinyal silang.

  2. Mengoptimalkan kombinasi parameter MACD di berbagai produk.

  3. Tambahkan strategi stop seperti fixed atau trailing stop loss.

  4. Mengatur stop loss secara dinamis berdasarkan volatilitas pasar.

  5. Lacak kekuatan tren untuk ukuran posisi.

Ringkasan

Strategi MACD DEMA menggabungkan kekuatan dari kedua indikator, menggunakan crossover untuk menangkap tren. Tetapi MACD secara inheren tertinggal, berhati-hatilah dengan sinyal palsu. Juga mengoptimalkan stop untuk menghindari likuidasi yang tidak wajar. Untuk perdagangan langsung, masuk hati-hati berdasarkan parameter yang dioptimalkan dan perbaikan terus-menerus dianjurkan.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(" MACD DEMA STRATEGY ", overlay=true)

source=close
price=source



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(close,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = ema(close,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 = SignalLine-MACDLine


colorbar= MACDSignal>0?green:red




yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)







if ( crossover(MACDLine,SignalLine) ) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if (  crossunder(MACDLine,SignalLine) ) 

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


Lebih banyak