Raphaël Zioni Tendance à la dynamique à la suite de la stratégie

Auteur:ChaoZhang est là., Date: 2023-12-13 14:59:34 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie est basée sur l'indicateur SuperB créé par Rafael Zioni. Il identifie les tendances à travers des indicateurs de dynamique et suit automatiquement les tendances à la hausse et à la baisse, appartenant à la stratégie de tendance suivante.

La logique de la stratégie

La stratégie utilise l'indicateur SuperB créé par RafaelZioni pour identifier les tendances des prix. L'indicateur SuperB est basé sur la plage de fluctuation des prix, le volume de négociation et la différence de prix entre les prix d'ouverture et de fermeture pour calculer l'indicateur SpreadVol. L'indicateur SpreadVol reflète les caractéristiques de l'élan des prix.

La stratégie juge les renversements de tendance en temps réel en suivant les prix élevés et bas. Dans une tendance à la hausse, de nouveaux sommets continuent d'être atteints, indiquant une hausse soutenue. Lorsque le prix dépasse le prix maximum d'un certain pourcentage, il se transforme en tendance à la baisse. La méthode de jugement est similaire dans une tendance à la baisse. Cela permet des jugements opportuns des points d'inversion de tendance.

Les avantages

La stratégie combine des indicateurs de dynamique pour déterminer la direction de la tendance, puis suit les prix les plus élevés et les plus bas en temps réel, ce qui permet d'identifier rapidement de nouvelles directions de tendance et de suivre automatiquement les tendances à la hausse et à la baisse, évitant ainsi les risques de manquer des points d'achat et des points de surachat.

L'indicateur SuperB de Rafael Zioni reflète la force et la vitesse des variations de prix et peut déterminer avec précision les vraies tendances, filtrant efficacement les fausses ruptures.

Il ne négocie que des positions longues pour réduire les coûts de négociation et les pertes par glissement causées par des opérations fréquentes.

Les risques

La stratégie est sujette à de multiples faux trades dans la zone de consolidation avant la rupture.

La ligne de stop loss est susceptible d'être déclenchée lors de chocs de tendance.

Lorsque vous passez d'une position longue à une position courte, il est nécessaire de changer de position en temps opportun.

Suggestions d'optimisation

Optimiser les paramètres de l'indicateur SuperB pour trouver de meilleures combinaisons de paramètres et améliorer la stabilité de l'indicateur.

Optimiser le coefficient de suivi des prix les plus élevés et les plus bas afin de réduire la sensibilité aux zones de consolidation.

Augmenter les critères de temps de rétention pour éviter d'être arrêté pendant les chocs de tendance.

Résumé

Cette stratégie utilise l'indicateur SuperB développé par RafaelZioni pour déterminer la direction de la tendance des prix, et juge les renversements de tendance en suivant les prix hauts et bas en temps réel, en réalisant le suivi automatique des tendances haussières et baissières, en évitant les points d'achat manquants et les risques de surachat.


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

Plus de