
Strategi ini menggunakan trend penghapusan harga saham, sehingga dapat melihat bentuk indikator MACD dengan lebih jelas. Dengan mengira garisan pantas DEMA dan garisan perlahan DEMA, dan kemudian mendapatkan garisan lurus dan isyarat MACD, menilai persimpangan mereka untuk menghasilkan isyarat perdagangan. Strategi ini juga menggabungkan penapisan syarat bulan, tarikh, dan logik pelepasan kerugian, untuk membentuk sistem strategi yang lebih lengkap.
Pertama, kira harga EMA, untuk menghapuskan trend harga, untuk mendapatkan harga EMA selepas trend dihapuskan. Kemudian berdasarkan EMA, kira DEMA garis cepat, DEMA garis lambat dan MACD garis lurus. Di antaranya, cara mengira DEMA garis cepat adalah: pertama kira EMA1 garis cepat, kemudian kira EMA2 EMA1 dan kemudian kira DEMA = 2*EMA1-EMA2) ◦ DEMA garis perlahan dan garis isyarat dikira sama ◦ Selepas mendapat garis lurus MACD ((DEMA garis pantas - DEMA garis perlahan) dan garis isyarat, jika MACD melintasi garis lurus, menghasilkan isyarat beli; jika MACD melintasi garis lurus, menghasilkan isyarat jual ◦ Akhirnya, memfilter isyarat dengan syarat bulan, tarikh, dan menetapkan logik stop-loss ◦
Logik utama strategi ini ialah:
Menghapuskan trend harga, lebih jelas melihat bentuk penunjuk MACD
Hitung garis laju DEMA, garis perlahan, dan dapatkan garis lurus MACD dan garis isyarat
Garis lurus MACD dan garis isyarat bersilang menghasilkan isyarat dagangan
Filter syarat tarikh dan bulan
Tetapkan logik stop loss
Kelebihan utama strategi ini ialah:
Menghapuskan trend harga, dapat melihat lebih jelas persilangan MACD, dan mengelakkan salah arah trend.
Menggunakan algoritma DEMA untuk mengira indikator MACD, anda boleh menapis beberapa bunyi sehingga isyarat lebih jelas.
Dengan menggunakan penapisan tarikh dan bulan, anda boleh mengurangkan jumlah transaksi yang tidak perlu.
Tetapkan logik hentikan kerugian, anda boleh menghentikan kerugian tepat pada masanya, mengawal risiko.
Penggunaan tanda silang dapat mengurangkan kesilapan transaksi.
Secara keseluruhannya, strategi ini menggabungkan penghapusan trend, pengiraan DEMA dan penapisan syarat untuk menghasilkan isyarat perdagangan yang lebih jelas dan lebih dipercayai.
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
Setelah trend dihapuskan, isyarat silang MACD mungkin meningkat dan perlu disahkan secara langsung.
Walaupun algoritma DEMA menapis sebahagian daripada bunyi, pengiraan indikator mungkin menunjukkan lebih banyak isyarat palsu.
Syarat penapisan tarikh dan bulan mungkin terlalu ketat, kehilangan beberapa peluang perdagangan.
Penetapan kedudukan hentian perlu dipertimbangkan sama ada ia munasabah, terlalu longgar akan meningkatkan risiko, terlalu ketat akan menyebabkan hentian yang kerap.
Strategi ini bergantung kepada indikator MACD, yang boleh menjejaskan kesannya jika pasaran tidak sesuai untuk menggunakan indikator tersebut.
Terdapat banyak ruang untuk mengoptimumkan parameter strategi, yang memerlukan ujian lanjut melalui pengesanan balik dan cakera keras.
Kaedah pencegahan:
Menambah pengesahan tanda lain untuk mengelakkan isyarat palsu.
Optimumkan syarat penapisan tarikh, dengan kelonggaran yang sesuai.
Ujian dan pengoptimuman titik hentian.
Bergabung dengan mekanisme penilaian trend untuk mengelakkan dagangan berlawanan arah.
Pengukuran dan pengoptimuman parameter secara menyeluruh untuk meningkatkan kestabilan
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Uji rata-rata harga yang berbeza untuk mencari EMA alternatif yang lebih sesuai.
Cuba kombinasi parameter yang berbeza untuk mengoptimumkan panjang garisan pantas, garisan perlahan dan garisan isyarat MACD.
Meningkatkan penunjuk penilaian tambahan seperti penunjuk kapasiti untuk mengelakkan isyarat palsu.
Optimumkan strategi hentian kerugian, menetapkan hentian bergerak yang munasabah atau hentian tunggal.
Optimumkan penapis tarikh dan bulan untuk menjadikannya lebih fleksibel.
Menambah penilaian trend, mengelakkan operasi berlawanan arah.
Optimasi parameter menyeluruh untuk meningkatkan kestabilan strategi.
Ujian semula dalam jangka masa yang lebih lama untuk melihat kesan jangka panjang strategi tersebut.
Periksa dalam talian dan ubah parameter strategi mengikut keadaan dalam talian.
Secara keseluruhannya, strategi ini menggunakan idea penghapusan trend, mengira indikator MACD dalam bentuk DEMA, dan menggabungkan penapisan tarikh untuk menghasilkan isyarat perdagangan, merupakan strategi yang mudah tetapi boleh dilaksanakan. Kelebihannya yang terbesar adalah dapat melihat bentuk MACD dengan jelas dan mengelakkan penghakiman yang dipengaruhi oleh trend harga. Tetapi strategi ini juga mempunyai risiko tertentu, memerlukan pengoptimuman parameter dan penambahan alat kawalan risiko.
/*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")