Strategi ini didasarkan pada indikator SuperB yang dibuat oleh Rafael Zioni. Ini mengidentifikasi tren melalui indikator momentum dan secara otomatis melacak tren naik dan turun, yang termasuk dalam strategi tren berikut.
Strategi ini menggunakan indikator SuperB yang dibuat oleh RafaelZioni untuk mengidentifikasi tren harga. Indikator SuperB didasarkan pada rentang fluktuasi harga, volume perdagangan dan perbedaan harga antara harga buka dan tutup untuk menghitung indikator SpreadVol. Indikator SpreadVol mencerminkan karakteristik momentum harga. Strategi ini menggunakan rata-rata bergerak dan standar deviasi indikator SpreadVol untuk menentukan ambang batas. Ketika SpreadVol berada di atas rel atas, itu adalah tren kenaikan. Ketika di bawah rel bawah, itu adalah tren penurunan.
Strategi ini menilai pembalikan tren secara real time dengan melacak harga tinggi dan rendah. Dalam tren naik, titik tertinggi baru terus dibuat, menunjukkan kenaikan yang berkelanjutan. Ketika harga pecah di bawah harga maksimum dengan persentase tertentu, itu berubah menjadi tren menurun. Metode penilaian serupa dalam tren menurun. Ini memungkinkan penilaian tepat waktu titik pembalikan tren.
Strategi ini menggabungkan indikator momentum untuk menentukan arah tren, dan kemudian melacak harga tertinggi dan terendah secara real time, yang dapat dengan cepat mengidentifikasi arah tren baru dan secara otomatis melacak tren naik dan turun, menghindari risiko kehilangan titik beli dan titik overbuy.
Indikator RafaelZioni's SuperB mencerminkan kekuatan dan kecepatan perubahan harga dan dapat secara akurat menentukan tren sejati, secara efektif menyaring pecah palsu.
Ini hanya melakukan posisi panjang untuk mengurangi biaya perdagangan dan kerugian slippage yang disebabkan oleh operasi yang sering.
Strategi ini rentan terhadap beberapa perdagangan palsu di daerah konsolidasi sebelum pecah. Parameter dapat dioptimalkan untuk mengurangi sensitivitas ke daerah konsolidasi.
Garis stop loss cenderung dipicu selama kejutan tren.
Ketika beralih dari posisi long ke posisi short, posisi harus ditukar tepat waktu.
Mengoptimalkan parameter indikator SuperB untuk menemukan kombinasi parameter yang lebih baik dan meningkatkan stabilitas indikator.
Mengoptimalkan faktor rasio pelacakan harga tertinggi dan terendah untuk mengurangi sensitivitas ke area konsolidasi.
Meningkatkan kriteria waktu ditahan untuk menghindari berhenti selama kejutan tren.
Strategi ini menggunakan indikator SuperB yang dikembangkan oleh RafaelZioni untuk menentukan arah tren harga, dan menilai pembalikan tren dengan melacak harga tinggi dan rendah secara real time, mewujudkan pelacakan otomatis tren naik dan turun, menghindari kehilangan titik beli dan risiko overbuy. Ini termasuk strategi momentum dengan karakteristik mengikuti tren. Strategi ini menggabungkan indikator momentum untuk menentukan tren sejati dengan aturan yang sederhana dan jelas. Ini dapat ditingkatkan dan dioptimalkan lebih lanjut sesuai dengan saran optimasi dan layak untuk diteliti dan diterapkan.
/*backtest start: 2023-01-01 00:00:00 end: 2023-08-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle='SuperB', title='SuperB By RafaelZioni', overlay=true) long_only = input(title="Only Long?", defval=true) hilow = ((high - low)*100) openclose = ((close - open)*100) vol = (volume / hilow) spreadvol = (openclose * vol) VPT = spreadvol + cum(spreadvol) window_len = 28 v_len = 14 price_spread = stdev(high-low, window_len) vp = spreadvol + cum(spreadvol) smooth = sma(vp, v_len) v_spread = stdev(vp - smooth, window_len) shadow = (vp - smooth) / v_spread * price_spread out = shadow > 0 ? high + shadow : low + shadow // len = input(10) vpt=ema(out,len) // INPUTS // st_mult = input(1, title = ' Multiplier', minval = 0, maxval = 100, step = 0.01) st_period = input(10, title = ' Period', minval = 1) // CALCULATIONS // up= vpt - (st_mult * atr(st_period)) dn = vpt + (st_mult * atr(st_period)) c5=close // factor = input(title="Factor", defval=0.05, minval=0.01, maxval=5, step=0.01, type=input.float) hb = 0.00 ,hb := nz(hb[1]) hl = 0.000, hl := nz(hl[1]) lb = 0.00 ,lb := nz(lb[1]) l1 = 0.000,l1 := nz(l1[1]) c = 0 c := nz(c[1]) + 1 trend = 0,trend := nz(trend[1]),n = dn,x =up if barstate.isfirst c := 0 lb := n hb := x l1 := c5 hl := c5 hl if c == 1 if x >= hb[1] hb := x hl := c5 trend := 1 trend else lb := n l1 := c5 trend := -1 trend if c > 1 if trend[1] > 0 hl := max(hl[1], c5) if x >= hb[1] hb := x hb else if n < hb[1] - hb[1] * factor lb := n l1 := c5 trend := -1 trend else l1 := min(l1[1], c5 ) if n <= lb[1] lb := n lb else if x > lb[1] + lb[1] * factor hb := x hl := c5 trend := 1 trend v = trend == 1 ? hb : trend == -1 ? lb : na plot(v, color=trend == 1 ? color.blue : color.yellow, style=plot.style_circles, linewidth=1, title="trend", transp=0, join=true) // long = trend == 1 and trend[1] == -1 short = trend == -1 and trend[1] == 1 // last_long = 0.0 last_short = 0.0 last_long := long ? time : nz(last_long[1]) last_short := short ? time : nz(last_short[1]) buy = crossover(last_long, last_short) sell = crossover(last_short, last_long) /////////////// Positions ////////////// if long strategy.entry("Buy", long=true) if long_only == false strategy.close("Sell") if short if long_only == false strategy.entry("Sell", long=false) strategy.close("Buy") /////////////// Plotting /////////////// plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0) //plot for buy icon plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0) /////////////// Alerts /////////////// alertcondition(buy, title='buy', message='Buy') alertcondition(sell, title='sell', message='Sell')