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/06/2022 at 10:46 AM #200231
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 deuxVolatMoy=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)-VolatMoyDans l’attente de vous lire 😉
Merci par avance
Christophe09/07/2022 at 8:37 AM #200270Ton 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 ?
09/07/2022 at 10:28 AM #200290Bonjour 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
09/07/2022 at 11:11 AM #200297principe de calcul de la bande de volatilité à appliquer autours de l'ouverture du jour de trade123456789101112131415REM 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 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= dopen(0)+VolatMoyZoneDN= dopen(0)-VolatMoy09/07/2022 at 12:28 PM #200303Tu as raison sur le fonctionnement de ces instructions (Dhigh, Dlow, ..)
Mais si en timeframe 5-minutes tu fais :
1average[10](volatmin)tu calcules une moyenne de la valeur volatmin des 10 dernières bougies 5-minutes.
C’est plus clair ?
09/07/2022 at 1:11 PM #200307Ah 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?09/07/2022 at 5:37 PM #200324Bien entendu,
- dans ton code à aucun moment tu indiques que ta moyenne mobile est à faire sur 10 chandeliers en daily.
- 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 :
123456789101112131415161718timeframe(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[0]+VolatMoyZoneDN= open[0]-VolatMoyreturn ZoneUP,ZoneDNIl 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é)
09/07/2022 at 5:56 PM #200325ok, 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?
09/08/2022 at 7:37 AM #200332Un rectangle ayant besoin de 4 coordonnées (voir DRAWRECTANGLE), voici comment les créer avec tes variables:
12345678910111213141516171819202122232425262728293031defparam drawonlastbaronly=truetimeframe(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[0]+VolatMoyZoneDN= open[0]-VolatMoytimeframe(default)if intradaybarindex=0 thenstartbar=barindexstartprice=openendifif islastbarupdate thendrawrectangle(startbar,startprice,datetobarindex(20301231),zoneup) coloured("green",50) bordercolor("green",0)drawrectangle(startbar,startprice,datetobarindex(20301231),zonedn) coloured("red",50) bordercolor("red",0)endifreturn //ZoneUP as "zoneup",ZoneDN as "zonedn",volatmoy09/08/2022 at 11:26 AM #200356Super 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?😉
09/08/2022 at 5:28 PM #200375Pas assez d’unités affichées pour obtenir 10j de data du timeframe daily.
1 user thanked author for this post.
09/09/2022 at 10:26 AM #200404Nicolas,
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
09/09/2022 at 10:53 AM #20041309/09/2022 at 1:26 PM #200429Les 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
09/09/2022 at 2:58 PM #200433Non, 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.
-
AuthorPosts
Find exclusive trading pro-tools on