Rafael Zioni Momentum Trend nach der Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-13 14:59:34
Tags:

img

Übersicht

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.

Strategie Logik

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.

Vorteile

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.

Risiken

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.

Optimierungsvorschläge

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.

Zusammenfassung

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')

Mehr