Strategi ini menggabungkan indikator MACD dan DEMA dua hala, membentuk isyarat perdagangan melalui multi-cahaya garpu emas garpu mati. Strategi ini menangkap masa peralihan indikator MACD, menggunakan penapis DEMA untuk mencapai kemasukan yang lebih baik.
Hitung DEMAfast, ambil nilai DEMA dari harga, panjang kitaran adalah fastmacd。
Hitung DEMAslow garis perlahan, ambil nilai DEMA dari prices, dan panjang kitaran adalah slowmacd。
Garis MACD adalah perbezaan garis cepat-lambat: DEMAfast - DEMAslow。
Garis isyarat adalah nilai DEMA untuk garis MACD, dan panjang kitaran adalah signalmacd。
Garis silang berbilang baris sebagai isyarat dagangan: garpu emas lebih banyak, garpu mati kosong.
Tambahkan penapis hari dan tahun, dan isyarat hanya dalam julat tarikh yang ditetapkan.
Strategi ini mempunyai kelebihan utama:
Gabungan MACD dan DEMA, penunjuk saling melengkapi. MACD menangkap perubahan, penapis DEMA meningkatkan kualiti isyarat.
Reka bentuk dua trek DEMA dapat mengurangkan ketinggalan dan kebisingan dalam penunjuk MACD.
Persaingan antara pelbagai saluran udara mudah dinilai, dan penjanaan isyarat mudah dan jelas.
Anda boleh menyesuaikan tarikh dagangan anda secara fleksibel mengikut keperluan strategi anda.
Parameter MACD boleh mengoptimumkan kombinasi, fleksibel untuk pelbagai keadaan.
Risiko utama strategi ini ialah:
MACD sebagai penunjuk trend, tidak sesuai untuk pasaran setapak yang bergolak.
Perpaduan pelbagai ruang mungkin menghasilkan isyarat palsu, yang perlu disaring dengan berkesan.
Strategi penangguhan kerugian tidak sempurna, mudah untuk menghentikan kerugian yang terlalu besar.
Pengoptimuman parameter tidak menyeluruh, dan kesan yang berbeza antara varieti berbeza.
Penapis tarikh dagangan terlalu ketat dan perlu disesuaikan secara dinamik.
Penyelesaian:
Gabungan dengan penunjuk volum, mengelakkan berliku.
Meningkatkan syarat harga, menapis isyarat silang palsu.
Tetapkan stop loss awal yang munasabah dan stop loss susulan.
Uji kesan parameter pelbagai varieti, pengoptimuman dinamik.
Tarikh penapisan disesuaikan dengan keadaan semasa.
Strategi ini boleh dioptimumkan dengan:
Meningkatkan penapis isyarat untuk penunjuk lalu lintas.
Mengoptimumkan kombinasi parameter MACD untuk menguji data pelbagai varieti.
Tetapkan strategi hentikan kerugian, seperti hentikan pegangan, jejak hentikan kerugian, dan sebagainya.
Mengubah kedudukan hentian secara dinamik mengikut turun naik pasaran.
Mengikut trend yang kuat dan lemah, anda perlu menyesuaikan saiz kedudukan anda.
Strategi MACD DEMA menggabungkan kelebihan kedua-dua indikator, memanfaatkan trend menangkap isyarat silang. Tetapi sifat MACD bersifat laggy, perlu berhati-hati untuk menyaring isyarat palsu. Selain itu, strategi hentian kerugian perlu dioptimumkan untuk mengurangkan hentian yang tidak rasional.
/*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")