Supertrend Breakout Trading Strategi

Penulis:ChaoZhang, Tanggal: 2024-02-18 14:19:58
Tag:

img

Gambaran umum

Strategi ini dikembangkan berdasarkan indikator Supertrend. Ini menggabungkan aksi harga dan arah saluran Supertrend untuk menilai tren pasar dan menghasilkan sinyal perdagangan ketika arah saluran berubah.

Ketika harga menembus saluran Supertrend, pergi panjang; ketika harga menembus di bawah saluran bawah Supertrend, pergi pendek.

Logika Strategi

Saluran Supertrend terdiri dari rel atas dan rel bawah. Area di dalam saluran adalah area konsolidasi dan area di luar adalah area tren.

Ketika harga menembus rel atas dari bawah, itu adalah sinyal beli. Ini berarti bahwa tren naik baru dimulai. Ketika harga menembus rel bawah dari atas, itu adalah sinyal jual. Ini berarti bahwa tren penurunan baru dimulai.

Strategi ini menggunakan indikator Supertrend untuk menilai arah tren utama. Ketika arah saluran berubah, yaitu ketika harga menembus rel saluran, sinyal perdagangan dihasilkan. Kemudian gunakan stop loss pelacakan tren untuk mengunci keuntungan.

Analisis Keuntungan

Ini adalah strategi breakout yang relatif sederhana dan intuitif.

  1. Gunakan saluran Supertrend untuk menentukan arah tren utama dan menghindari perdagangan kebisingan.

  2. Ikuti tren, menilai peluang panjang dan pendek berdasarkan hubungan harga dengan saluran.

  3. Ini memiliki mekanisme stop loss yang jelas untuk mengontrol risiko secara efektif.

  4. Metode stop loss adalah trend tracking stop loss, yang dapat memaksimalkan profit locking.

Risiko dan Peningkatan

Ada juga beberapa risiko untuk strategi ini, terutama termasuk:

  1. Pengaturan parameter Supertrend yang tidak benar dapat menyebabkan sinyal palsu.

  2. Sinyal breakout bisa menjadi sinyal pembalikan jangka pendek, yang mengakibatkan kerugian.

  3. Metode stop loss hanya trend tracking stop loss, yang dapat menghentikan kerugian lebih awal.

Langkah-langkah perbaikan yang sesuai meliputi:

  1. Uji data dari pasar yang berbeda dan optimalkan parameter.

  2. Sinyal filter dalam kombinasi dengan indikator lain.

  3. Menghakimi keandalan sinyal breakout dikombinasikan dengan struktur harga.

  4. Meningkatkan stop loss latar belakang untuk mengontrol risiko lebih lanjut.

Ringkasan

Secara umum, strategi ini adalah strategi tren yang relatif sederhana dan intuitif. Ini menggunakan saluran Supertrend untuk dengan jelas menentukan arah tren dan menghasilkan sinyal ketika saluran mengubah arah. Kemudian gunakan stop loss pelacakan tren untuk mengunci keuntungan.

Jika dibandingkan dengan indikator lain, saluran Supertrend memiliki toleransi yang lebih baik terhadap fluktuasi harga. Namun masih ada ruang untuk keuntungan untuk strategi ini. Ini dapat dioptimalkan dalam hal penyaringan sinyal dan metode stop loss untuk meningkatkan stabilitas lebih lanjut.


/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Supertrend TEST Strategy", overlay = true, format=format.price, precision=2)

Periods = input(title="ATR Period", type=input.integer, defval=4)
src = input(hlc3, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=4.7)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
tp=close
sl=close

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_linebr, linewidth=2, color=color.green)
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 )
plotshape(buySignal and showsignals ? up : na, title="Лонг", text="Лонг", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white )
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
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 )
plotshape(sellSignal and showsignals ? dn : na, title="Шорт", text="Шорт", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white )
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white



if (strategy.position_size > 0)
	tp:=tp[1]
	sl:=up
	strategy.exit("Long_TP/SL","Long",limit=tp, stop=sl)
	
if (strategy.position_size < 0)
	tp:=tp[1]
	sl:=dn
	strategy.exit("Short_TP/SL","Short",limit=tp, stop=sl)



if buySignal 
	tp:=close+(close-up)*0.382
    strategy.entry("Long", strategy.long,  limit=tp, comment=tostring(round(tp)))
if sellSignal
	tp:=close-(dn-close)*0.382
    strategy.entry("Short", strategy.short, limit=tp, comment=tostring(round(tp)))




Lebih banyak