
이 전략은 라파엘 지오니의 슈퍼B 지표에 기반하여 동력 지표를 통해 트렌드를 식별하고, 상승 추세와 하락 추세를 자동으로 추적하는 트렌드 추적 유형 전략에 속한다.
이 전략은 라파엘 지오니의 SuperB 지표를 사용하여 가격 트렌드를 식별한다. SuperB 지표는 가격 변동 범위, 거래량 및 개시 가격과 종료 가격 사이의 가격 차이를 기반으로 계산되는 SpreadVol 지표이다. SpreadVol 지표는 가격의 운동 양 특성을 반영한다. 이 전략은 SpreadVol 지표의 이동 평균과 표준 차이를 사용하여 경치를 결정한다. SpreadVol 지표가 오르면 상승 추세이며, 하락하면 하락 추세이다.
이 전략은 최고 가격 최저 가격을 추적하여 실시간으로 트렌드 전환을 판단한다. 상승 추세에서 최고 가격은 항상 혁신 높은 것으로 판단하여 지속 상승으로 판단한다. 가격이 최고 가격의 일정한 비율을 떨어지면 하향 추세로 전환한다. 하향 추세에서 판단 방법은 비슷하다. 이렇게 트렌드 전환점을 적시에 판단 할 수 있다.
이 전략은 동량 지표와 결합하여 트렌드 방향을 판단하고, 최고 가격과 최저 가격의 실시간 추적을 통해 새로운 트렌드 방향을 신속하게 식별하고, 상승과 하락의 트렌드를 자동으로 추적하고, 미스 바이 포인트와 오버 바이 포인트의 위험을 피합니다.
라파엘 지오니의 슈퍼B 지표는 가격 변화의 강도와 속도를 반영하여 실제 트렌드를 정확하게 판단하고 가짜 돌파구를 효과적으로 필터링 할 수 있습니다. 판단 규칙은 간단하고 명확하며 이해하기 쉽고 검증 할 수 있습니다.
다중 포지션으로만 거래하는 것은 거래의 빈도와 지점 손실을 줄일 수 있습니다.
이 전략은 돌파하기 전의 정렬 영역에 대해 여러 번의 오작동 거래를 유발할 수 있다. 파라미터를 최적화하여 정렬 영역에 대한 민감성을 줄일 수 있다.
트렌드 흔들림에 있어서는, 손해 줄이 쉽게 촉발된다. 손해 줄이 범위를 적절히 넓힐 수 있어 더 오래 지분을 유지할 수 있다.
다공간 전환 시에는 적시에 포지션을 전환해야 한다. 적시에 전환하지 않으면 큰 손실을 초래할 수 있다.
슈퍼B 지표의 파라미터를 최적화하여 더 나은 파라미터 조합을 찾고 지표의 안정성을 향상시킨다.
최상위 가격과 최저 가격 추적의 비율 인자를 최적화하고, 평정 영역에 대한 반응 민감도를 낮춘다.
트렌드 흔들림 동안 손실을 방지하기 위해 지분 기간 기준을 높여주세요.
이 전략은 RafaelZioni의 SuperB 지표를 사용하여 가격 트렌드 방향을 판단하고 최고 가격과 최저 가격을 실시간으로 판단하여 트렌드 전환을 판단하여 상승 및 하락의 트렌드를 자동으로 추적하여 과매매의 위험을 피하고 트렌드 추적 유형의 동력 전략에 속한다. 이 전략은 동력 지표와 결합하여 실제 트렌드를 판단하고 판단 규칙은 간단하고 명확하며 최적화 권고에 따라 추가 개선 및 최적화를 할 수 있으며 연구 및 응용 가치가 있습니다.
/*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')