
Strategi ini dibangunkan berdasarkan petunjuk saluran supertrend. Ia menggabungkan pergerakan harga dan arah saluran supertrend untuk menilai trend pasaran dan menghantar isyarat perdagangan apabila arah saluran berubah.
Apabila harga menembusi saluran supertrend, ia membeli lebih banyak; apabila harga jatuh di bawah saluran supertrend, ia menjual dengan kosong. Pada masa yang sama, ia mempunyai mekanisme berhenti kehilangan trend.
Saluran Super Trend terdiri daripada satu lintasan, satu lintasan. Di dalam saluran adalah kawasan penyusunan, di luar saluran adalah kawasan trend. Ia menggunakan julat turun naik sebenar purata yang dikalikan dengan kelipatan untuk menentukan lebar saluran.
Apabila harga menembus tren dari bawah, ia memberi isyarat untuk membeli. Ini bermakna trend naik baru bermula. Apabila harga menembus tren dari atas, ia memberi isyarat untuk menjual. Ini bermakna trend turun baru bermula.
Strategi ini menggunakan indikator saluran supertrend untuk menentukan arah trend utama. Ia memberi isyarat perdagangan apabila arah saluran bertukar, iaitu apabila harga menembusi orbit saluran; dan kemudian menggunakan cara berhenti kehilangan trend untuk mengunci keuntungan.
Ini adalah strategi yang lebih mudah dan intuitif. Ia mempunyai kelebihan berikut:
Menggunakan saluran super trend untuk menentukan arah trend utama, dan mengelakkan diri anda dari kebisingan.
Oleh itu, lebih banyak masa kosong dibuat berdasarkan hubungan antara harga dan saluran.
Mempunyai mekanisme penangguhan kerugian yang jelas untuk mengawal risiko dengan berkesan.
Hentikan kerugian adalah cara untuk mengesan trend dan memaksimumkan keuntungan
Strategi ini juga mempunyai beberapa risiko, terutamanya:
Parameter saluran supertrend yang tidak betul boleh menyebabkan isyarat palsu.
Isyarat penembusan mungkin isyarat pembalikan jangka pendek, yang menyebabkan kerugian.
Stop loss hanya untuk trend dan boleh menyebabkan stop loss terlalu awal.
Langkah-langkah penambahbaikan termasuk:
Uji data dari pasaran yang berbeza, optimumkan parameter.
Gabungan dengan penapis isyarat lain.
Bergabung dengan Struktur Harga, menilai kebolehpercayaan isyarat penembusan.
Meningkatkan kekalahan latar belakang untuk mengawal risiko lebih jauh.
Strategi ini secara keseluruhannya adalah strategi pemantauan trend yang lebih mudah dan intuitif. Ia menggunakan saluran supertrend untuk menentukan arah trend dengan jelas, menghasilkan isyarat apabila saluran berubah; dan kemudian menggunakan kaedah pemantauan trend untuk mengunci keuntungan.
Lebih baik daripada petunjuk lain, saluran super trend lebih inklusif terhadap turun naik harga. Tetapi strategi ini juga mempunyai ruang untuk keuntungan tertentu, yang boleh dioptimumkan dari segi penapisan isyarat dan cara menghentikan kerugian untuk meningkatkan kestabilan.
/*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)))