
Ringkasan: Strategi ini menggunakan indikator MACD untuk menghasilkan sinyal perdagangan pada beberapa kerangka waktu untuk melakukan pelacakan tren. Gagasan dasarnya adalah untuk mengkonfirmasi arah tren pada kerangka waktu periode tinggi dan kemudian mencari waktu masuk tertentu pada kerangka waktu periode rendah.
Prinsip-prinsip Strategi: Strategi ini menggunakan garis deviasi MACD indikator dan garis sinyal yang bersilang untuk menentukan arah tren. Secara khusus, ia menghitung garis deviasi MACD dan garis sinyal dalam jangka waktu periode tinggi (default 60 menit). Di mana garis deviasi menghasilkan sinyal beli saat melewati garis sinyal dan sinyal jual saat melewati garis sinyal, untuk mengkonfirmasi arah tren secara keseluruhan.
Strategi kemudian akan menghitung MACD pada kerangka waktu periode rendah ((siklus saat ini), dan masuk ke posisi yang sesuai ketika garis deviasi dan garis sinyal bersilang. Oleh karena itu, periode tinggi digunakan untuk menentukan arah tren, dan periode rendah digunakan untuk mencari titik masuk tertentu.
Strategi ini juga menggunakan perubahan warna dari grafik pilar untuk membantu menentukan tren, dengan pilar hijau menunjukkan kenaikan dan pilar merah menunjukkan penurunan.
Analisis Keunggulan:
Desain kerangka multi-waktu, siklus tinggi menentukan arah tren, siklus rendah mencari titik masuk, sistematis.
Menggunakan crossover MACD untuk menentukan waktu jual beli, parameter indikator telah dioptimalkan, sinyal lebih dapat diandalkan.
Garis pilar warna membantu menilai status tren saat ini, membentuk verifikasi ganda, meningkatkan keakuratan pengambilan keputusan.
Mengikuti tren secara otomatis, tanpa terlalu banyak intervensi manusia, mengurangi kesalahan penilaian emosional.
Analisis risiko:
MACD sebagai indikator yang melacak tren jangka panjang, dapat menghasilkan sinyal yang salah dalam jangka pendek yang menyebabkan kerugian yang tidak perlu.
Strategi kerangka waktu ganda lebih sulit untuk mengoptimalkan parameter dan pengujian karena perlu mempertimbangkan beberapa siklus sekaligus.
Strategi ini tidak memiliki setelan stop loss yang dapat menyebabkan kerugian yang lebih besar.
Cara Mengoptimalkan:
Mengoptimalkan parameter MACD untuk mencari kombinasi parameter yang optimal.
Meningkatkan mekanisme penghentian kerugian dan membatasi kerugian maksimum.
Evaluasi apakah perlu menambahkan indikator lain untuk filter sinyal, meningkatkan kualitas sinyal.
Uji kombinasi frame waktu yang berbeda untuk menemukan pencocokan yang optimal.
Kesimpulannya: Strategi ini secara keseluruhan dirancang secara sistematis, dan menggabungkan beberapa keunggulan dari indikator MACD, sehingga dapat secara efektif melacak tren lini tengah. Namun, karena tidak ada stop loss yang ditetapkan, sulit untuk menghindari risiko ekspansi kerugian jangka pendek, ini adalah arah yang perlu dioptimalkan lebih lanjut. Secara keseluruhan, strategi ini dengan kemampuan melacak tren yang kuat, memberikan pilihan saham berkualitas tinggi dan kerangka keputusan untuk perdagangan kuantitatif. Dengan terus mengoptimalkan parameter dan model, diharapkan untuk memperluas ruang keuntungan dan meningkatkan stabilitas strategi.
/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@author : SudeepBisht
//@version=2
strategy(title="SB_CM_MacD_Ult_MTF", shorttitle="SB_CM_Ult_MacD_MTF")
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 ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? lime : 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=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)
plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
// hline(0, '0 Line', linestyle=solid, 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, comment="BBandLE")
if (crossunder(macd_chk, checker))
strategy.entry("BBandSE", strategy.short, comment="BBandSE")