RANGE INTRADAY avec fonction drawrectangle

Viewing 15 posts - 1 through 15 (of 36 total)
  • Author
    Posts
  • #200231 quote
    christophe11560
    Participant
    Senior

    Bonjour à tous,
    J’aurais besoin de votre aide pour terminer mon code.
    Type de trading: Intraday
    Je souhaite dessiner deux zones situées de part et d’autre de l’ouverture du jour.
    ces zones sont égales. Je calcule une volatilité moyenne que j’ajoute ou j’enlève à l’ouverture du jour.
    Le zone du haut est verte et celle du bas est rouge.
    Nota: Mon fuseau horaire est défini en ETH pour toutes mes actions quelques soient les marchés.

    Ces 2 zones ne doivent apparaitre que durant la séance du jour en cours afin de ne pas polluer le graphique.

    Le calcul de la volatilité à ajouter ou à enlever à l’ouverture du jour est calculé comme suit:
    //TRUE RANGE
    amax=max(dclose(1),dhigh(0))
    amin=min(dclose(1),dlow(0))
    volathaute=amax[1]-dopen(1) // calcul de la volatilité au dessus de l’ouverture de la veille.
    volatbasse=dopen(1)-amin[1] // calcul de la volatilité en dessous de l’ouverture de la veille.
    volatmin=min(volatbasse,volathaute) // on veut la plus petite des deux

    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.

    Définition des limites des 2 zones décrites plus haut:
    ZoneUP= dopen(0)+VolatMoy
    ZoneDN= dopen(0)-VolatMoy

    Dans l’attente de vous lire 😉
    Merci par avance
    Christophe

    #200270 quote
    Nicolas
    Keymaster
    Master

    Ton calcul de moyenne de la volatilité n’est pas correct puisque tu fais une moyenne sur les 10 bougies du timeframe actuel de ta valeur volatmin, hors tu cherches à faire une moyenne des 10 jours précédents de cette valeur non ?

    #200290 quote
    christophe11560
    Participant
    Senior

    Bonjour Nicolas,
    merci pour ton retour.

    Est ce que je me trompe lorsque j’utilise les fonctions dopen(1) ou dclose(1) ou dlow(1) ou dhigh(1)?

    Lorsque je les utilise, je croyais que cela renvoyait, dans le cas où l’on est dans un timeframe plus petit que le Daily, à une valeur respectivement pour l’ouverture, la fermeture, le bas ou le haut à celle du jour de la veille.

    Dans l’attente de te lire

    #200297 quote
    christophe11560
    Participant
    Senior
    
    
    REM TRUE RANGE
    amax=max(dclose(1),dhigh(0))
    amin=min(dclose(1),dlow(0))
    
    REM Calcul Volatilité journalière minimale par rapport à l'ouverture
    volathaute=amax[1]-dopen(1) // calcul de la volatilité au dessus de l’ouverture de la veille.
    volatbasse=dopen(1)-amin[1] // calcul de la volatilité en dessous de l’ouverture de la veille.
    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 Définition des limites des 2 zones décrites plus haut:
    ZoneUP= dopen(0)+VolatMoy
    ZoneDN= dopen(0)-VolatMoy
    
    
    #200303 quote
    Nicolas
    Keymaster
    Master

    Tu as raison sur le fonctionnement de ces instructions (Dhigh, Dlow, ..)

    Mais si en timeframe 5-minutes tu fais :

    average[10](volatmin)

    tu calcules une moyenne de la valeur volatmin des 10 dernières bougies 5-minutes.

    C’est plus clair ?

    #200307 quote
    christophe11560
    Participant
    Senior

    Ah mince, Je ne savais pas. va falloir que je vérifie mes autres indicateurs…
    Si je comprend bien, une moyenne ou autres (summation, etc…) est réalisé seulement dans le timeframe dans lequel nous sommes, mêmes si les instructions données sont journalières notamment (Dhigh, Dlow, ..).

    Est ce bien ce que tu me dis?
    Et si c’est bien cela, comment je dois l’écrire?

    #200324 quote
    Nicolas
    Keymaster
    Master

    Bien entendu,

    1. dans ton code à aucun moment tu indiques que ta moyenne mobile est à faire sur 10 chandeliers en daily.
    2. tu ne donnes jamais 10 valeurs daily dans ton calcul de moyenne mobile, mais la valeur “volatmin” des 10 derniers chandeliers du timeframe courant qui est calculé avec des valeurs OHLC de la veille uniquement (et jamais jusqu’à 10j en arrière).

    En résumé le code ne peut pas comprendre ce que tu ne codes pas 🙂

    Voici comment cela devrait être formulé selon moi :

    timeframe(daily)
    REM TRUE RANGE
    amax=max(close[1],high[0])
    amin=min(close[1],low[0])
    
    REM Calcul Volatilité journalière minimale par rapport à l'ouverture
    volathaute=amax[1]-open[1] // calcul de la volatilité au dessus de l’ouverture de la veille.
    volatbasse=open[1]-amin[1] // calcul de la volatilité en dessous de l’ouverture de la veille.
    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 Définition des limites des 2 zones décrites plus haut:
    ZoneUP= open[0]+VolatMoy
    ZoneDN= open[0]-VolatMoy
    
    return ZoneUP,ZoneDN
    
    

    Il faudra s’assurer qu’il y a suffisamment d’unités affichées sur le graphique intraday pour permettre un calcul sur les 10 derniers jours.

    (non testé)

    #200325 quote
    christophe11560
    Participant
    Senior

    ok, merci
    Dans ma demande initiale je souhaitais pouvoir dessiner deux zones situées de part et d’autre de l’ouverture du jour.
    La zone du haut est verte et celle du bas est rouge.
    Nota: Mon fuseau horaire est défini en ETH pour toutes mes actions quelques soient les marchés.
    Ces 2 zones ne doivent apparaitre que durant la séance du jour en cours afin de ne pas polluer le graphique.

    Comment peut on codifier mon besoin par rapport au code précédent?

    #200332 quote
    Nicolas
    Keymaster
    Master

    Un rectangle ayant besoin de 4 coordonnées (voir DRAWRECTANGLE), voici comment les créer avec tes variables:

    defparam drawonlastbaronly=true
    
    timeframe(daily)
    REM TRUE RANGE
    amax=max(close[1],high[0])
    amin=min(close[1],low[0])
    
    REM Calcul Volatilité journalière minimale par rapport à l'ouverture
    volathaute=amax[1]-open[1] // calcul de la volatilité au dessus de l’ouverture de la veille.
    volatbasse=open[1]-amin[1] // calcul de la volatilité en dessous de l’ouverture de la veille.
    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 Définition des limites des 2 zones décrites plus haut:
    ZoneUP= open[0]+VolatMoy
    ZoneDN= open[0]-VolatMoy
    
    timeframe(default)
    if intradaybarindex=0 then 
    startbar=barindex
    startprice=open
    endif 
    
    if islastbarupdate then 
    drawrectangle(startbar,startprice,datetobarindex(20301231),zoneup) coloured("green",50) bordercolor("green",0)
    drawrectangle(startbar,startprice,datetobarindex(20301231),zonedn) coloured("red",50) bordercolor("red",0)
    endif 
    
    return //ZoneUP as "zoneup",ZoneDN as "zonedn",volatmoy
    intraday-range.png intraday-range.png
    #200356 quote
    christophe11560
    Participant
    Senior

    Super Cà marche avec les UT de temps classique. merci nicolas

    Par contre ca ne marche pas sur mes graphiques en TICKS.
    Aurais tu une idée?

    😉

    #200375 quote
    Nicolas
    Keymaster
    Master

    Pas assez d’unités affichées pour obtenir 10j de data du timeframe daily.

    christophe11560 thanked this post
    #200404 quote
    christophe11560
    Participant
    Senior

    Nicolas,

    Je me suis mal  exprimé, je travaille sur des graphiques en UT 250  ticks.

    Après vérification, j’ai largement les 10 jours d’historique. J’ai plusieurs mois.

    Pour quelle raison cela ne fonctionne pas?

    je te sois la fenêtre d’information du logiciel

    N3dDH391vx.png N3dDH391vx.png
    #200413 quote
    Nicolas
    Keymaster
    Master

    Oui c’est juste, comme expliqué dans la fenêtre on ne peut pas mélanger les timeframes non liés au temps (ticks) avec des timeframes ordinaires.

    #200429 quote
    christophe11560
    Participant
    Senior

    Les stratégies de breakout basées sur des valeurs journalières ne s’appliquent pas à des graphiques en ticks.

    Mince! C’est dommage de ne pas pouvoir le faire …

    Cà m’oblige à changer ma méthodologie de travail, galère.

     

    A plus

    #200433 quote
    Nicolas
    Keymaster
    Master

    Non, tu peux recalculer autrement ta moyenne des 10 jours, plus complexe mais réalisable.

    Chaque jour on incrémente une colonne d’un tableau dans laquelle on stocke la valeur de ton calcul.

    A la fin tu fais une simple boucle et une moyenne arithmétique sur les 10 dernières colonnes.

Viewing 15 posts - 1 through 15 (of 36 total)
  • You must be logged in to reply to this topic.

RANGE INTRADAY avec fonction drawrectangle


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
Summary

This topic contains 35 replies,
has 3 voices, and was last updated by christophe11560
2 years, 11 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 09/06/2022
Status: Active
Attachments: 6 files
Logo Logo
Loading...