Word nu lid
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.

Syntaxis

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

Parameters

NaamTypeStandaardBeschrijving
variableNamenumerieke variabelegeenDe variabele waarvan de waarde op elke bar van de backtest wordt vastgelegd en geplot.
r, g, bgehele getallen 0 tot 255platformstandaardOptionele RGB-componenten van de lijnkleur.
"label"stringgeenLegendatekst die de reeks in het GRAPH-venster identificeert.

Hoe het werkt

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.

De instructie kan willekeurig vaak in hetzelfde systeem voorkomen. Alle series worden in hetzelfde GRAPH-venster getekend en onderscheiden door kleur en label, dus de coloured(r, g, b) clausule en een beschrijvend label zijn van belang zodra er meer dan één variabele wordt geplot. Het venster heeft één enkele waardeschaal die elke serie erin deelt.

GRAPH exists only in the backtest environment. Indicators display values with RETURN, en live ProOrder-systemen hebben geen resultatenvenster om in te tekenen, en daarom blokkeert het platform het live starten tot de GRAPH-regels zijn verwijderd. Voor waarden die op de koersgrafiek zelf worden geplot in plaats van in een apart venster, GRAPHONPRICE is de bijbehorende instructie.

Voorbeelden

Voorbeeld 1, Een MACD-signaalvlag plotten (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"

De variabele signals wisselt tussen 1 en -1 met het teken van de MACD. Hem plotten laat precies zien wanneer de strategie het regime bullish achtte, naast de genomen trades. Dit is het voorbeeld uit de officiële referentie.

Voorbeeld 2, Positiestatus en equity samen bekijken (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"

Plotten countofposition en strategyprofit naast elkaar laat zien wanneer het systeem in de markt zat en hoe de equity curve zich in die periodes gedroeg.

Voorbeeld 3, Een op volatiliteit geschaalde stopafstand debuggen (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"

Het plotten van de berekende stopafstand bevestigt dat de ATR-schaling zinnige waarden oplevert in zowel rustige als volatiele periodes, voordat het getal in live trading wordt vertrouwd.

Veelvoorkomende fouten en valkuilen

  • Blokkeert live starten. ProOrder weigert code die GRAPH bevat. De gebruikelijke werkwijze is debuggen met GRAPH in ProBacktest en daarna de regels verwijderen of in commentaar zetten voordat je het live systeem start.
  • Eén gedeelde schaal. Alle geplotte reeksen worden in hetzelfde venster getekend met een gemeenschappelijke waardeas. Een vlag die tussen -1 en 1 oscilleert en naast een equity curve in de duizenden wordt geplot, wordt een onzichtbare vlakke lijn. Groepeer variabelen van vergelijkbare grootte, of normaliseer voordat je plot.
  • Backtest wordt langzamer. Elke GRAPH-aanroep slaat één waarde per bar op. Bij lange historie met veel geplotte variabelen lopen de looptijden merkbaar op. Houd alleen de reeksen die je op dat moment onderzoekt.
  • Not a substitute for RETURN. Indicatoren kunnen GRAPH niet gebruiken. Code die tussen een indicator en een strategie wordt gedeeld via CALL moet weergavelogica buiten de aangeroepen code houden.
  • GRAPHONPRICE, plot een variabele direct op de koersgrafiek in plaats van in een apart venster.
  • PRINT, schrijft waarden als tekstuitvoer voor debugging.
  • COLOURED, de kleurclausule die door teken- en grafiekinstructies wordt gebruikt.
  • DRAWTEXT, toont tekst op een indicatorgrafiek.
  • MACD, de indicator die in het referentievoorbeeld wordt gebruikt.
  • BUY, opent een long positie.
  • STRATEGYPROFIT, de lopende winst van de strategie, een gebruikelijke variabele om te plotten.
  • COUNTOFPOSITION, de huidige position size, nuttig voor het debuggen van de status.