Diese Strategie basiert auf dem von Rafael Zioni erstellten SuperB-Indikator, der Trends anhand von Momentum-Indikatoren identifiziert und automatisch Auf- und Abwärtstrends der Trendfolgestrategie verfolgt.
Die Strategie verwendet den von RafaelZioni erstellten SuperB-Indikator, um Preistrends zu identifizieren. Der SuperB-Indikator basiert auf dem Preisschwankungsbereich, dem Handelsvolumen und der Preisdifferenz zwischen den offenen und schließenden Preisen, um den SpreadVol-Indikator zu berechnen. Der SpreadVol-Indikator spiegelt die Dynamikmerkmale der Preise wider. Diese Strategie verwendet den gleitenden Durchschnitt und die Standardabweichung des SpreadVol-Indikators, um Schwellenwerte zu bestimmen.
Die Strategie beurteilt Trendumkehrungen in Echtzeit, indem sie hohe und niedrige Preise verfolgt. Bei einem Aufwärtstrend werden weiterhin neue Höchststände erzielt, was auf einen anhaltenden Anstieg hinweist. Wenn der Preis um einen bestimmten Prozentsatz unter den maximalen Preis fällt, wird er zu einem Abwärtstrend. Die Beurteilungsmethode ist ähnlich bei einem Abwärtstrend. Dies ermöglicht zeitnahe Beurteilungen von Trendumkehrpunkten.
Die Strategie kombiniert Dynamikindikatoren, um die Trendrichtung zu bestimmen, und verfolgt dann die höchsten und niedrigsten Preise in Echtzeit, die schnell neue Trendrichtungen identifizieren und automatisch Auf- und Abwärtstrends verfolgen können, wodurch die Risiken verpasster Kaufpunkte und Überkaufpunkte vermieden werden.
Der SuperB-Indikator von RafaelZioni spiegelt die Stärke und Geschwindigkeit der Preisänderungen wider und kann die wahren Trends genau bestimmen und falsche Ausbrüche effektiv filtern.
Es handelt sich nur um Long-Positionen, um die Handelskosten und Schlupfverluste durch häufige Geschäfte zu reduzieren.
Die Strategie ist anfällig für mehrere falsche Trades im Konsolidierungsbereich vor dem Ausbruch.
Die Stop-Loss-Linie kann bei Trendschokken ausgelöst werden, wobei der Stop-Loss-Bereich für längere Halteperioden angemessen entspannt werden kann.
Bei der Umstellung zwischen Long und Short müssen Positionen rechtzeitig umgestellt werden. Wenn die Umstellung nicht rechtzeitig genug erfolgt, kann dies zu größeren Verlusten führen.
Optimierung der Parameter des SuperB-Indikators, um bessere Parameterkombinationen zu finden und die Stabilität des Indikators zu verbessern.
Optimierung des Tracking-Ratio-Faktors der höchsten und niedrigsten Preise, um die Empfindlichkeit gegenüber Konsolidierungszonen zu verringern.
Erhöhen Sie die Kriterien für die Aufbewahrungszeit, um zu vermeiden, dass Sie bei Trendschokken ausgeschlossen werden.
Diese Strategie nutzt den von RafaelZioni entwickelten SuperB-Indikator, um die Kursentwicklungsrichtung zu bestimmen, und beurteilt Trendumkehrungen, indem sie hohe und niedrige Preise in Echtzeit verfolgt, automatische Nachverfolgung von Auf- und Abwärtstrends realisiert, fehlende Kaufpunkte und Überkaufrisiken vermeidet. Sie gehört zu einer Momentumstrategie mit Trendfolgegegesprächen. Diese Strategie kombiniert Momentumindikatoren, um wahre Trends mit einfachen und klaren Regeln zu bestimmen. Sie kann entsprechend den Optimierungsvorschlägen weiter verbessert und optimiert werden und lohnt sich zu recherchieren und anzuwenden.
/*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')