Jetzt beitreten
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.

Syntax

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

Parameter

NameTypStandardBeschreibung
variableNamenumerische VariablekeineDie Variable, deren Wert auf jedem Bar des Backtest aufgezeichnet und dargestellt wird.
r, g, bGanzzahlen 0 bis 255PlattformstandardOptionale RGB-Komponenten der Linienfarbe.
"label"ZeichenkettekeineLegendentext, der die Reihe im GRAPH-Fenster bezeichnet.

So funktioniert es

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.

Der Befehl kann beliebig oft im selben System vorkommen. Alle Reihen werden im gleichen GRAPH-Fenster gezeichnet und durch Farbe und Beschriftung unterschieden, sodass die coloured(r, g, b) Klausel und eine aussagekräftige Beschriftung sind wichtig, sobald mehr als eine Variable geplottet wird. Das Fenster hat eine einzige Werteskala, die alle enthaltenen Reihen teilen.

GRAPH exists only in the backtest environment. Indicators display values with RETURN, und live laufende ProOrder-Systeme haben kein Ergebnisfenster, in das gezeichnet werden könnte, weshalb die Plattform den Live-Start blockiert, bis GRAPH-Zeilen entfernt sind. Für Werte, die auf dem Kurschart selbst statt in einem separaten Fenster gezeichnet werden, GRAPHONPRICE ist der zugehörige Befehl.

Beispiele

Beispiel 1, Darstellung eines MACD-Signalflags (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"

Die Variable signals wechselt mit dem Vorzeichen des MACD zwischen 1 und -1. Gezeichnet zeigt es neben den eingegangenen Trades genau, wann die Strategie das Regime als bullisch einstufte. Dies ist das Beispiel aus der offiziellen Referenz.

Beispiel 2, Positionszustand und Equity gemeinsam beobachten (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"

Zeichnen countofposition und strategyprofit nebeneinander zeigt, wann das System im Markt war und wie sich die Equity-Kurve in diesen Phasen verhielt.

Beispiel 3, Debugging eines volatilitätsskalierten Stop-Abstands (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"

Die grafische Darstellung des berechneten Stop-Abstands bestätigt, dass die ATR-Skalierung in ruhigen und volatilen Phasen sinnvolle Werte liefert, bevor dem Wert im Live-Trading vertraut wird.

Häufige Fehler und Stolperfallen

  • Verhindert den Live-Start. ProOrder weist Code zurück, der GRAPH enthält. Der übliche Arbeitsablauf ist, mit GRAPH in ProBacktest zu debuggen und die Zeilen dann zu löschen oder auszukommentieren, bevor das Live-System gestartet wird.
  • Eine gemeinsame Skala. Alle grafisch dargestellten Reihen werden im selben Fenster mit einer gemeinsamen Werteachse gezeichnet. Ein Flag, das zwischen -1 und 1 schwankt und neben einer equity-Kurve im Tausenderbereich dargestellt wird, wird zu einer unsichtbaren flachen Linie. Gruppieren Sie Variablen ähnlicher Größenordnung oder normalisieren Sie sie vor der grafischen Darstellung.
  • Verlangsamung des Backtests. Jeder GRAPH-Aufruf speichert einen Wert pro Bar. Bei langen Historien mit vielen grafisch dargestellten Variablen wachsen die Laufzeiten merklich. Behalten Sie nur die Reihen, die aktuell untersucht werden.
  • Not a substitute for RETURN. Indikatoren können GRAPH nicht verwenden. Gemeinsamer Code von Indikator und Strategie mittels CALL muss Anzeigelogik aus dem aufgerufenen Code heraushalten.
  • GRAPHONPRICE, zeichnet eine Variable direkt im Kurschart statt in einem separaten Fenster.
  • PRINT, schreibt Werte als Textausgabe für das Debugging.
  • COLOURED, die Farbklausel, die von Zeichen- und Grafikbefehlen verwendet wird.
  • DRAWTEXT, zeigt Text in einem Indikator-Chart an.
  • MACD, der im Referenzbeispiel verwendete Indikator.
  • BUY, eröffnet eine Long-Position.
  • STRATEGYPROFIT, der laufende Gewinn der Strategie, eine häufig grafisch dargestellte Variable.
  • COUNTOFPOSITION, die aktuelle Position Size, nützlich für das Debugging des Zustands.