Trendfolgende RafaelZioni Momentum-Strategie


Erstellungsdatum: 2023-12-13 14:59:34 zuletzt geändert: 2023-12-13 14:59:34
Kopie: 0 Klicks: 733
1
konzentrieren Sie sich auf
1621
Anhänger

Trendfolgende RafaelZioni Momentum-Strategie

Überblick

Die Strategie basiert auf Rafael Zioni’s SuperB-Indikator und identifiziert Trends durch Dynamik-Indikatoren und ermöglicht die automatische Verfolgung von Aufwärtstrends und Abwärtstrends. Sie ist eine Trend-Tracking-Strategie.

Strategieprinzip

Die Strategie verwendet Rafael Zioni’s SuperB-Indikator, um einen Preistrend zu identifizieren. Der SuperB-Indikator basiert auf der Berechnung des Preisschwankungsbereichs, des Transaktionsvolumens und der Differenz zwischen dem Eröffnungs- und dem Schlusskurs. Der SpreadVol-Indikator spiegelt die dynamischen Merkmale des Preises wider.

Die Strategie beurteilt Trendwechsel in Echtzeit, indem sie Höchst- und Tiefpreise verfolgt. In einem Aufwärtstrend ist der Höchstpreis immer innovativ hoch und wird als anhaltend hoch beurteilt; wenn der Preis unter einem bestimmten Prozentsatz des Höchstpreises fällt, wird er in einen Abwärtstrend umgewandelt. In einem Abwärtstrend ist die Beurteilung ähnlich.

Vorteile

Die Strategie kombiniert Dynamik-Indikatoren, um die Richtung des Trends zu bestimmen, und die Real-Time-Verfolgung der Höchst- und Tiefstpreise, um neue Trendrichtungen schnell zu identifizieren, die automatische Verfolgung von Auf- und Abwärtstrends zu ermöglichen und das Risiko von Miss-Buy-Punkten und Überkaufpunkten zu vermeiden.

Rafael Zioni’s SuperB-Indikator spiegelt die Stärke und Geschwindigkeit von Preisveränderungen wider, kann die wahre Tendenz genau bestimmen und filtert effektiv falsche Durchbrüche. Die Beurteilungsregeln sind einfach und klar, leicht zu verstehen und zu überprüfen.

Es ist wichtig, dass Sie nur mehrere Positionen einnehmen, um die Transaktionskosten und den Verlust von Schlupfpunkten zu reduzieren, die durch häufige Operationen entstehen.

Die Gefahr

Diese Strategie ist anfällig für mehrfache Fehlverhandlungen in den vor dem Durchbruch berechneten Berechnungsbereichen. Die Empfindlichkeit für die Berechnungsbereiche kann durch Optimierung der Parameter verringert werden.

Die Stop-Line kann leicht ausgelöst werden, wenn der Trend schwankt. Der Stop-Line-Bereich kann entsprechend erweitert werden, um eine längere Haltedauer zu ermöglichen.

Bei einer Überschiebung ist es notwendig, die Positionen rechtzeitig zu wechseln. Wenn Sie nicht rechtzeitig wechseln, kann dies zu größeren Verlusten führen.

Optimierungsvorschläge

Optimierung der Parameter des SuperB-Indikators, Suche nach einer besseren Kombination von Parametern, Verbesserung der Stabilität des Indikators.

Optimierung der Prozentsatzfaktoren für die Nachverfolgung der Höchst- und Tiefstpreise und Verringerung der Reaktionsempfindlichkeit auf die Berechnungszone.

Erhöhung der Haltungsdauer, um Verluste bei Trendschwankungen zu vermeiden.

Zusammenfassen

Die Strategie nutzt die SuperB-Indikatoren von Rafael Zioni, um die Richtung der Preisentwicklung zu bestimmen, und um die Trendwende in Echtzeit zu bestimmen, indem die Höchst- und Tiefpreise verfolgt werden. Die automatische Verfolgung von Auf- und Abwärtstrends, um das Risiko eines Überkaufs zu vermeiden, gehört zu den Dynamikstrategien des Trendverfolgungstyps. Die Strategie kombiniert mit Dynamikindikatoren, um die wahre Tendenz zu bestimmen.

Strategiequellcode
/*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')