MACD Crossover dengan Strategi Sinyal

Penulis:ChaoZhang, Tanggal: 2023-12-13 16:58:15
Tag:

img

Gambaran umum

Strategi MACD Crossover with Signal menghasilkan sinyal perdagangan ketika MACD melintasi di atas atau di bawah garis sinyal.

Prinsip Strategi

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.

Analisis Keuntungan

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.

Analisis Risiko

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.

Arahan Optimasi

  1. Tambahkan indikator penyaringan likuiditas dan volatilitas untuk mengurangi frekuensi pembukaan dan menghindari perdagangan yang tidak efektif.

  2. 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.

  3. Tambahkan algoritma pembelajaran mesin untuk melatih parameter dan ambang perhatian yang lebih cocok untuk lingkungan pasar saat ini, mengurangi intervensi manusia.

  4. 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.

Kesimpulan

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)


Lebih banyak