RANGE INTRADAY avec fonction drawrectangle
Forums › ProRealTime forum Français › Support ProBuilder › RANGE INTRADAY avec fonction drawrectangle
- This topic has 35 replies, 3 voices, and was last updated 1 year ago by
christophe11560.
-
-
09/09/2022 at 8:17 PM #200456
Ah bon 😉
Cela dépasse malheureusement mes humbles compétences en matière de codage.
Si tu arrives à trouver du temps, je t’en serais reconnaissant.
Bon weekend à toi
09/12/2022 at 1:48 PM #200618Tu repars de ton code sans les timeframes pour travailler dans ton ut (x)ticks, et du moment que l’historique est assez long pour avoir tes 10 jours, tu peux avoir ton volatmoy ainsi:
12345678910if opendate<>opendate[1] then$memo[lastset($memo)+1]=volatminendifif lastset($memo)>=10 thenVolatcumu=0For i= lastset($memo)-9 to lastset($memo)Volatcumu= Volatcumu+$memo[i]nextVolatMoy=Volatcumu/10endif1 user thanked author for this post.
09/12/2022 at 3:04 PM #200626Tu es au TOP !!!!
Merci beaucoup JC, çà marche impeccable 😉
Bonne continuation Christophe
09/12/2022 at 4:06 PM #200634Rebonjour,
En affichant les valeurs haute et basse sur le graphique, je me rend compte que les valeurs avec le code en Timeframe Daily (code Nicolas) et Ticks (JC) sont différentes.
Donc j’ai créé un indicateur simple pour connaître les valeurs Up et Dn journalières.
Je me rend compte également, que le code en timeDaily et TICKS donnent des valeurs différentes de celle que nous devrions trouver.
Je travaille avec des actions de plage horaire ETH.
Je vous joint les photographies correspondantes.
Dans l’attente de vous lire
christophe
09/13/2022 at 8:25 AM #20067209/13/2022 at 11:00 AM #200686code avec timeframe Base Nicolas12345678910111213141516171819202122232425262728293031323334353637383940defparam calculateonlastbars = 50defparam drawonlastbaronly=trueiatr=average[100](tr)timeframe(daily)REM TRUE RANGEamax=max(close[1],high[0])amin=min(close[1],low[0])REM Calcul Volatilité journalière minimale par rapport à l'ouverturevolathaute=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 deuxREM moyenne volatilité minimale sur 10 joursVolatMoy=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+VolatMoyZoneDN= open-VolatMoyvalup=round(zoneup,2)valdn=round(zonedn,2)ouverture=round(dopen(0),2)timeframe(default)if intradaybarindex=0 or day<>day[1] thenstartbar=barindexstartprice=openendifif islastbarupdate thendrawrectangle(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)endifreturn09/13/2022 at 11:01 AM #200687code pour UT TICK (JB)12345678910111213141516171819202122232425262728293031323334353637383940414243444546defparam drawonlastbaronly=trueiatr=exponentialaverage[100](tr)REM TRUE RANGEamax=max(dclose(1),dhigh(0))amin=min(dclose(1),dlow(0))REM Calcul Volatilité journalière minimale par rapport à l'ouverturevolathaute=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 deuxREM moyenne volatilité minimale sur 10 joursif opendate<>opendate[1] then$memo[lastset($memo)+1]=volatminendifif lastset($memo)>=10 thenVolatcumu=0For i= lastset($memo)-9 to lastset($memo)Volatcumu= Volatcumu+$memo[i]nextVolatMoy=Volatcumu/10endifREM Définition des limites des 2 zones décrites plus haut:ZoneUP= dopen(0)+VolatMoyZoneDN= dopen(0)-VolatMoyvalup=round(zoneup,2)valdn=round(zonedn,2)ouverture=round(dopen(0),2)if intradaybarindex=0 or day<>day[1] thenstartbar=barindexstartprice=openendifif islastbarupdate thenALPHAfond=25drawrectangle(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)endifreturn09/13/2022 at 2:17 PM #20070109/13/2022 at 10:22 PM #200745Bonjour JB
En effet, je ne veux pas inclure dans volathaute et volatbasse le jour en cours.
Pour TimeFrame DAILY, c’est normal que ce soit le jour d’avant. Par contre, il ne devrait pas y avoir d’écart avec les valeurs notées en UT daily.
Pour le code en UT Ticks, je pensais avoir respecté tes indications de placement de code, avant le tien.
Que dois je faire?
09/14/2022 at 1:07 AM #200749JB Nicolas
J’ai déplacé ma partie de code après: “if opendate<>opendate[1] then”
Toujours un écart par rapport à mon code de référence en UT daily pour comparaison des valeurs.
Je le joints pour information ci-après
code référence en UT DAILY pour vérification code TimeFrame et TICKS1234567891011121314151617181920212223242526defparam calculateonlastbars = 500defparam drawonlastbaronly=trueamax=max(close[1],high[0])amin=min(close[1],low[0])REM Calcul Volatilité journalière minimale par rapport à l'ouverturevolathaute=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 deuxREM moyenne volatilité minimale sur 10 joursVolatMoy=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+VolatMoyZoneDN= open-VolatMoyvalup=round(zoneup,2)valdn=round(zonedn,2)ouverture=round(dopen(0),2)iatr=exponentialaverage[100](tr)DRAWTEXT("#valup#",BARINDEX+1,valup+1*iatr,SansSerif,Bold,14) coloured(51,102,255)DRAWTEXT("#valdn#",BARINDEX+1,valdn-1*iatr,SansSerif,Bold,14) coloured(204,0,0)DRAWTEXT("#ouverture#",BARINDEX+1,ouverture-1*iatr,SansSerif,Bold,14) coloured(0,0,0)return zoneup as "line up", zonedn as "line dn"09/27/2022 at 6:02 PM #201519Nicolas JB
Auriez vous une idée?09/27/2022 at 8:12 PM #201530Oui, celle du post #200701… une fois signalé dans ce post que tes 2 codes version “ticks” et “version ut classique MTF” calculaient différemment volathausse et volatbasse, en amont de la partie avec tableaux que j’ai proposé pour calcul de volatmoy, tu dois choisir lequel est ton bon calcul de volathausse et volatbasse afin de faire le même dans les 2 codes, sinon forcément, ça va donner des résultats trop différents. Il n’y a que toi qui peux savoir lequel des 2 calculs tu veux et appliquer le bon aux 2 codes, pour moi c’est juste une “entrée” qui aboutit à volatmin servant ensuite dans la partie proposée avec tableaux pour calcul de volatmoy.
Après, une fois que tu auras adopté un calcul identique de volathaute et basse, peut-être que tu constateras d’autres différences, mais si c’est le cas ça sera à voir à ce moment-là avec les données non faussées par 2 calculs différents de volathaute et volatbasse.
09/28/2022 at 11:11 AM #201548Bonjour JB et merci pour ton retour,
Excuse moi, mais je ne comprends pas ta demande. Je ne maitrise pas le principe de tableau en codage.
Il y a 2 méthodes différentes. Celle en Timeframe, je la comprend. Celle en tick dépasse mes compétences.Le code de référence en UT DAILY (09/14/2022 at 1:07 AM) que j’ai transmis donne le résultat attendu, le bon résultat.
Je constate que le code en UT ticks ou en Timeframe donne des résultats différents de celui du code référence ci-avant.
Je suis vraiment dans une impasse parce que je suis arrivé au bout de mes connaissances en codage. Et Je ne comprends pas non plus pourquoi le code en TIMEFRAME ne donne pas les bons résultats, ce code me semble bon dans son écriture.
Je ne sais pas si cela est lié avec la fonction TIMEFRAME. En effet, J’ai ouvert un autre post en attente de réponse (https://www.prorealcode.com/topic/screener-timeframe-cassure-pivot/) sur un screener qui utilise également la fonction timeframe et pour lequel les résultats sont erronés.Dans l’attente de vous lire et je l’espère d’une solution ;-=).
09/28/2022 at 12:27 PM #201558tu dois choisir lequel est ton bon calcul de volathausse et volatbasse
Avant d’obtenir une solution, JC pose cette question auquel on attend une réponse 🙂
09/28/2022 at 4:03 PM #201588Bonjour Nicolas,
Je pensais vous avoir répondu. Je pense que je ne comprends pas votre besoin.
Comme je l’ai indiqué, le bon calcul pour moi est celui qui donne un résultat correct en UT DAILY => c’est le code de référence en UT DAILY du “09/14/2022 at 1:07 AM”.
0) code de référence: 09/14/2022 at 1:07 AM
1) Le code avec la fonction TimeFrame vs Nicolas (utilise le même calcul que celui de référence bon pour moi) mais ne fonctionne pas pour les UT ticks et ne donne pas les mêmes résultats que celui de référence quelques soient l’UT intraday.
2) Le code pour les ticks vs JB ne donne pas non plus les mêmes résultats que le code de référence. je ne le comprends pas parce qu’il dépasse mes compétences de codage et je ne sais pas si il fonctionne quelques soient les unités de temps.Si vous me demandez de choisir entre 1 ou 2, çà m’est égal à partir du moment que cela fonctionne en intraday et en tick. Le mieux pour vous.
Dans l’attente de vous lire.
-
AuthorPosts
Find exclusive trading pro-tools on