Strategi Pelacakan Tren Berbagai

Penulis:ChaoZhang, Tanggal: 2023-11-17 17:19:37
Tag:

img

Gambaran umum

Strategi pelacakan tren ganda secara komprehensif memanfaatkan MACD, RSI, ATR dan DEMA empat indikator untuk mengidentifikasi tren jangka panjang dan jangka pendek saham dan melakukan perdagangan pelacakan tren. Strategi ini menggabungkan keuntungan dari perdagangan breakout dan perdagangan pelacakan tren, yang dapat menangkap tren jangka panjang sambil menemukan titik masuk yang lebih baik dalam jangka pendek.

Logika Strategi

Strategi perdagangan MACD

MACD adalah singkatan dari Moving Average Convergence Divergence, yang merupakan indikator yang mengikuti tren. MACD terdiri dari garis rata-rata bergerak cepat dan garis rata-rata bergerak lambat, biasanya menggunakan parameter EMA 12 hari untuk garis cepat, EMA 26 hari untuk garis lambat, dan garis sinyal sebagai EMA 9 hari dari MACD. Ketika MACD melintasi garis sinyal, itu adalah sinyal beli, dan ketika melintasi di bawah, itu adalah sinyal jual. Strategi ini menggunakan salib emas MACD dan salib mati untuk menentukan arah tren.

Strategi RSI Overbought Oversold

RSI adalah singkatan dari Relative Strength Index, yang mencerminkan status overbought dan oversold dari sebuah saham. RSI menentukan apakah sebuah saham overbought atau oversold dengan membandingkan keuntungan rata-rata dan kerugian rata-rata selama periode waktu tertentu.

Analisis Keuntungan

Strategi ini secara komprehensif memanfaatkan MACD, RSI, ATR dan DEMA empat indikator, dengan mempertimbangkan baik pelacakan tren dan perdagangan breakout, yang dapat menemukan titik masuk yang lebih baik dalam tren. Keuntungan utama adalah:

  1. MACD dapat secara efektif mengidentifikasi arah dan titik balik dari tren harga saham jangka menengah dan panjang.

  2. RSI dapat menilai apakah saham terlalu banyak dibeli atau terlalu banyak dijual dalam jangka pendek untuk menghindari mengejar puncak dan menjual titik terendah pada titik pembalikan tren.

  3. ATR secara dinamis menyesuaikan posisi stop loss untuk secara efektif mengontrol single loss.

  4. DEMA berfungsi sebagai indikator penilaian tambahan untuk menyaring kebisingan.

  5. Kombinasi dari beberapa indikator dapat meningkatkan keandalan sinyal perdagangan.

Analisis Risiko

Ada juga beberapa risiko dalam strategi ini:

  1. Divergensi dapat terjadi dengan kombinasi beberapa indikator, yang mengarah pada sinyal perdagangan yang salah.

  2. ATR sebagai indikator stop loss dinamis cenderung rusak dalam fluktuasi besar yang mengakibatkan kerugian.

  3. DEMA sebagai filter tren mungkin menyaring beberapa peluang perdagangan jangka pendek yang lebih kuat.

  4. Parameter strategi yang tidak tepat dapat menyebabkan perdagangan yang sering, meningkatkan biaya transaksi dan kerugian slippage.

Untuk mengontrol risiko, parameter indikator dapat disesuaikan sesuai dengan itu. Lebih banyak indikator penilaian tambahan juga dapat diperkenalkan untuk konfirmasi. Mengembangkan strategi perdagangan kuantitatif membutuhkan analisis data historis yang teliti, backtesting yang kuat, dan manajemen risiko yang bijaksana. Saya tidak dapat merekomendasikan tindakan khusus, tetapi dapat menyarankan fokus pada prinsip pengembangan strategi yang sehat.

Arahan Optimasi

Strategi ini juga dapat dioptimalkan dalam aspek berikut:

  1. Uji kombinasi parameter yang berbeda untuk menemukan parameter yang optimal.

  2. Tambahkan strategi stop loss seperti stop loss bergerak, stop loss rata-rata dll untuk mengendalikan risiko lebih lanjut.

  3. Memperkenalkan indikator penilaian tambahan seperti KDJ, Bollinger Bands dll untuk meningkatkan akurasi sinyal.

  4. Mengoptimalkan pilihan waktu masuk dengan menggabungkan strategi keluar untuk menemukan titik masuk yang lebih baik.

  5. Perbedaan parameter untuk pasar bull dan bear.

  6. Membangun model berdasarkan karakteristik stok untuk meningkatkan kemampuan beradaptasi.

Ringkasan

Strategi pelacakan tren ganda mengintegrasikan MACD, RSI, ATR dan DEMA empat indikator, mencapai kombinasi organik dari pelacakan tren dan trend breakout. Dibandingkan dengan strategi indikator tunggal, strategi ini dapat memberikan sinyal perdagangan yang lebih dapat diandalkan dan menghindari sinyal palsu tertentu. Melalui optimasi parameter, strategi stop loss, penilaian tambahan dll, kinerja strategi dapat ditingkatkan lebih lanjut. Strategi ini cocok untuk perdagangan kuantitatif yang membutuhkan kemampuan switching tren yang lebih tinggi dan merupakan ide strategi yang menjanjikan yang layak dilacak dan dioptimalkan dalam jangka panjang.


/*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)

Lebih banyak