Únete hoy
ProBacktest/probacktest

GRAPH

GRAPH plots the values of strategy variables in a separate window under the ProBacktest results chart. Syntax, RGB colour option, examples, limits.

Sintaxis

probuilder
GRAPH variableName AS "label"
probuilder
GRAPH variableName coloured(r, g, b) AS "label"

Parámetros

NombreTipoPor defectoDescripción
variableNamevariable numéricaningunoLa variable cuyo valor se registra y se dibuja en cada bar del backtest.
r, g, benteros de 0 a 255valor por defecto de la plataformaComponentes RGB opcionales del color de la línea.
"label"cadenaningunoTexto 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)

probuilder
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)

probuilder
// 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)

probuilder
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 CALL debe mantener la lógica de visualización fuera del código llamado.
  • 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.