Strategi ini adalah strategi pelacakan supertrend pada dua frame waktu. Strategi ini menggunakan indikator supertrend dari dua periode yang berbeda secara bersamaan, satu untuk menentukan arah tren pada frame waktu utama, dan satu untuk memfilter masuk pada frame waktu tambahan.
Indikator utama dari strategi ini adalah indikator supertrend. Indikator supertrend digunakan untuk menentukan arah tren harga relatif dengan menghitung selisih harga. Strategi ini menggunakan indikator supertrend dari dua periode waktu, dengan menghitung garis supertrend dari bingkai waktu utama dan bingkai waktu tambahan.
Logika transaksi adalah sebagai berikut:
Perhitungkan arah garis tren di luar kerangka waktu utama sebagai arah tren besar.
Tunggu kerangka waktu tambahan untuk masuk saat garis tren melampaui sinyal sinkron posisi.
Tetapkan Stop Loss Stop Stop Stop.
Pada waktu yang sama, garis tren di atas kerangka waktu utama berbalik lagi.
Dengan mengkombinasikan dua indikator siklus, beberapa sinyal yang menyimpang dapat disaring, sehingga masuk lebih akurat.
Strategi ini memiliki keuntungan sebagai berikut:
Kombinasi dua kerangka waktu ini memungkinkan penilaian tren yang lebih akurat.
Indikator supertrend sangat sensitif terhadap perubahan tren, dan sangat akurat.
Pengaturan Stop Loss Stop Stop Point untuk mengendalikan risiko.
Logika strategi sederhana, langsung, dan mudah dipahami.
Parameter yang dapat dioptimalkan sendiri, sesuai dengan varietas yang berbeda.
Risiko utama dari strategi ini adalah:
Indikator supertrend memiliki keterlambatan yang dapat menyebabkan sinyal yang salah.
Stop loss yang tidak disetel dengan benar dapat menyebabkan over-tracking atau intensional stop loss.
Kombinasi dua kerangka waktu mungkin kehilangan kesempatan untuk membalikkan posisi dalam waktu singkat.
Optimasi parameter bergantung pada data historis, ada risiko over-fitting.
Tidak mempertimbangkan dampak biaya transaksi.
Solusi yang sesuai:
Menyesuaikan parameter indikator dengan mempertimbangkan validasi kombinasi indikator lainnya.
Optimalkan posisi stop loss berdasarkan data feedback.
Siklus pengujian yang lebih pendek sebagai penilaian tambahan.
Memperluas jangkauan data retrospektif, multi-pasar retrospektif verifikasi.
Termasuk biaya transaksi seperti biaya prosesor, slip point, dan sebagainya.
Strategi ini dapat dioptimalkan dengan cara:
Uji kombinasi dari lebih banyak indikator untuk menemukan kombinasi yang optimal.
Memperkenalkan metode pembelajaran mesin untuk mengoptimalkan parameter secara dinamis.
Mengoptimalkan strategi stop loss dan meningkatkan rasio untung rugi.
Mencoba efek kombinasi dari berbagai siklus waktu.
Sesuaikan Stop Loss dengan jumlah transaksi.
Logika penghitungan biaya dan slip.
Mengembangkan alat pengoptimalan parameter grafis.
Strategi ini memungkinkan penilaian dan entri tren yang lebih akurat melalui indikator overtrend dua kerangka waktu. Mengatur risiko pengendalian stop loss. Logika strategi sederhana dan jelas, mudah untuk diekspansi dan dioptimalkan.
/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator
// strategy("Super Trend 2", overlay=true, default_qty_value=100)
TrendUp = 0.0
TrendDown = 0.0
Trend = 0.0
MTrendUp = 0.0
MTrendDown = 0.0
MTrend = 0.0
res = input(title="Main SuperTrend Time Frame", defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)
tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))
Mclose=security(syminfo.tickerid,res,close)
TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn
MTrendUp:=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown:=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn
Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown
MTrend := Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown
linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")
Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")
plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)
up = Trend == 1 and Trend[1] == -1 and MTrend == 1
down = Trend == -1 and Trend[1] == 1 and MTrend == -1
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)
golong = Trend == 1 and Trend[1] == -1 and MTrend == 1
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1
strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)