GRAPH
GRAPH plots the values of strategy variables in a separate window under the ProBacktest results chart. Syntax, RGB colour option, examples, limits.
Syntaxe
GRAPH variableName AS "label"GRAPH variableName coloured(r, g, b) AS "label"Paramètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
variableName | variable numérique | aucun | La variable dont la valeur est enregistrée et tracée à chaque bar du backtest. |
r, g, b | entiers de 0 à 255 | valeur par défaut de la plateforme | Composantes RGB optionnelles de la couleur de la ligne. |
"label" | chaîne | aucun | Texte de légende identifiant la série dans la fenêtre GRAPH. |
Comment ça marche
GRAPH is the main debugging tool of ProBacktest. During a backtest run, the platform records the value of the graphed variable on every bar and, once the run finishes, draws the full series in a separate window below the price chart. This makes internal strategy state visible: entry filters, computed stop distances, counters, regime flags, anything stored in a variable can be inspected bar by bar next to the trades it produced.
L'instruction peut apparaître autant de fois que nécessaire dans le même système. Toutes les séries sont tracées dans la même fenêtre GRAPH et distinguées par la couleur et le libellé, de sorte que le coloured(r, g, b) clause et un libellé descriptif comptent dès que plus d'une variable est tracée. La fenêtre possède une seule échelle de valeurs partagée par toutes les séries qu'elle contient.
GRAPH exists only in the backtest environment. Indicators display values with RETURN, et les systèmes ProOrder en direct n'ont pas de fenêtre de résultats où dessiner, raison pour laquelle la plateforme bloque le lancement en direct tant que les lignes GRAPH ne sont pas supprimées. Pour les valeurs tracées sur le graphique de prix lui-même plutôt que dans une fenêtre séparée, GRAPHONPRICE est l'instruction complémentaire.
Exemples
Exemple 1, Tracé d'un drapeau de signal MACD (ProBacktest)
myMACD = MACD[12,26,9](close)
longCondition = myMACD crosses over 0
IF myMACD > 0 THEN
signals = 1
ELSE
signals = -1
ENDIF
IF longCondition THEN
BUY 1 LOT AT close + 10 LIMIT
ENDIF
SET STOP %TRAILING 0.5
// plot the regime flag in red under the backtest chart
GRAPH signals coloured(255,0,0) AS "MACD signals"La variable signals bascule entre 1 et -1 selon le signe du MACD. Le tracer montre exactement quand la stratégie a considéré le régime comme haussier, à côté des trades pris. C'est l'exemple de la documentation officielle.
Exemple 2, Suivi conjoint de l'état de la position et de l'equity (ProBacktest)
// entry logic
IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
BUY 1 CONTRACT AT MARKET
SET STOP PLOSS 30
ENDIF
// two series in the same GRAPH window
GRAPH countofposition coloured(0,0,255) AS "position size"
GRAPH strategyprofit coloured(0,150,0) AS "equity"Tracer countofposition et strategyprofit côte à côte montre quand le système était en position et comment la courbe d'equity a évolué pendant ces périodes.
Exemple 3, Débogage d'une distance de stop ajustée à la volatilité (ProBacktest)
atr = AverageTrueRange[14](close)
stopDist = 2 * atr
IF NOT onmarket AND close CROSSES OVER highest[20](high[1]) THEN
BUY 1 CONTRACT AT MARKET
SET STOP LOSS stopDist
ENDIF
// verify the stop distance actually used on each bar
GRAPH stopDist AS "stop distance"Tracer la distance de stop calculée confirme que la mise à l'échelle par l'ATR produit des valeurs sensées sur les périodes calmes comme volatiles avant de faire confiance au chiffre en trading réel.
Erreurs et pièges courants
- Bloque le lancement en réel. ProOrder rejette le code contenant GRAPH. Le flux de travail habituel consiste à déboguer avec GRAPH dans ProBacktest, puis à supprimer ou commenter les lignes avant de démarrer le système en réel.
- Une seule échelle partagée. Toutes les séries tracées sont dessinées dans la même fenêtre avec un axe de valeurs commun. Un drapeau oscillant entre -1 et 1 tracé à côté d'une courbe d'equity en milliers devient une ligne plate invisible. Regroupez les variables d'ordre de grandeur similaire, ou normalisez avant de tracer.
- Ralentissement du backtest. Chaque appel à GRAPH stocke une valeur par bar. Sur des historiques longs avec de nombreuses variables tracées, les temps d'exécution augmentent sensiblement. Ne gardez que les séries actuellement étudiées.
- Not a substitute for RETURN. Les indicateurs ne peuvent pas utiliser GRAPH. Le code partagé entre un indicateur et une stratégie via
CALLdoit garder la logique d'affichage hors du code appelé.
Instructions liées
GRAPHONPRICE, trace une variable directement sur le graphique des prix plutôt que dans une fenêtre séparée.PRINT, écrit des valeurs sous forme de texte pour le débogage.COLOURED, la clause de couleur utilisée par les instructions de dessin et de tracé.DRAWTEXT, affiche du texte sur un graphique d'indicateur.MACD, l'indicateur utilisé dans l'exemple de référence.BUY, ouvre une position long.STRATEGYPROFIT, le profit courant de la stratégie, une variable souvent tracée.COUNTOFPOSITION, la position size actuelle, utile pour déboguer l'état.