DrawOnLastBarOnly
DrawOnLastBarOnly en ProBuilder est un paramètre DEFPARAM qui limite les dessins graphiques au dernier bar, réduisant le coût de redessin et gardant le graphique propre.
Syntaxe
DEFPARAM DrawOnLastBarOnly = trueParamètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
DrawOnLastBarOnly | booléen | false | Quand true, les objets graphiques ne sont dessinés que sur le dernier bar. Déclaré avec DEFPARAM en haut du script. |
Comment ça marche
DrawOnLastBarOnly est un DEFPARAM drapeau défini une seule fois au début d'un indicateur ProBuilder. Lorsqu'il est true, tout DRAW commande qui suit ne dessine que sur le dernier bar du graphique, au lieu de se répéter sur chaque bar historique. Cela compte parce que les instructions de dessin s'exécutent par défaut sur chaque bar, si bien qu'une ligne ou une étiquette placée sans ce drapeau est redessinée des milliers de fois, ce qui ralentit le graphique et peut laisser des objets superposés.
Elle convient bien aux objets qui décrivent l'état actuel, comme les lignes de support et de résistance, les pivots ou un libellé d'état. Elle est souvent associée à CalculateOnLastBars pour limiter le calcul autant que le dessin. Comme le dessin se fait sur le dernier bar, les recherches de coordonnées dans l'historique fonctionnent toujours : la boucle qui trouve un point de swing s'exécute sur le dernier bar et l'objet y est dessiné.
Exemples
Exemple 1, Une seule étiquette sur le dernier bar (Indicateur)
// Print "LastBar" once, at the current close
DEFPARAM DrawOnLastBarOnly = true
ONCE font = "Arial"
DRAWTEXT("LastBar", BarIndex, close) COLOURED(255, 0, 0)
RETURNLe texte n'est dessiné que sur le bar en cours plutôt que sur chaque bar de l'historique.
Exemple 2, Lignes de plus haut et plus bas récents (Indicateur)
// Draw the 15-bar high and low once
DEFPARAM DrawOnLastBarOnly = true
hh = Highest[15](high)
ll = Lowest[15](low)
DRAWHLINE(hh) COLOURED(0, 200, 0)
DRAWHLINE(ll) COLOURED(200, 0, 0)
RETURNSans le flag, ces deux lignes seraient redessinées sur chaque bar. Avec lui, elles apparaissent une seule fois.
Exemple 3, Une ligne de tendance construite sur le dernier bar (Indicateur)
// Find two lows across 20 bars and connect them, once
DEFPARAM DrawOnLastBarOnly = true
period = 20
y2 = Lowest[period](low)
FOR i = 0 TO period DO
IF low[i] = y2 THEN
x2 = BarIndex[i]
ELSIF low[i] < y2 THEN
y1 = low[i]
x1 = BarIndex[i]
ENDIF
NEXT
DRAWLINE(x1, y1, x2, y2) COLOURED(0, 120, 255)
RETURNLa boucle balaie l'historique sur le dernier bar et la ligne unique y est dessinée.
Erreurs et pièges courants
- Réglage d'indicateur uniquement.
DrawOnLastBarOnlys'applique aux tracés d'indicateur ProBuilder. Elle n'a aucun sens dans ProScreener, ProOrder ou ProBacktest. - Déclarer avec DEFPARAM en haut du code. Il doit être défini avec
DEFPARAMavant le code de dessin, pas au milieu du script. - Affecte les dessins, pas le calcul. Elle limite l'endroit où les objets sont dessinés, pas la quantité de calcul. À associer avec
CalculateOnLastBarspour réduire aussi le calcul. - Les marqueurs d'historique disparaissent. Avec l'option activée, les signaux passés ne sont pas dessinés. Si vous voulez une flèche à chaque événement passé, laissez-la désactivée et conditionnez chaque dessin par sa propre condition.
Instructions liées
DRAWLINE, un dessin qui gagne à être limité au dernier bar.DRAWHLINE, une ligne de niveau généralement dessinée une seule fois.DRAWVLINE, un marqueur vertical généralement dessiné une seule fois.DRAWTEXT, une étiquette généralement dessinée une seule fois.CalculateOnLastBars, limite le calcul aux bars récents.IsLastBarUpdate, une autre façon d'exécuter du code sur le dernier bar.ONCE, initialise une valeur une seule fois.BarIndex, fournit des coordonnées pour les dessins.