RANGE INTRADAY avec fonction drawrectangle

Viewing 6 posts - 31 through 36 (of 36 total)
  • Author
    Posts
  • #202038 quote
    JC_Bywan
    Moderator
    Master

    Pour le code en ticks, en amont du calcul de volatmoy avec tableaux, le commentaire du post #200701 se traduira par la modification suivante en créant amaxhier et aminhier pour corriger ton bug dans volathaute et volatbasse afin de correspondre à amax[1] et amin[1] du code en ut jour.

    D’autre part, dans le cas des cfd h24 pour être sûr d’avoir exactement les mêmes open de journée en ticks que celles retournées par le mot-clé dopen(), j’ai remplacé les recherches de changement de dates avec un today<>today[1] (parenthèse: ok à la date du post, je reste juste prudent sur today qui a déjà changé de comportement lors d’une version précédente, au cas où le post remonte dans le futur et que l’ancien comportement soit éventuellement revenu entretemps)

    defparam drawonlastbaronly=true
    iatr=exponentialaverage[100](tr)
    REM TRUE RANGE
    amax=max(dclose(1),dhigh(0))
    amin=min(dclose(1),dlow(0))
    
    if today<>today[1] then
     amaxhier=amax[1]
     aminhier=amin[1]
     ouvhier=ouvjour
     ouvjour=open
    endif
    
    REM Calcul Volatilité journalière minimale par rapport à l'ouverture
    volathaute=amaxhier-ouvhier // calcul de la volatilité au dessus de l’ouverture de la veille.
    volatbasse=ouvhier-aminhier // 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
    if today<>today[1] then//if opendate<>opendate[1] then
     $memo[lastset($memo)+1]=volatmin
    endif
    if lastset($memo)>=10 then
     Volatcumu=0
     For i= lastset($memo)-9 to lastset($memo)
      Volatcumu= Volatcumu+$memo[i]
     next
     VolatMoy=Volatcumu/10
    endif
    
    REM Définition des limites des 2 zones décrites plus haut:
    ZoneUP= dopen(0)+VolatMoy
    ZoneDN= dopen(0)-VolatMoy
    valup=round(zoneup,5)
    valdn=round(zonedn,5)
    ouverture=round(dopen(0),5)
    
    if intradaybarindex=0 or day<>day[1] then
    startbar=barindex
    startprice=open
    endif
    
    if islastbarupdate then
    ALPHAfond=25
    drawrectangle(startbar,startprice,barindex,zoneup) coloured(0,204,0,ALPHAfond) bordercolor(0,0,0,20)
    DRAWTEXT("#valup#",BARINDEX-3,valup+1*iatr,SansSerif,Bold,14) coloured(51,102,255)
    drawrectangle(startbar,startprice,barindex,zonedn) coloured(255,51,51,ALPHAfond) bordercolor(0,0,0,20)
    DRAWTEXT("#valdn#",BARINDEX-3,valdn-1*iatr,SansSerif,Bold,14) coloured(204,0,0)
    DRAWTEXT("#ouverture#",BARINDEX-3,ouverture-1*iatr,SansSerif,Bold,14) coloured(0,0,0)
    endif
    
    return
    #202039 quote
    JC_Bywan
    Moderator
    Master

    (et j’ai oublié de préciser, il faut bien sûr s’assurer que l’historique en ticks comporte au moins les 10 changements de date pour que volatmoy existe)

    #205201 quote
    christophe11560
    Participant
    Senior

    Bonjour JC,
    Désolé de ne pas vous avoir donné de réponse avant, j’ai dû m’absenter. Et merci pour ton retour.
    Je n’ai pas encore tester le code.

    Fonctionne t’il en UT minutes ou horaires?
    Je te tiens au courant pour le code

    christophe

    #211920 quote
    christophe11560
    Participant
    Senior

    Bonjour Nicolas et JC BYWAN,
    après la réinstallation de PRT, le code que l’on a établi ensemble pour la version UT min fonctionne pour partie. Ce qui est une bonne nouvelle ! parce qu’il ne reste plus que des problèmes de mise en forme sur graphique.
    En effet, le calcul est bon pour les zones Up et Dn. C’est à dire que Les valeurs Journalières sont bien les mêmes que celle que l’on a en UT min. OUFF!!!

    Mes problèmes de présentation sont les suivants: (voir photographie jointe UT 2 min, 1) 2) et 3) sur photo):
    – les zones UP et Zone DN ne se tracent automatiquement à l’ouverture du marché
    – 1) Si je touche une variable du code sur la page de configuration de l’indicateur les zones apparaissent sur les bougies qui se sont présentes depuis l’ouverture. 2) Puis la zone ne suit plus les nouvelles bougies à l’avancement du trade.
    – 3) la valeur de l’ouverture s’incrémente à chaque nouvelle bougie. Cela ne le fait pas pour les valeurs zones up et dn.
    Nota: si j’ajoute, la fonction “defparam drawonlastbaronly=true” en début de code les zones colorés UP et DN n’apparaissent plus…

    Savez vous comment je peux corriger le code ci-dessous de base?
    Merci par avance

    iatr=average[100](tr)
    ALPHAfond=max(1,alphafond)
    alphafond=75
    decalagetexte=5
    
    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+VolatMoy
    ZoneDN= open-VolatMoy
      
    valup=round(zoneup,2)
    valdn=round(zonedn,2)
    ouverture=round(dopen(0),2)
    
    timeframe(default)
    
    if intradaybarindex=0 or day<>day[1] then
    startbar=barindex
    startprice=open
    endif
    
    if islastbarupdate then
    drawrectangle(startbar,startprice,barindex,zoneup) coloured(0,204,0,ALPHAfond) bordercolor(0,0,0,20)
    drawrectangle(startbar,startprice,barindex,zonedn) coloured(255,51,51,ALPHAfond) bordercolor(0,0,0,20)
    IF TEXTE THEN
    DRAWTEXT("#valup#",BARINDEX+decalagetexte,valup,SansSerif,Bold,10) coloured(51,102,255)
    DRAWTEXT("#valdn#",BARINDEX+decalagetexte,valdn,SansSerif,Bold,10) coloured(204,0,0)
    DRAWTEXT("#ouverture#",BARINDEX+decalagetexte,ouverture,SansSerif,Bold,10) coloured(0,0,0)
    ENDIF
    endif
    return
    
    bCPP9Dt3RX.jpg bCPP9Dt3RX.jpg
    #212059 quote
    Nicolas
    Keymaster
    Master

    C’est curieux en effet, les éléments graphiques (rectangles et textes) ne s’affiche qu’une fois puis disparaisse lors d’une nouvelle bougie, pourtant les valeurs coordonnées sont bien présentes. Je vais continuer à chercher pour comprendre pouquoi.

    Pour reproduire, voici ma version:

    defparam drawonlastbaronly=true
    
    texte=1
    iatr=average[100](tr)
    ALPHAfond=max(1,alphafond)
    alphafond=75
    decalagetexte=5
    
    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+VolatMoy
    ZoneDN= open-VolatMoy
      
    valup=round(zoneup,2)
    valdn=round(zonedn,2)
    ouverture=round(dopen(0),2)
    
    timeframe(default)
    if intradaybarindex=0 or day<>day[1] then
    startbar=barindex
    startprice=open
    endif
    
    if islastbarupdate then
    drawrectangle(startbar,startprice,barindex,zoneup) coloured(0,204,0,ALPHAfond) bordercolor(0,0,0,20)
    drawrectangle(startbar,startprice,barindex,zonedn) coloured(255,51,51,ALPHAfond) bordercolor(0,0,0,20)
    IF TEXTE THEN
    DRAWTEXT("#valup#",BARINDEX+decalagetexte,valup,SansSerif,Bold,10) coloured(51,102,255)
    DRAWTEXT("#valdn#",BARINDEX+decalagetexte,valdn,SansSerif,Bold,10) coloured(204,0,0)
    DRAWTEXT("#ouverture#",BARINDEX+decalagetexte,ouverture,SansSerif,Bold,10) coloured(0,0,0)
    ENDIF
    endif
    
    return barindex,startbar,startprice,zoneup,zonedn
    #212267 quote
    christophe11560
    Participant
    Senior

    Je te remercie par avance 😉

Viewing 6 posts - 31 through 36 (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...