Strategi Mengikuti Supertrend


Tarikh penciptaan: 2023-12-26 15:58:55 Akhirnya diubah suai: 2023-12-26 15:58:55
Salin: 1 Bilangan klik: 611
1
fokus pada
1623
Pengikut

Strategi Mengikuti Supertrend

Gambaran keseluruhan

Strategi ini adalah strategi super trend jenis pengesanan, idea utamanya adalah menggabungkan indikator super trend dengan pelbagai parameter untuk mencapai kesan pengesanan, dan menggunakan indikator penapis untuk mengawal risiko. Idea teras strategi adalah mudah digunakan, mudah difahami, sesuai untuk pelajar pemula.

Prinsip Strategi

Strategi ini terdiri daripada tiga kumpulan petanda trend super dengan parameter yang berbeza. Kumpulan pertama petanda trend super utama menggunakan parameter lalai untuk menentukan arah trend pasaran; Kumpulan kedua petanda trend super kecil untuk mengesan perubahan harga dengan lebih sensitif dengan mengurangkan kitaran ATR dan meningkatkan kelipatan ATR; Kumpulan ketiga petanda trend super penapis meningkatkan kitaran ATR dan kelipatan ATR dengan sewajarnya untuk menyaring penembusan palsu.

Apabila trend super utama mengeluarkan isyarat beli, jika sub-trend super juga mengeluarkan isyarat secara serentak, dan penapis arah super trend adalah ke atas, maka strategi mengambil pembelian mengikut jejak; apabila trend super utama mengeluarkan isyarat menjual, jika sub-trend super juga mengeluarkan isyarat secara serentak, dan penapis arah super trend adalah ke bawah, maka strategi mengambil menjual mengikut jejak. Dengan cara ini, anda boleh menggunakan indikator sub-super trend untuk mengesan dengan sensitif penyesuaian kecil, sehingga masuk dan berhenti tepat pada masanya.

Kelebihan Strategik

  1. Strategi mudah difahami dan mudah difahami, sesuai untuk pemula
  2. Tetapan parameter strategi yang munasabah untuk mengesan dan mengawal risiko
  3. Isyarat strategi lebih tepat, lebih dipercayai, dan lebih banyak kemenangan
  4. Menggabungkan kombinasi parameter yang berbeza untuk kesan pengesanan
  5. Menambah mekanisme penapis untuk menyaring isyarat palsu dan mengawal risiko

Risiko Strategik

  1. Risiko sistemik saham itu sendiri
  2. Indeks Supertrend mungkin ketinggalan dalam beberapa pasaran
  3. Tetapan parameter yang tidak betul dalam penunjuk ATR boleh menyebabkan isyarat strategi yang menyimpang
  4. Strategi perdagangan yang tidak mencukupi boleh menyebabkan kerugian yang tidak dapat dihapuskan sepenuhnya

Langkah-langkah pencegahan utama:

  1. Pilih saham yang berliquiditi tinggi dan berfluktuasi tinggi
  2. Pengoptimuman parameter yang sesuai untuk mengurangkan kemungkinan ketinggalan
  3. Optimisasi ujian parameter untuk meningkatkan ketepatan isyarat
  4. Meningkatkan jumlah dagangan dengan sewajarnya untuk memastikan ruang berhenti

Arah pengoptimuman strategi

  1. Uji kombinasi parameter kitaran ATR yang berbeza untuk mengoptimumkan kesan pengesanan
  2. Cuba Indeks Volatiliti Lain Daripada ATR
  3. Meningkatkan atau mengurangkan jumlah kombinasi super trend, kesan ujian
  4. Cuba untuk mengoptimumkan penapisan isyarat bersama-sama dengan petunjuk lain
  5. Ujian untuk mencari penyelesaian terbaik

ringkaskan

Strategi ini mempunyai konsep yang jelas dan mudah, dengan pelbagai set indikator super trend yang ditetapkan dengan parameter yang berbeza, saling berkolaborasi, untuk menjejaki kemasukan dan kawalan risiko. Isyarat strategi lebih tepat, prestasi yang lebih baik, sesuai untuk pembelajaran pemula, juga boleh digunakan sebagai templat untuk pengoptimuman ujian pelbagai petunjuk dan parameter, merupakan strategi super trend yang disyorkan.

Kod sumber strategi
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

Periods = input(title="ATR Period", type=input.integer, defval=4)
src = input(hl2, 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

sPeriods=input(title="ATR Period", type=input.integer, defval=8)
sMultiplier=input(title="dop ATR Multiplier", type=input.float, step=0.1, defval=1.5)
satr2 = sma(tr, sPeriods)
satr= changeATR ? atr(sPeriods) : satr2
ssup=ohlc4-(sMultiplier*satr)
ssup1 = nz(ssup[1],ssup)
ssup := close[1] > ssup1 ? max(ssup,ssup1) : ssup
sdn=ohlc4+(sMultiplier*satr)
sdn1 = nz(sdn[1], sdn)
sdn := close[1] < sdn1 ? min(sdn, sdn1) : sdn
strend = 1
strend := nz(strend[1], strend)
strend := strend == -1 and close > sdn1 ? 1 : strend == 1 and close < ssup1 ? -1 : strend
sbuySignal = strend == 1 and strend[1] == -1
ssellSignal = strend == -1 and strend[1] == 1

fPeriods=input(title="ATR Period", type=input.integer, defval=10)
fMultiplier=input(title="filter ATR Multiplier", type=input.float, step=0.1, defval=5)
fatr2 = sma(tr, fPeriods)
fatr= changeATR ? atr(fPeriods) : fatr2
fup=ohlc4-(fMultiplier*fatr)
fup1 = nz(fup[1],fup)
fup := close[1] > fup1 ? max(fup,fup1) : fup
fdn=ohlc4+(fMultiplier*fatr)
fdn1 = nz(fdn[1], fdn)
fdn := close[1] < fdn1 ? min(fdn, fdn1) : fdn
ftrend = 1
ftrend := nz(ftrend[1], ftrend)
ftrend := ftrend == -1 and close > fdn1 ? 1 : ftrend == 1 and close < fup1 ? -1 : ftrend
fbuySignal = ftrend == 1 and ftrend[1] == -1
fsellSignal = ftrend == -1 and ftrend[1] == 1
tcolor=color.new(color.gray,50)
fdnPlot = plot(ftrend == 1 ? na : fdn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=tcolor)
fupPlot = plot(ftrend == 1 ? fup : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=tcolor)



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 and  ftrend==1) or (sbuySignal and trend==1 and  ftrend==1)) 
	tp:=close+(close-up)*0.382
    strategy.entry("Long", strategy.long,  limit=tp, comment=tostring(round(tp)))
if ((sellSignal and ftrend==-1) or (ssellSignal and trend==-1 and  ftrend==-1)) 
	tp:=close-(dn-close)*0.382
    strategy.entry("Short", strategy.short, limit=tp, comment=tostring(round(tp)))