GRAPH
GRAPH plots the values of strategy variables in a separate window under the ProBacktest results chart. Syntax, RGB colour option, examples, limits.
Sintassi
GRAPH variableName AS "label"GRAPH variableName coloured(r, g, b) AS "label"Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
variableName | variabile numerica | nessuno | La variabile il cui valore viene registrato e tracciato su ogni bar del backtest. |
r, g, b | interi da 0 a 255 | predefinito della piattaforma | Componenti RGB opzionali del colore della linea. |
"label" | stringa | nessuno | Testo di legenda che identifica la serie nella finestra GRAPH. |
Come funziona
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'istruzione può comparire un numero qualsiasi di volte nello stesso sistema. Tutte le serie sono disegnate nella stessa finestra GRAPH e distinte da colore ed etichetta, quindi la coloured(r, g, b) clausola e un'etichetta descrittiva contano appena viene tracciata più di una variabile. La finestra ha una sola scala di valori condivisa da ogni serie che contiene.
GRAPH exists only in the backtest environment. Indicators display values with RETURN, e i sistemi ProOrder live non hanno una finestra dei risultati in cui disegnare, motivo per cui la piattaforma blocca l'avvio live finché le righe GRAPH non vengono rimosse. Per i valori tracciati sul grafico dei prezzi stesso invece che in una finestra separata, GRAPHONPRICE è l'istruzione complementare.
Esempi
Esempio 1, Tracciamento di un flag di segnale 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 variabile signals passa tra 1 e -1 in base al segno del MACD. Rappresentarlo graficamente mostra esattamente quando la strategia ha considerato il regime rialzista, accanto alle operazioni eseguite. Questo è l'esempio della documentazione ufficiale.
Esempio 2, Osservare insieme stato della posizione ed 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"Tracciare countofposition e strategyprofit affiancati mostra quando il sistema era sul mercato e come si è comportata la curva equity in quei periodi.
Esempio 3, Debug di una distanza di stop scalata sulla 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"Tracciare la distanza di stop calcolata conferma che la scalatura con ATR produce valori sensati sia nei periodi tranquilli sia in quelli volatili, prima di affidarsi a quel numero nel trading live.
Errori e insidie comuni
- Blocca l'avvio in live. ProOrder rifiuta il codice che contiene GRAPH. Il flusso di lavoro consueto è fare il debug con GRAPH in ProBacktest, poi eliminare o commentare le righe prima di avviare il sistema live.
- Una sola scala condivisa. Tutte le serie tracciate vengono disegnate nella stessa finestra con un asse dei valori comune. Un flag che oscilla tra -1 e 1 tracciato accanto a una curva equity nell'ordine delle migliaia diventa una linea piatta invisibile. Raggruppa variabili di grandezza simile, oppure normalizza prima di tracciare.
- Rallentamento del backtest. Ogni chiamata GRAPH memorizza un valore per bar. Su storici lunghi con molte variabili tracciate, i tempi di esecuzione crescono in modo sensibile. Mantieni solo le serie attualmente in esame.
- Not a substitute for RETURN. Gli indicatori non possono usare GRAPH. Il codice condiviso tra un indicatore e una strategia tramite
CALLdeve tenere la logica di visualizzazione fuori dal codice chiamato.
Istruzioni correlate
GRAPHONPRICE, traccia una variabile direttamente sul grafico dei prezzi invece che in una finestra separata.PRINT, scrive i valori come output testuale per il debug.COLOURED, la clausola di colore usata dalle istruzioni di disegno e di tracciamento.DRAWTEXT, visualizza testo su un grafico di indicatore.MACD, l'indicatore usato nell'esempio di riferimento.BUY, apre una posizione long.STRATEGYPROFIT, il profitto corrente della strategia, una variabile comune da tracciare.COUNTOFPOSITION, la position size corrente, utile per il debug dello stato.