Word nu lid
ProBacktest/probacktest · proorder

STRATEGYPROFIT

STRATEGYPROFIT geeft de cumulatieve winst of het cumulatieve verlies, in geld, van elke gesloten trade in een ProBacktest- of ProOrder-strategie. Open posities worden uitgesloten.

Syntaxis

probuilder
myCurrentProfit = STRATEGYPROFIT

Hoe het werkt

Elke keer dat de strategie een trade sluit, wordt het gerealiseerde resultaat van die trade bij een doorlopend totaal opgeteld. STRATEGYPROFIT stelt dat totaal op elke bar beschikbaar, uitgedrukt in geld in plaats van in punten of procenten. Een waarde van 0 op de eerste bars betekent simpelweg dat er nog geen trade is gesloten.

Alleen gesloten trades tellen mee. Een positie die nog open is, hoe diep in de winst ook, verandert de waarde niet totdat hij wordt verlaten. Om de ongerealiseerde performance van de huidige positie te lezen, gebruik je POSITIONPERF in plaats daarvan. De twee zijn complementair: STRATEGYPROFIT beschrijft het verleden, POSITIONPERF beschrijft het heden.

De variabele wordt vaak gebruikt voor equity-afhankelijke logica, bijvoorbeeld het systeem stilzetten na een drawdown-drempel, de omvang verlagen na een reeks verliezen, of een sessie afsluiten zodra een winstdoel is bereikt. Wanneer posities over bars worden opgebouwd, stel DEFPARAM CumulateOrders = true zodat de engine de gecombineerde positie open houdt en winst realiseert zoals de logica verwacht.

Voorbeelden

Voorbeeld 1, Positie afbouwen zodra een winstdrempel is bereikt (ProBacktest)

probuilder
DEFPARAM CumulateOrders = true  // allow accumulated positions

myCurrentProfit = STRATEGYPROFIT
IF myCurrentProfit > 1000 THEN
  SELL 100 SHARES AT MARKET
ENDIF

Zodra de gerealiseerde winst van alle gesloten trades meer dan 1000 valuta-eenheden bedraagt, verkoopt de strategie 100 aandelen tegen marktprijs. Dit is het canonieke gebruikspatroon uit de officiële referentie.

Voorbeeld 2, Equity stop die de strategie stilzet (ProOrder)

probuilder
// Stop the system permanently after 500 units of realized loss
IF STRATEGYPROFIT < -500 THEN
  SELL AT MARKET
  EXITSHORT AT MARKET
  QUIT
ENDIF

Een beveiliging voor kapitaalbehoud. Wanneer het gerealiseerde verlies de limiet overschrijdt, wordt elke open positie gesloten en QUIT zorgt dat de strategie geen verdere orders meer plaatst.

Voorbeeld 3, De gerealiseerde equity curve plotten (ProBacktest)

probuilder
// Inspect the realized equity curve while backtesting
GRAPH STRATEGYPROFIT AS "Realized PnL"

IF NOT onmarket AND close > average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
  SET STOP LOSS 30
  SET TARGET PROFIT 60
ENDIF

GRAPH tekent de lopende gerealiseerde winst onder de backtest-grafiek, waardoor eenvoudig te zien is wanneer de strategie geld verdiende of teruggaf.

Veelvoorkomende fouten en valkuilen

  • Open posities zijn onzichtbaar. STRATEGYPROFIT beweegt alleen wanneer een trade wordt gesloten. Een strategie die dit controleert terwijl een grote positie open staat, ziet verouderde informatie. Combineer met POSITIONPERF wanneer de huidige trade van belang is.
  • Geld, geen punten. De waarde is uitgedrukt in de accountvaluta, dus drempelwaarden zoals > 1000 betekent 1000 valuta-eenheden, niet 1000 punten. Dezelfde drempel gedraagt zich heel anders bij instrumenten met verschillende puntwaarden.
  • Backtest- en live waarden verschillen. In een live ProOrder-run begint het totaal weer bij nul wanneer de strategie wordt gestart; het neemt de backtest-historie niet over. Op equity gebaseerde regels gedragen zich daarom direct na uitrol anders.
  • GRAPH is backtest only. GRAPH STRATEGYPROFIT werkt in ProBacktest maar wordt genegeerd bij live ProOrder-uitvoering, dus diagnostische plots verdwijnen zodra het systeem live handelt.
  • POSITIONPERF, ongerealiseerde performance van de momenteel open positie.
  • PROFIT, take profit-configuratie in procenten voor een positie.
  • LOSS, stop loss-configuratie in procenten voor een positie.
  • CumulateOrders, DEFPARAM die bepaalt of orders samenvoegen tot één positie.
  • GRAPH, plot een waarde onder de backtest-grafiek ter inspectie.
  • ONMARKET, waar zolang er een positie open is.
  • TRADEPRICE, instapprijs van de huidige positie.
  • COUNTOFPOSITION, grootte van de momenteel open positie.