GRAPH
GRAPH plots the values of strategy variables in a separate window under the ProBacktest results chart. Syntax, RGB colour option, examples, limits.
Sintaxis
GRAPH variableName AS "label"GRAPH variableName coloured(r, g, b) AS "label"Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
variableName | variable numérica | ninguno | La variable cuyo valor se registra y se dibuja en cada bar del backtest. |
r, g, b | enteros de 0 a 255 | valor por defecto de la plataforma | Componentes RGB opcionales del color de la línea. |
"label" | cadena | ninguno | Texto de leyenda que identifica la serie en la ventana de GRAPH. |
Cómo funciona
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.
La instrucción puede aparecer cualquier número de veces en el mismo sistema. Todas las series se dibujan en la misma ventana GRAPH y se distinguen por color y etiqueta, así que la coloured(r, g, b) y una etiqueta descriptiva importan en cuanto se representa más de una variable. La ventana tiene una única escala de valores compartida por todas las series que contiene.
GRAPH exists only in the backtest environment. Indicators display values with RETURN, y los sistemas ProOrder en vivo no tienen ventana de resultados en la que dibujar, razón por la cual la plataforma bloquea el lanzamiento en vivo hasta que se eliminan las líneas GRAPH. Para valores trazados sobre el propio gráfico de precio en lugar de en una ventana aparte, GRAPHONPRICE es la instrucción complementaria.
Ejemplos
Ejemplo 1, Graficar un flag de señal del 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 alterna entre 1 y -1 según el signo del MACD. Representarlo gráficamente muestra exactamente cuándo la estrategia consideró alcista el régimen, junto a las operaciones realizadas. Este es el ejemplo de la referencia oficial.
Ejemplo 2, Observar juntos el estado de la posición y la 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"Trazar countofposition y strategyprofit en paralelo muestra cuándo estuvo el sistema en el mercado y cómo se comportó la curva de equity durante esos periodos.
Ejemplo 3, Depurar una distancia de stop escalada por volatilidad (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"Graficar la distancia de stop calculada confirma que el escalado por ATR produce valores razonables tanto en periodos tranquilos como volátiles antes de confiar en ese número operando en real.
Errores y trampas habituales
- Bloquea el lanzamiento en real. ProOrder rechaza el código que contiene GRAPH. El flujo de trabajo habitual es depurar con GRAPH en ProBacktest y después borrar o comentar las líneas antes de iniciar el sistema en real.
- Una única escala compartida. Todas las series graficadas se dibujan en la misma ventana con un eje de valores común. Un flag que oscila entre -1 y 1 dibujado junto a una curva de equity de miles se convierte en una línea plana invisible. Agrupa variables de magnitud similar o normaliza antes de graficar.
- Ralentización del backtest. Cada llamada a GRAPH almacena un valor por bar. En históricos largos con muchas variables graficadas, los tiempos de ejecución crecen de forma notable. Conserva solo las series que estés investigando.
- Not a substitute for RETURN. Los indicadores no pueden usar GRAPH. El código compartido entre un indicador y una estrategia mediante
CALLdebe mantener la lógica de visualización fuera del código llamado.
Instrucciones relacionadas
GRAPHONPRICE, dibuja una variable directamente en el gráfico de precio en lugar de en una ventana aparte.PRINT, escribe valores como salida de texto para depuración.COLOURED, la cláusula de color que usan las instrucciones de dibujo y de representación gráfica.DRAWTEXT, muestra texto en un gráfico de indicador.MACD, el indicador usado en el ejemplo de referencia.BUY, abre una posición long.STRATEGYPROFIT, el beneficio acumulado de la estrategia, una variable habitual para graficar.COUNTOFPOSITION, el position size actual, útil para depurar el estado.