Strategi MACD Crossover with Signal menghasilkan sinyal perdagangan ketika MACD melintasi di atas atau di bawah garis sinyal.
Strategi ini pertama-tama menghitung garis rata-rata bergerak cepat fastMA dan garis rata-rata bergerak lambat slowMA. Parameter rata-rata bergerak cepat adalah 12 hari, dan parameter rata-rata bergerak lambat adalah 26 hari. Kemudian hitung perbedaan antara dua garis rata-rata bergerak untuk membentuk MACD. Kemudian hitung rata-rata bergerak 9 hari MACD untuk mendapatkan garis sinyal. Sinyal perdagangan dihasilkan ketika MACD melintasi di atas atau di bawah garis sinyal.
Keuntungan dari strategi ini adalah menangkap titik balik dari tren harga saham jangka menengah. Kombinasi rata-rata bergerak cepat dan lambat menyaring fluktuasi harga jangka pendek dan kebisingan, dan dapat menangkap tren harga jangka menengah. Ketika harga saham mengalami pembalikan jangka menengah, MACD akan menembus garis sinyal dan menghasilkan sinyal perdagangan yang relatif jelas.
Strategi MACD Crossover with Signal menggabungkan gagasan rata-rata bergerak ganda untuk menyaring kebisingan jangka pendek dan hanya menangkap titik balik tren jangka panjang dan menengah.
MACD sendiri lebih sensitif dan dapat merespons secara sensitif terhadap perubahan tren harga. Penambahan garis sinyal dapat menyaring lebih banyak sinyal palsu jangka pendek. Hanya ketika tren jangka menengah berubah secara signifikan, MACD menerobos garis sinyal ke atas dan ke bawah, sinyal akan dihasilkan.
Dalam tren naik yang berkelanjutan, MACD mempertahankan di atas garis sinyal sebagian besar waktu, yang dapat menangkap beberapa peluang di sepanjang jalan. Demikian pula, dalam tren penurunan yang berkelanjutan, MACD juga dapat mempertahankan pola panjang / pendek dan memberikan sinyal pendek secara tepat waktu.
Karena sinyal pembelian dan penjualan strategi sepenuhnya bergantung pada persilangan rata-rata bergerak, jika pasar berfluktuasi sangat, lebih banyak sinyal palsu akan dihasilkan, yang mengakibatkan seringnya stop loss.
Membobol garis sinyal tidak selalu menjamin bahwa tren jangka menengah telah berubah. Bergantung hanya pada satu indikator teknis sebagai sinyal beli memiliki kebutaan tertentu, dan waktu mungkin tidak cukup akurat.
Dalam pasar yang terus berubah, menggunakan crossover dari rata-rata bergerak ganda saja sebagai ambang batas dapat kehilangan lebih banyak peluang perdagangan.
Tambahkan indikator penyaringan likuiditas dan volatilitas untuk mengurangi frekuensi pembukaan dan menghindari perdagangan yang tidak efektif.
Menggabungkan beberapa indikator teknis lainnya untuk membentuk portofolio indikator untuk meningkatkan kualitas sinyal. Kombinasi indikator jangka pendek dan jangka menengah dan panjang dapat menilai struktur pasar secara lebih komprehensif.
Tambahkan algoritma pembelajaran mesin untuk melatih parameter dan ambang perhatian yang lebih cocok untuk lingkungan pasar saat ini, mengurangi intervensi manusia.
Menggabungkan indeks VIX dan indeks ketakutan lainnya untuk memprediksi tren pasar dan volatilitas, dan menyesuaikan parameter secara dinamis untuk memanfaatkan peluang MACD dengan lebih baik.
Strategi MACD Crossover with Signal menggunakan prinsip crossover rata-rata bergerak ganda untuk menghasilkan sinyal perdagangan. Menggambar grafik harga dengan perbedaan antara rata-rata bergerak cepat dan lambat, perubahan tren harga jangka menengah akan memiliki karakteristik yang jelas. Penambahan garis sinyal juga secara efektif menyaring beberapa sinyal yang bising. Strategi ini memiliki beberapa keuntungan dalam menangkap pembalikan tren jangka menengah yang relatif jelas. Namun, persilangan MACD dan garis sinyal tidak dapat sepenuhnya menentukan perubahan fundamental dalam struktur pasar, dan sinyal perdagangan perlu diperlakukan dengan hati-hati. Disarankan untuk digunakan dalam kombinasi dengan indikator teknis lainnya, dan optimasi pembelajaran mesin juga dapat 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)