DRAWONLASTBARONLY à la fois TRUE et FALSE
Forums › ProRealTime forum Français › Support ProBuilder › DRAWONLASTBARONLY à la fois TRUE et FALSE
- This topic has 6 replies, 3 voices, and was last updated 9 months ago by Jerome888.
-
-
01/12/2024 at 9:57 AM #226271
Bonjour,
J’ai une function FCT1 assez gourmande en temps de calcul.
J’aimerais afficher le résultat de cette FCT1 :
- sur les barres historiques (OK utilisation DRAWONLASTBARONLY = False)
- mais aussi différement (autre présentation) sur la dernière barre (il faudrait donc normalement l’utilisation de DRAWONLASTBARONLY = True)
Y a-t-il une autre solution que d’inclure l’indicateur 2 fois (qui double donc le temps de calcul) ?
Merci.
01/29/2024 at 1:14 PM #227005Hormis, si ton code retrace sans arrêt les résultats sur les chandeliers précédents, une fois l’historique lu, les calculs ne se feront plus sur les chandeliers précédents le dernier. Donc quoi qu’il arrive, les calculs de ton indicateur ne se feront toujours que sur le dernier chandelier.
Sinon, pour savoir si on est présent sur le dernier chandelier, tu peux utiliser IsLastBarUpdate.
Cette instruction est utilisée pour déterminer si la barre actuelle est la dernière mise à jour dans un graphique en temps réel. C’est particulièrement utile pour des stratégies ou des indicateurs qui nécessitent une action ou un calcul uniquement sur la dernière barre, notamment en temps réel.
Voici quelques points clés sur
islastbarupdate
:- Utilisation:
islastbarupdate
renvoie1
si la barre actuelle est la dernière barre mise à jour dans un graphique. Sinon, elle renvoie0
. - Contexte d’utilisation: C’est très utile dans les graphiques en temps réel où tu veux exécuter un calcul ou une action uniquement lorsque la dernière barre est mise à jour, sans affecter les barres historiques.
- Exemple de code:
123if islastbarupdate then// Effectue un calcul ou une action sur la dernière barreendifDans cet exemple, le code à l’intérieur du bloc
if
ne s’exécute que lorsque la dernière barre est en train d’être mise à jour. Cela permet d’optimiser les performances en évitant des calculs inutiles sur chaque barre historique.1 user thanked author for this post.
01/29/2024 at 5:40 PM #227032J’ajouterais que lorsque l’on utilise l’instruction DRAWONLASTBARONLY = True, le code efface tous les tracés précédant à chaque nouvelle bougie et ne retrace que ce qui découle de la dernière lecture du code (en relation avec la dernière bougie).
Dans ces cas là, si l’on veut garder à l’écran une partie ou la totalité des tracés précédant, il faut les enregistrer dans un tableau et utiliser une boucle qui parcours le tableau et qui permet de redessiner le résultat de cette FCT1 calculé à partir des barres historiques.C’est le cas par exemple ici
1 user thanked author for this post.
01/30/2024 at 6:52 AM #22705601/30/2024 at 7:14 AM #227060En fait j’ai toujours le même problème
J’utilise bien
123456789101112DEFPARAM DRAWONLASTBARONLY=False//je dessiner ici des ronds des triangles etc... sur l'historique.......if islastbarupdate then//Je dessine ici mon indicateur représentant le statut à la dernière bougie//mais sa géométrie est variable et donc les différentes formes/tailles etc...//se chevauchent puisque il garde les dessins faits précédemment...endifDonc la seule solution que je vois c’est le tableau + DRAWONLASTBARONLY=True mais pour l’avoir déjà fait une fois sur un autre indicateur, ça consomme des ressources : les ventilos se mettent en route !
Merci
01/30/2024 at 9:19 AM #227065la seule solution que je vois c’est le tableau + DRAWONLASTBARONLY=True
En effet, c’est la solution la plus efficace. Concernant la consommation de ressources, tout dépend de ton code, mais c’est en général beaucoup plus rapide que de faire les calculs sur chaque bougie de l’historique.
01/30/2024 at 9:44 AM #227072 -
AuthorPosts