Stratégie Momentum de RafaelZioni suivant la tendance


Date de création: 2023-12-13 14:59:34 Dernière modification: 2023-12-13 14:59:34
Copier: 0 Nombre de clics: 733
1
Suivre
1621
Abonnés

Stratégie Momentum de RafaelZioni suivant la tendance

Aperçu

La stratégie est basée sur l’indicateur SuperB de Rafael Zioni, qui identifie les tendances à l’aide d’indicateurs de dynamique et permet le suivi automatique des tendances à la hausse et à la baisse.

Principe de stratégie

La stratégie utilise l’indicateur SuperB de Rafael Zioni pour identifier la tendance des prix. L’indicateur SuperB est basé sur la portée des fluctuations des prix, le volume de transactions et le SpreadVol, calculé sur la différence entre le prix d’ouverture et le prix de clôture.

La stratégie consiste à suivre les prix les plus élevés et les prix les plus bas en temps réel pour déterminer le renversement de tendance. Dans une tendance à la hausse, le prix le plus élevé a toujours été élevé et a été jugé comme une hausse continue; lorsque le prix est tombé en dessous d’un certain pourcentage du prix le plus élevé, il est passé à la tendance baissière.

Les avantages

Cette stratégie, combinée à des indicateurs de dynamique pour déterminer la direction de la tendance, puis à un suivi en temps réel des prix les plus élevés et les plus bas, permet d’identifier rapidement les nouvelles directions de tendance, de suivre automatiquement les tendances à la hausse et à la baisse et d’éviter le risque de points de sous-achat et de points de surachat.

L’indicateur SuperB de Rafael Zioni reflète l’intensité et la vitesse des variations des prix, permet de juger avec précision les tendances réelles et de filtrer efficacement les fausses ruptures. Les règles de jugement sont simples et claires, faciles à comprendre et à vérifier.

Il est recommandé de ne faire que des positions multiples pour réduire les coûts de transaction et les pertes de points de glissement liés à des opérations fréquentes.

Les risques

Cette stratégie est susceptible de générer de multiples erreurs de transaction dans les zones de réglage avant la percée. La sensibilité des zones de réglage peut être réduite en optimisant les paramètres.

Les lignes de stop-loss peuvent être déclenchées en cas de fluctuation de la tendance. La marge de stop-loss peut être élargie de manière appropriée pour permettre une plus longue tenue de position.

Il est nécessaire de changer de position en temps opportun. Si vous ne le faites pas en temps opportun, cela peut entraîner des pertes importantes.

Conseils d’optimisation

Optimiser les paramètres de l’indicateur SuperB, trouver une meilleure combinaison de paramètres et améliorer la stabilité de l’indicateur.

Optimiser le facteur de proportion du suivi des prix les plus élevés et les plus bas pour réduire la sensibilité des réactions aux zones de comptage.

Augmentation du délai de tenue des positions afin d’éviter les pertes pendant les chocs de tendance.

Résumer

Cette stratégie utilise l’indicateur SuperB de Rafael Zioni pour déterminer la direction de la tendance des prix et pour déterminer le revirement de tendance en temps réel en suivant les prix les plus élevés et les plus bas, pour réaliser un suivi automatique des tendances à la hausse et à la baisse et éviter le risque de survente. Cette stratégie, combinée à l’indicateur de dynamique pour déterminer la tendance réelle, les règles de jugement sont simples et claires, peuvent être améliorées et optimisées en fonction des recommandations d’optimisation.

Code source de la stratégie
/*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')