Strategi Perdagangan Breakout Berdasarkan Saluran Tren Super


Tanggal Pembuatan: 2024-02-18 14:19:58 Akhirnya memodifikasi: 2024-02-18 14:19:58
menyalin: 2 Jumlah klik: 683
1
fokus pada
1617
Pengikut

Strategi Perdagangan Breakout Berdasarkan Saluran Tren Super

Ringkasan

Strategi ini dikembangkan berdasarkan indikator supertrend channel. Ini menggabungkan pergerakan harga dan arah supertrend channel untuk menilai tren pasar dan mengirimkan sinyal perdagangan saat berbalik arah channel.

Ketika harga menembus saluran supertrend, membeli lebih banyak; ketika harga jatuh ke saluran supertrend, menjual lebih sedikit. Pada saat yang sama, ia memiliki mekanisme trend tracking stop loss.

Prinsip Strategi

Saluran tren super terdiri dari jalur naik dan turun. Bagian dalam saluran adalah area perhitungan, bagian luar saluran adalah area tren. Ini menggunakan rentang rata-rata fluktuasi nyata dikalikan dengan kelipatan untuk menentukan lebar saluran.

Ketika harga dari bawah menembus tren naik, untuk sinyal beli。 yang berarti tren naik baru dimulai。 ketika harga dari atas menembus tren turun, untuk sinyal jual。 yang berarti tren turun baru dimulai。

Strategi ini menggunakan indikator supertrend channel untuk menentukan arah tren utama. Sinyal perdagangan dikirimkan ketika arah saluran berbalik, yaitu ketika harga menembus orbit saluran; Kemudian gunakan metode stop loss untuk melacak tren dan mengunci keuntungan.

Analisis Keunggulan

Ini adalah strategi penembusan yang sederhana dan intuitif. Ini memiliki beberapa keuntungan:

  1. Menggunakan saluran tren super untuk menentukan arah tren utama dan menghindari kebisingan iB.

  2. Untuk itu, berdasarkan hubungan antara harga dan saluran, lebih banyak waktu kosong.

  3. Dengan mekanisme stop loss yang jelas, risiko dapat dikendalikan secara efektif.

  4. Stop loss adalah stop loss yang mengikuti tren dan dapat mengunci keuntungan maksimal.

Risiko dan perbaikan

Strategi ini juga memiliki beberapa risiko, yang meliputi:

  1. Parameter saluran supertrend yang tidak tepat dapat menyebabkan sinyal palsu.

  2. Sinyal penembusan mungkin merupakan sinyal pembalikan jangka pendek, sehingga menghasilkan kerugian.

  3. Stop loss hanya untuk trend tracking stop loss, mungkin stop loss prematur.

Langkah-langkah perbaikan yang sesuai meliputi:

  1. Uji data dari berbagai pasar, optimalkan parameter.

  2. Dalam kombinasi dengan indikator lain, filter sinyal.

  3. Dalam kombinasi dengan struktur harga, untuk menilai keandalan sinyal terobosan.

  4. Meningkatnya back-end stop loss untuk mengontrol risiko lebih lanjut.

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi pelacakan tren yang lebih sederhana dan intuitif. Strategi ini menggunakan saluran tren super untuk menentukan arah tren dengan jelas, menghasilkan sinyal ketika saluran berbalik; dan kemudian menggunakan metode pelacakan tren untuk menghentikan kerugian untuk mengunci keuntungan.

Dibandingkan dengan indikator lain, supertrend channel lebih inklusif terhadap fluktuasi harga. Namun, strategi ini juga memiliki ruang untuk keuntungan tertentu, yang dapat dioptimalkan dari segi pemfilteran sinyal dan metode stop loss untuk meningkatkan stabilitas lebih lanjut.

Kode Sumber Strategi
/*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)))