Strategi ini menggunakan kaedah menghilangkan trend harga saham untuk memerhatikan penunjuk MACD dengan lebih jelas. Dengan mengira garis cepat DEMA dan garis perlahan DEMA, garis MACD dan garis isyarat diperoleh. Isyarat perdagangan dihasilkan dengan menyeberang antara garis MACD dan garis isyarat. Strategi ini juga menggabungkan penapis keadaan tarikh dan bulan dan logik stop loss untuk membentuk sistem yang lebih lengkap.
Pertama, EMA harga dikira untuk menghapuskan trend harga dan mendapatkan EMA yang terdetensi. Kemudian garis cepat DEMA, garis perlahan DEMA dan garis MACD dikira berdasarkan EMA. DEMA garisan pantas dikira dengan: pertama mengira EMA1 garisan pantas, kemudian mengira EMA2 EMA1, dan akhirnya mengira DEMA=(2*EMA1-EMA2). Garis perlahan DEMA dan garis isyarat dikira sama. Selepas mendapatkan garis isyarat MACD (garis pantas DEMA - DEMA garisan perlahan) dan garis isyarat, isyarat beli dihasilkan apabila garis MACD melintasi di atas garis isyarat, dan isyarat jual dihasilkan apabila garis MACD melintasi garis isyarat di bawah. Akhirnya, gabungkan penapis tarikh dan bulan, dan tetapkan logik stop loss.
Logik teras strategi ini ialah:
Menghapuskan trend harga untuk melihat penunjuk MACD dengan lebih jelas.
Mengira garis cepat DEMA, garis perlahan DEMA untuk mendapatkan garis MACD dan garis isyarat.
Garis MACD dan persilangan garis isyarat menghasilkan isyarat perdagangan.
Tambah penapis tarikh dan bulan.
Tetapkan logik stop loss.
Kelebihan utama strategi ini ialah:
Menghapuskan trend harga boleh mendedahkan keadaan silang MACD dengan lebih jelas tanpa disesatkan oleh trend.
Menggunakan algoritma DEMA untuk mengira MACD menapis beberapa bunyi bising dan membuat isyarat lebih jelas.
Menggabungkan penapis tarikh dan bulan boleh mengurangkan perdagangan yang tidak perlu.
Logik stop loss boleh mengurangkan kerugian dalam masa dan mengawal risiko.
Menggunakan silang untuk menjana isyarat mengurangkan perdagangan yang salah.
Secara keseluruhan, menggabungkan penghapusan trend, pengiraan DEMA dan penapis keadaan, strategi ini boleh menghasilkan isyarat perdagangan yang agak jelas dan boleh dipercayai.
Beberapa risiko strategi ini memerlukan perhatian:
Selepas menghapuskan trend, isyarat persilangan MACD mungkin meningkat, yang memerlukan ujian langsung untuk mengesahkan kelayakan.
Walaupun algoritma DEMA menapis beberapa bunyi bising, masih boleh ada banyak isyarat palsu dalam pengiraan penunjuk.
Syarat penapis tarikh dan bulan mungkin terlalu kaku, kehilangan beberapa peluang perdagangan.
Kedudukan stop loss perlu ditetapkan dengan munasabah, terlalu longgar akan meningkatkan risiko, terlalu ketat akan sering menghentikan kerugian.
Strategi ini bergantung terutamanya pada MACD, jika pasaran tidak sesuai untuk penunjuk ini, prestasi mungkin terjejas.
Masih ada ruang yang besar untuk pengoptimuman parameter, yang memerlukan ujian lanjut melalui backtest dan perdagangan langsung.
Penyelesaian:
Tambah pengesahan penunjuk lain untuk mengelakkan isyarat palsu.
Mengoptimumkan keadaan penapis tarikh dengan betul.
Uji dan optimumkan titik stop loss dengan teliti.
Tambah mekanisme penilaian trend untuk mengelakkan perdagangan terhadap trend.
Ujian balik yang komprehensif dan pengoptimuman parameter untuk meningkatkan kestabilan.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Uji purata pergerakan harga yang berbeza untuk mencari alternatif yang lebih baik kepada EMA.
Cuba kombinasi parameter yang berbeza untuk mengoptimumkan garis cepat MACD, garis perlahan dan panjang garis isyarat.
Tambah penunjuk tambahan seperti kelantangan untuk mengelakkan isyarat palsu.
Mengoptimumkan strategi stop loss, menetapkan pergerakan atau perintah stop loss yang munasabah.
Mengoptimumkan keadaan penapis tarikh dan bulan untuk menjadikannya lebih fleksibel.
Tambah pertimbangan trend untuk mengelakkan perdagangan terhadap trend.
Pengoptimuman parameter komprehensif untuk meningkatkan kestabilan.
Backtest pada tempoh masa yang lebih lama untuk memeriksa prestasi jangka panjang.
Perdagangan langsung untuk mengesahkan dan mengubah suai parameter berdasarkan perdagangan sebenar.
Ringkasnya, strategi ini menggunakan idea menghapuskan trend dan mengira DEMA MACD digabungkan dengan penapis tarikh untuk menghasilkan isyarat perdagangan, yang merupakan idea strategi yang mudah tetapi boleh dilaksanakan. Kelebihannya yang terbesar adalah mendedahkan corak MACD dengan jelas tanpa dipengaruhi oleh trend harga. Walau bagaimanapun, masih ada beberapa risiko strategi ini yang memerlukan pengoptimuman parameter dan langkah kawalan risiko untuk dilaksanakan untuk aplikasi praktikal. Terdapat juga ruang yang besar untuk pengoptimuman, dan dengan pengesahan dan pengoptimuman yang mencukupi, strategi ini boleh menjadi sistem perdagangan jangka pendek yang stabil dan boleh dipercayai.
/*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")