
Strategi ini didasarkan pada indikator SuperB Rafael Zioni, dan mengidentifikasi tren melalui indikator momentum, untuk melakukan pelacakan otomatis terhadap tren naik dan turun, dan merupakan strategi jenis pelacakan tren.
Strategi ini menggunakan indikator SuperB dari Rafael Zioni untuk mengidentifikasi tren harga. Indikator SuperB didasarkan pada rentang fluktuasi harga, volume transaksi dan SpreadVol yang dihitung berdasarkan selisih antara harga pembukaan dan harga penutupan.
Strategi ini melakukan pembiaran tren dengan melacak harga tertinggi dan harga terendah secara real time. Dalam tren naik, harga tertinggi selalu tinggi dan dinilai sebagai terus meningkat; Ketika harga jatuh di bawah harga tertinggi, beralih ke tren menurun. Dalam tren turun, metode penilaian serupa.
Strategi ini dikombinasikan dengan indikator momentum untuk menentukan arah tren, kemudian dengan pelacakan real-time harga tertinggi dan terendah, dapat dengan cepat mengidentifikasi arah tren baru, melakukan pelacakan otomatis terhadap tren naik dan turun, menghindari risiko kehilangan titik beli dan titik beli.
Indikator SuperB Rafael Zioni mencerminkan intensitas dan kecepatan perubahan harga, dapat dengan akurat menilai tren nyata, dengan efektif memfilter terobosan palsu. Aturan penilaian sederhana dan jelas, mudah dipahami dan diverifikasi.
Hanya melakukan posisi multihead, mengurangi biaya transaksi dan kehilangan slippage yang disebabkan oleh operasi yang sering.
Strategi ini cenderung menghasilkan beberapa kali kesalahan perdagangan di area perhitungan sebelum terobosan. Hal ini dapat dilakukan dengan mengoptimalkan parameter untuk mengurangi sensitivitas pada area perhitungan.
Pada saat tren bergejolak, garis stop loss mudah dipicu. Anda dapat melebarkan jangkauan stop loss dengan tepat agar dapat memegang posisi lebih lama.
Jika Anda tidak cukup cepat, Anda dapat membawa kerugian yang lebih besar.
Mengoptimalkan parameter indikator SuperB, mencari kombinasi parameter yang lebih baik, meningkatkan stabilitas indikator.
Mengoptimalkan faktor proporsional untuk pelacakan harga tertinggi dan harga terendah, mengurangi sensitivitas respons terhadap area perhitungan.
Meningkatkan standar waktu memegang posisi untuk menghindari kerugian selama tren bergejolak.
Strategi ini menggunakan indikator SuperB RafaelZioni untuk menentukan arah tren harga dan untuk menentukan pembalikan tren secara real-time dengan melacak harga tertinggi dan terendah, untuk melakukan pelacakan otomatis pada tren naik dan turun, menghindari risiko overbought, dan merupakan strategi momentum dari jenis pelacakan tren. Strategi ini dikombinasikan dengan indikator momentum untuk menentukan tren yang sebenarnya, aturan penghakiman yang sederhana dan jelas, dapat ditingkatkan dan dioptimalkan lebih lanjut sesuai dengan saran optimasi, 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')