
Strategi pelacakan tren ganda menggunakan empat indikator MACD, RSI, ATR, dan DEMA untuk mengidentifikasi tren jangka pendek dan jangka panjang dari saham, untuk melakukan perdagangan pelacakan tren. Strategi ini menggabungkan keuntungan dari perdagangan breakout dan perdagangan pelacakan tren, untuk menangkap tren yang lebih panjang dan mencari peluang masuk yang lebih baik di garis pendek.
MACD, atau Moving Average Scatter Indicator, adalah indikator jenis trend tracking. MACD terdiri dari Fast Moving Average dan Slow Moving Average, parameter yang umum digunakan adalah garis cepat 12 hari EMA, garis lambat 26 hari EMA, garis sinyal adalah MACD 9 hari EMA. Ketika MACD melewati sinyal di atas untuk membeli sinyal, dan di bawah untuk menjual sinyal.
RSI adalah indeks yang relatif kuat dan lemah, yang mencerminkan kondisi overbought dan oversold saham. RSI ditentukan dengan membandingkan kenaikan dan penurunan rata-rata penutupan rata-rata dalam jangka waktu tertentu.
Strategi ini menggabungkan empat indikator MACD, RSI, ATR, dan DEMA, menggabungkan trend tracking dan breakout trading, untuk mencari waktu masuk yang lebih baik dalam tren, dengan keuntungan sebagai berikut:
MACD dapat secara efektif mengidentifikasi arah dan perputaran tren jangka menengah dan panjang.
RSI dapat menilai apakah saham dalam keadaan overbought atau oversold dalam jangka pendek, menghindari mengejar kenaikan dan penurunan pada titik balik tren.
ATR secara dinamis menyesuaikan posisi stop loss line untuk mengontrol kerugian tunggal secara efektif.
DEMA sebagai indikator penilaian tambahan, dapat memfilter sebagian dari kebisingan.
Kombinasi beberapa indikator dapat meningkatkan keandalan sinyal perdagangan.
Strategi ini juga memiliki beberapa risiko:
Kombinasi beberapa indikator dapat berselisih dan menyebabkan sinyal perdagangan yang salah.
ATR sebagai indikator stop loss yang dinamis, mudah terobosan dalam fluktuasi besar yang mengakibatkan kerugian.
DEMA digunakan sebagai indikator untuk memfilter gelombang tren, yang dapat memfilter peluang perdagangan jangka pendek yang lebih kuat.
Parameter strategi yang tidak tepat dapat menyebabkan frekuensi transaksi, meningkatkan biaya transaksi dan kehilangan slippage.
Untuk mengontrol risiko, parameter indikator dapat disesuaikan dengan tepat, sambil menambahkan indikator penilaian bantu lainnya untuk konfirmasi. Mengembangkan strategi perdagangan kuantitatif membutuhkan analisis data historis yang cermat, pengujian balik yang kuat, dan manajemen risiko yang bijaksana.
Strategi ini juga dapat dioptimalkan dengan:
Uji kombinasi parameter yang berbeda untuk mencari parameter yang optimal.
Meningkatkan strategi stop loss, seperti stop loss bergerak, stop loss rata-rata, dan lain-lain, untuk lebih mengontrol risiko.
Menambahkan lebih banyak indikator penilaian tambahan seperti KDJ, BRI, dan lain-lain untuk meningkatkan akurasi sinyal.
Optimalkan pilihan waktu masuk, seperti menggabungkan strategi seperti breakout, untuk mencari titik pembelian yang lebih baik.
Perbedaan antara pasar multihead dan kosong menggunakan parameter yang berbeda.
Pemodelan klasifikasi berdasarkan karakteristik saham, membuat strategi lebih adaptif.
Strategi pelacakan tren ganda menggunakan empat indikator MACD, RSI, ATR, dan DEMA secara komprehensif, untuk mencapai kombinasi organik dari pelacakan tren dan pemecahan tren. Dibandingkan dengan strategi indikator tunggal, strategi ini dapat memberikan sinyal perdagangan yang lebih andal dan menghindari beberapa sinyal palsu.
/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © prim722
// © OTS Music
//@version=4
strategy("Atrend by OTS", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
if (crossover(delta, 0))
strategy.entry("MACD buy", strategy.long, comment="MACD buy")
if (crossunder(delta, 0))
strategy.entry("MACD sell", strategy.short, comment="MACD sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
length = input( 18 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
if (not na(vrsi))
if (co)
strategy.entry("RSI buy", strategy.long, comment="RSI buy")
if (cu)
strategy.entry("RSI sell", strategy.short, comment="RSI sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=false)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.white)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="", text="", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.white, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_line, linewidth=2, color=color.gray)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="", text="", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.white : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.gray : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
alertcondition(buySignal, title="ATrend Buy", message="ATrend Buy!")
alertcondition(sellSignal, title="ATrend Sell", message="ATrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="ATrend Direction Change", message="ATrend has changed direction!")
length1 = input(25, minval=1)
srcb = input(close, title="Source")
e1 = ema(srcb, length1)
e2 = ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color.red)