Strategi MACD Crossover with Signal menghasilkan isyarat perdagangan apabila MACD melintasi di atas atau di bawah garis isyarat. Strategi ini menggabungkan idea purata bergerak berganda untuk menangkap titik perubahan trend jangka menengah dalam harga saham, yang tergolong dalam strategi stop loss yang biasa.
Strategi ini mula-mula mengira garis purata bergerak pantas fastMA dan garis purata bergerak perlahan slowMA. Parameter purata bergerak pantas adalah 12 hari, dan parameter purata bergerak perlahan adalah 26 hari. Kemudian mengira perbezaan antara dua garis purata bergerak untuk membentuk MACD. Kemudian mengira purata bergerak 9 hari MACD untuk mendapatkan garis isyarat. Isyarat perdagangan dihasilkan apabila MACD melintasi di atas atau di bawah garis isyarat.
Kelebihan strategi ini adalah untuk menangkap titik perubahan trend jangka menengah harga saham. Gabungan purata bergerak pantas dan perlahan menapis turun naik harga jangka pendek dan bunyi bising, dan dapat menangkap trend harga jangka sederhana. Apabila harga saham mengalami pembalikan jangka menengah, MACD akan menembusi garis isyarat dan menghasilkan isyarat perdagangan yang agak jelas.
Strategi MACD Crossover dengan Isyarat menggabungkan idea purata bergerak berganda untuk menapis bunyi bising jangka pendek dan hanya menangkap titik perubahan trend jangka panjang dan sederhana.
MACD sendiri lebih sensitif dan boleh bertindak balas dengan sensitif terhadap perubahan trend harga. Penambahan garis isyarat boleh menapis lebih banyak isyarat palsu jangka pendek. Hanya apabila trend jangka sederhana berubah dengan ketara, MACD memecahkan garis isyarat ke atas dan ke bawah, isyarat akan dihasilkan.
Dalam trend menaik yang mampan, MACD mengekalkan di atas garis isyarat kebanyakan masa, yang boleh menangkap pelbagai peluang di sepanjang jalan.
Oleh kerana isyarat beli dan jual strategi bergantung sepenuhnya pada persilangan purata bergerak, jika pasaran turun naik dengan ketara, lebih banyak isyarat palsu akan dihasilkan, yang mengakibatkan kehilangan berhenti yang kerap.
Menembusi garis isyarat tidak semestinya memastikan bahawa trend jangka sederhana telah berubah. Bergantung hanya pada satu petunjuk teknikal sebagai isyarat beli mempunyai kebutaan tertentu, dan masa mungkin tidak cukup tepat.
Dalam pasaran yang sentiasa berubah, menggunakan persilangan purata bergerak berganda sahaja sebagai ambang mungkin kehilangan lebih banyak peluang perdagangan.
Tambah indikator penapisan kecairan dan turun naik untuk mengurangkan kekerapan pembukaan dan mengelakkan perdagangan yang tidak berkesan.
Menggabungkan beberapa penunjuk teknikal lain untuk membentuk portfolio penunjuk untuk meningkatkan kualiti isyarat.
Tambah algoritma pembelajaran mesin untuk melatih parameter dan ambang perhatian yang lebih sesuai untuk persekitaran pasaran semasa, mengurangkan campur tangan manusia.
Menggabungkan VIX dan indeks ketakutan lain untuk meramalkan trend pasaran dan turun naik, dan menyesuaikan parameter secara dinamik untuk memanfaatkan peluang MACD dengan lebih baik.
Strategi MACD Crossover dengan Isyarat menggunakan prinsip crossover purata bergerak berganda untuk menjana isyarat perdagangan. Menggambar grafik harga dengan perbezaan antara purata bergerak pantas dan perlahan, perubahan trend harga jangka sederhana akan mempunyai ciri-ciri yang jelas. Penambahan garis isyarat juga berkesan menapis beberapa isyarat bising. Strategi ini mempunyai beberapa kelebihan dalam menangkap pembalikan trend jangka sederhana yang agak jelas. Walau bagaimanapun, persilangan MACD dan garis isyarat tidak dapat menentukan sepenuhnya perubahan asas dalam struktur pasaran, dan isyarat perdagangan perlu dirawat dengan berhati-hati. Ia disyorkan untuk digunakan dalam kombinasi dengan penunjuk teknikal lain, dan pengoptimuman pembelajaran mesin juga boleh dipertimbangkan.
/*backtest start: 2022-12-06 00:00:00 end: 2023-12-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@author : SudeepBisht //@version=2 strategy(title="MACD with Signal", shorttitle="MACD_with_Signal") source = close useCurrentRes = input(true, title="Use Current Chart Resolution?") resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60") smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below") sd = input(true, title="Show Dots When MacD Crosses Signal Line?") sh = input(true, title="Show Histogram?") macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?") hist_colorChange = input(true,title="MacD Histogram 4 Colors?") res = useCurrentRes ? timeframe.period : resCustom fastLength = input(12, minval=1), slowLength=input(26,minval=1) signalLength=input(9,minval=1) fastMA = ema(source, fastLength) slowMA = ema(source, slowLength) macd = fastMA - slowMA signal = sma(macd, signalLength) hist = macd - signal outMacD = request.security(syminfo.tickerid, res, macd) outSignal = request.security(syminfo.tickerid, res, signal) outHist = request.security(syminfo.tickerid, res, hist) histA_IsUp = outHist > outHist[1] and outHist > 0 histA_IsDown = outHist < outHist[1] and outHist > 0 histB_IsDown = outHist < outHist[1] and outHist <= 0 histB_IsUp = outHist > outHist[1] and outHist <= 0 //MacD Color Definitions macd_IsAbove = outMacD >= outSignal macd_IsBelow = outMacD < outSignal plot_color = hist_colorChange ? histA_IsUp ? green : histA_IsDown ? lime : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray macd_color = macd_colorChange ? macd_IsAbove ? green : red : red signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime circleYPosition = outSignal plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=3) plot(smd and outSignal ? outSignal : na, title="Signal", color=blue, style=line ,linewidth=1) plot(sh and outHist ? outHist : na, title="", color=plot_color, style=columns, linewidth=4) //plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color) hline(0, '0 Line', linewidth=2, color=white) macd_chk=smd and outMacD ? outMacD : na checker=smd and outSignal ? outSignal : na if (crossover(macd_chk,checker)) strategy.entry("BBandLE", strategy.long) if (crossunder(macd_chk, checker)) strategy.entry("BBandSE", strategy.short)