calcul de l’ORB de toby crabel sur graphique

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #229378 quote
    christophe11560
    Participant
    Senior

    Bonjour,
    Mon code ne fonctionne pas correctement en intraday.
    – Les zone up et zone dn ne s’affiche pas correctement le jour donné (exemple le matin sur marché US).
    – Les valeurs moyennes minimum décrites ci-dessous ne sont pas correctement restituées sur et sous l’ouverture du jour en intraday.

    Je projette ces zones sur mon graphique en intraday.

    En daily:
    – si la bouge clôture en dessous de l’ouverture: je calcule la différence entre le (haut – ouverture) et (clôture – bas) => je retiens le minimum des 2,
    – si la bouge clôture au dessus de l’ouverture: je calcule la différence entre le (haut – clôture) et (ouverture – bas) => je retiens le minimum des 2,
    – je fais ensuite la moyenne sur 10 jours de ces minimums.

    en intraday, quelques soit l’unité de temps:
    – j’ajoute à l’ouverture du jour cette valeur moyenne (zone up)
    – je retire à l’ouverture du jour cette valeur moyenne (zone dn)

    L’idée, acheter une cassure à la hausse ou à la baisse de ces zones.

    Merci de bien vouloir me dire ce qui ne fonctionne pas correctement. Le calcul de ces zones ne sont pas correctement renvoyé en intraday.

    #229379 quote
    christophe11560
    Participant
    Senior
    defparam calculateonlastbars = 3000
    defparam drawonlastbaronly=true
    ALPHAfond=max(1,alphafond)
    ALPHAfond=50
    timeframe(daily)
    REM TRUE RANGE
    amax=high
    amin=low
    REM Calcul Volatilité journalière minimale par rapport à l'ouverture
    if close<open then
    volathaute=amax-open
    volatbasse=close-amin
    else
    volathaute=amax-close
    volatbasse=open-amin
    endif
    volatmin=min(volatbasse,volathaute) // on veut la plus petite des deux
    REM moyenne volatilité minimale sur 10 jours
    VolatMoy=average[10](volatmin) // on fait la moyenne sur 10 jours de la volatilité minimum des jours de trading précédent la séance en cours.
    rem zone up et dn par rapport à l'ouverture du jour
    ouverture=Dopen(0)
    myouverture=round(ouverture,2)
    ZoneUP= ouverture+VolatMoy
    ZoneDN= ouverture-VolatMoy
    valup=round(zoneup,2)
    valdn=round(zonedn,2)
    
    timeframe(default)
    if intradaybarindex=0 or day<>day[1] then
    startbar=barindex
    startprice=barindex+ 120
    endif
    if islastbarupdate then
    DRAWSEGMENT  (startbar,ouverture,startprice,ouverture) coloured(103,103,103) style (dottedline,3)
    drawrectangle(startbar,ouverture,startprice,valdn) coloured(255,51,51,ALPHAfond) bordercolor(0,0,0,20)
    drawrectangle(startbar,valup,startprice,ouverture) coloured(0,204,0,ALPHAfond) bordercolor(0,0,0,20)
    endif
    return
    
    #229384 quote
    christophe11560
    Participant
    Senior
    defparam calculateonlastbars = 3000
    defparam drawonlastbaronly=true
    ALPHAfond=max(1,alphafond)
    ALPHAfond=50
    timeframe(daily)
    REM TRUE RANGE
    amax=high[1]
    amin=low[1]
    REM Calcul Volatilité journalière minimale par rapport à l'ouverture à partir de la veille
    if close[1]<open[1] then
    volathaute=amax-open[1]
    volatbasse=close[1]-amin
    else
    volathaute=amax-close[1]
    volatbasse=open[1]-amin
    endif
    volatmin=min(volatbasse,volathaute) // on veut la plus petite des deux
    REM moyenne volatilité minimale sur 10 jours
    VolatMoy=average[10](volatmin) // on fait la moyenne sur 10 jours de la volatilité minimum des jours de trading précédent la séance en cours.
    rem zone up et dn par rapport à l'ouverture du jour
    ouverture=Dopen(0)
    myouverture=round(ouverture,2)
    ZoneUP= ouverture+VolatMoy
    ZoneDN= ouverture-VolatMoy
    valup=round(zoneup,2)
    valdn=round(zonedn,2)
    
    timeframe(default)
    if intradaybarindex=0 or day<>day[1] then
    startbar=barindex
    startprice=barindex+ 120
    endif
    if islastbarupdate then
    DRAWSEGMENT  (startbar,ouverture,startprice,ouverture) coloured(103,103,103) style (dottedline,3)
    drawrectangle(startbar,ouverture,startprice,valdn) coloured(255,51,51,ALPHAfond) bordercolor(0,0,0,20)
    drawrectangle(startbar,valup,startprice,ouverture) coloured(0,204,0,ALPHAfond) bordercolor(0,0,0,20)
    endif
    return
    #229463 quote
    Iván González
    Moderator
    Master

    Bonjour, je constate les mêmes résultats avec les bougies de 5 minutes qu'avec les bougies quotidiennes. Je ne comprends pas quel est le problème.

    #229476 quote
    christophe11560
    Participant
    Senior

    Bonjour,
    Quand je met en pièce jointe des photos format jpeg (803ko au total), elle ne sont pas jointes au message après envoi. hier pareil, je ne sais pas pourquoi.
    Là je les remets avec ce message, 2 photos.

    Problème:
    En unité intraday, lorsque j’installe l’indicateur sur le graphique il fonctionne. Puis quelques secondes plus tard les zones colorées disparaissent il ne reste que la ligne en pointillée d’ouverture.

    J’ai fait l’essai suivant:
    1) j’ajoute le texte suivant:

    DRAWTEXT("VolatMoy:#VolatMoy#",BARINDEX+5,ouverture,SansSerif,Bold,20) coloured(0,0,0)

    A l’installation de l’indicateur graphique la valeur volatMoy s’affiche correctement.
    2) Puis lorsque les zones colorées disparaissent au bout de quelques instants, la valeur voltMoy ne se calcule plus. valeur affichée = “n/d”

    Pourquoi?
    Bien à toi

    #229489 quote
    druby
    Participant
    New

    Hello.. had the same result as the one you mentioned, with the appearance of working, but not the disappearance. Try this, it seems to run for up to 4 seconds with 16000 units at 10 bars daily on average, beyond that you alone!

    I manually calculated the required values from the DAX40 by hand and then checked against the values obtained from the code until they matched.

     

    defparam drawonlastbaronly = true
    
    timeframe(daily,updateonclose )
    
    AccMinWikRng = 0
    lookback = 9
    
    for i = 0 to lookback
    
    num = i
    dcl = dClose(num)
    dhi = dhigh(num)
    dlo = dlow(num)
    dop = dopen(num)
    
    candle = 0
    if dop = max(dop,dcl )then
    candle = -1
    else
    candle = 1
    endif
    
    if dcl < dop then
    hiWikRng = dhi - dop
    loWiikRng = dcl - dlo
    else
    hiWkRng = dhi - dcl
    loWikRng = dop - dlo
    endif
    
    minWikRng = min(loWikRng,hiWikRng)
    
    AccMinWikRng = (AccMinWikRng + minWikRng)
    
    next
    
    AveMinWikRng = AccMinWikRng / (lookback+1)
    
    timeframe (default )
    
    daysOp = Dopen(0)
    
    zoneUp = daysOp + AveMinWikRng
    zoneDn = daysOp - AveMinWikRng
    
    if intradaybarindex = 0 then
    startBar = barindex
    endif
    
    
    if islastbarupdate then
    a=50
    drawsegment(startbar,daysOp,barindex + 10,daysOp)coloured(103,103,103) style (dottedline,3)
    
    drawrectangle(startbar,daysOp,barindex + 10,zoneDn) coloured(255,51,51,a) bordercolor(0,0,0,20)
    drawrectangle(startbar,zoneUp,barindex + 10,daysOp) coloured(0,204,0,a)   bordercolor(0,0,0,20)
    endif
    
    return close
    
    // approx timeframe and required bars
    //  > 2min   25 units 10 of lookback values
    //  2 min   200 units 10
    //  1 min   800 units 10
    // 30 sec  2000 units 10
    // 15 sec  4000 units 10
    // 10 sec  9000 units 10
    //  5 sec 16000 units 10
    //  4 sec 16000 units 10
    //  < 4sec unable at lookback
    christophe11560 thanked this post
    #229514 quote
    christophe11560
    Participant
    Senior

    Bonjour Ivan,
    je fais l’essai lundi et je te tiens au courant.
    merci

    #229588 quote
    christophe11560
    Participant
    Senior

    Bonjour Ivan,
    Il doit y avoir une erreur dans le code que tu me proposes.
    Les photographies et valeurs indiquées sur graphique de l’Orb (moyenne sur 10 jours des volat calculés) sont prises pour l’action snowflake code SNOW:
    – La valeur de l’orb en UT 2 min ne correspondant pas à la valeur trouvé en daily
    – la valeur de l’orb en UT 2 min varie en fonction de la valeur de pré ouverture alors quelle devrait être fixe.

    Dans l’attente de te lire

    erreur d’envoi sur la photographie intitulé “orb sur graphique 2min avec zone colorée” => à remplacer par : “ORB calcul classique en daily sans erreur “, la bonne valeur Orb est 1.185 le 11.03.2024.

    #229858 quote
    christophe11560
    Participant
    Senior

    Désolé druby,
    je croyais que le code venait de Ivan le modérateur, excuse moi 😉 et merci pour ton intervention.

    Si vous voyez une solution à mon problème je suis preneur.
    J’ai un problème similaire sur un autre indicateur.

    Ivan, pour quelle raison mon code ne marche pas? il me parait pourtant bien écrit.

    #230300 quote
    christophe11560
    Participant
    Senior

    Bonjour Ivan,
    Pour quelle raison je n’arrive pas à utiliser dans un timeframe intraday, une valeur calculée sur une moyenne de plusieurs jours dans un timeframe Daily comme mon code du post #229384?
    Bien à toi

    #230463 quote
    christophe11560
    Participant
    Senior

    Bonjour à tous,
    J’ai trouvé la correction à apporter à mon code pour qu’il fonctionne correctement en intraday 😉

    L’idée derrière la définition de ces zones par toby Grabel:
    – Une cassure de ces zones par le haut ou le bas est un signal d’achat ou de vente short.
    – Un échec de cassure à la hausse (ou à la baisse) et une traversée de l’ouverture du jour à la baisse (ou à la hausse) indique qu’une inversion est peut être en cours.
    – Si le prix ne s’échappe pas de ces zones notamment la première heure de session (ou en milieu de session pour les inversions de journée) la journée est sans tendance.

    J’espère que cela vous aidera.

    REM ORB DE TOBY GRABEL:
    REM Calcul Volatilité journalière minimale par rapport à l'ouverture à partir de la veille
    dvolatmin1=0
    dvolatmin2=0
    for i = 1 to 10
    if dclose(i)<dopen(i) then
    //volathaute=dhigh(i)-dopen(i)
    //volatbasse=dclose(i)-dlow(i)
    dvolatmin1=dvolatmin1+min(dhigh(i)-dopen(i),dclose(i)-dlow(i)) // on veut la plus petite des deux volatilité Haute et basse
    else
    //volathaute=dhigh(i)-close[1]
    //volatbasse=open[i]-dlow(i)
    dvolatmin2=dvolatmin2+min(dhigh(i)-dclose(i),dopen(i)-dlow(i)) // on veut la plus petite des deux volatilité Haute et basse
    endif
    next
    REM moyenne volatilité minimale sur 10 jours
    VolatMoy=(dvolatmin1+dvolatmin2)/10 // on fait la moyenne sur 10 jours de la volatilité minimum des jours de trading précédent la séance en cours.
    rem zone up et dn par rapport à l'ouverture du jour
    valup=round(Dopen(0)+VolatMoy,2)
    valdn=round(Dopen(0)-VolatMoy,2)
    
    if intradaybarindex=0 or day<>day[1] then
    LongueurTrait=max(1,LongueurTrait)
    LongueurTrait=180
    startbar=barindex-15
    startprice=barindex+ LongueurTrait
    endif
    
    if islastbarupdate then
    AlphaFondOrb=max(1,AlphaFondOrb)
    AlphaFondOrb=50
    drawrectangle(startbar,Dopen(0),startprice,valdn) coloured(255,51,51,AlphaFondOrb) bordercolor(0,0,0,20)
    drawrectangle(startbar,valup,startprice,Dopen(0)) coloured(0,204,0,AlphaFondOrb) bordercolor(0,0,0,20)
    endif
    
    return
    Iván González thanked this post
Viewing 11 posts - 1 through 11 (of 11 total)
  • You must be logged in to reply to this topic.

calcul de l’ORB de toby crabel sur graphique


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
Summary

This topic contains 10 replies,
has 3 voices, and was last updated by christophe11560
1 year, 10 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 03/07/2024
Status: Active
Attachments: 7 files
Logo Logo
Loading...