
Strategi ini berdasarkan kepada indikator SuperB Rafael Zioni, mengenal pasti trend melalui indikator momentum, untuk menjejaki secara automatik trend menaik dan turun, dan merupakan strategi jenis pengesanan trend.
Strategi ini menggunakan indikator SuperB oleh Rafael Zioni untuk mengenal pasti trend harga. Indikator SuperB adalah SpreadVol yang dikira berdasarkan rentang turun naik harga, jumlah transaksi dan perbezaan antara harga pembukaan dan harga penutupan. Indikator SpreadVol mencerminkan ciri-ciri pergerakan harga.
Strategi ini membuat keputusan mengenai perubahan trend secara real-time dengan mengesan harga tertinggi dan harga terendah. Dalam trend menaik, harga tertinggi sentiasa tinggi dan dinilai sebagai terus meningkat; apabila harga jatuh di bawah paras tertentu dari harga tertinggi, ia beralih ke trend menurun. Dalam trend menurun, kaedah penilaian serupa.
Strategi ini digabungkan dengan indikator momentum untuk menentukan arah trend, dan kemudian dengan pelacakan harga tertinggi dan terendah dalam masa nyata, dapat dengan cepat mengenal pasti arah trend baru, untuk mengikuti trend naik dan turun secara automatik, dan mengelakkan risiko kehilangan titik beli dan titik beli.
Penunjuk SuperB RafaelZioni mencerminkan kekuatan dan kelajuan perubahan harga, dapat menilai tren sebenar dengan tepat, menapis penembusan palsu dengan berkesan. Peraturan penilaian sederhana dan jelas, mudah difahami dan disahkan.
Hanya melakukan kedudukan berbilang kepala, mengurangkan kos perdagangan dan kehilangan titik tergelincir yang disebabkan oleh operasi yang kerap.
Strategi ini mudah menyebabkan banyak kesalahan perdagangan di kawasan penukaran sebelum penembusan. Ia boleh mengurangkan kepekaan kawasan penukaran dengan mengoptimumkan parameter.
Apabila trend bergoyang, garis hentian mudah dicetuskan. Anda boleh meluaskan julat hentian anda dengan betul untuk memegang kedudukan lebih lama.
Apabila bertukar ruang, anda perlu bertukar kedudukan tepat pada masanya. Jika bertukar tidak cukup tepat pada masanya, ia boleh membawa kerugian yang lebih besar.
Mengoptimumkan parameter untuk penunjuk SuperB, mencari kombinasi parameter yang lebih baik, meningkatkan kestabilan penunjuk.
Mengoptimumkan faktor perkadaran untuk mengesan harga tertinggi dan harga terendah, mengurangkan sensitiviti tindak balas terhadap kawasan yang disusun.
Meningkatkan piawaian tempoh pegangan untuk mengelakkan kerugian semasa kejatuhan.
Strategi ini menggunakan indikator SuperB RafaelZioni untuk menentukan arah trend harga, dan dengan mengesan harga tertinggi dan harga terendah dalam masa nyata untuk menentukan perubahan trend, untuk menjejaki trend naik dan turun secara automatik, untuk mengelakkan risiko overbought, adalah strategi momentum jenis trend tracking. Strategi ini digabungkan dengan indikator momentum untuk menentukan trend sebenar, peraturan penghakiman mudah dan jelas, boleh diperbaiki dan dioptimumkan lebih lanjut berdasarkan cadangan pengoptimuman, bernilai penyelidikan dan aplikasi.
/*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')