Word nu lid
ProBacktest/probacktest · proorder

POSITIONPERF

POSITIONPERF geeft de procentuele prestatie van een open of gesloten positie in ProBacktest en ProOrder. PositionPerf(0) leest de huidige open trade.

Syntaxis

probuilder
PositionPerf(N)

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getal0Positie-index. 0 leest de momenteel open positie. Een waarde groter dan 0 leest de N-de meest recent gesloten positie, dus 1 is de laatst gesloten trade.

Hoe het werkt

POSITIONPERF meet hoe goed een enkele positie heeft gepresteerd, uitgedrukt als de verhouding tussen de winst of het verlies en de kostprijs. Een waarde van 0.05 komt overeen met een winst van 5 procent en -0.02 met een verlies van 2 procent, dus vermenigvuldig met 100 wanneer er een percentagewaarde voor weergave nodig is.

Het indexargument selecteert welke positie geëvalueerd wordt. Met N = 0, of met het argument weggelaten, rapporteert de functie de lopende performance van de positie die momenteel open staat. Met N > 0 het loopt achterwaarts door gesloten trades, PositionPerf(1) zijnde de meest recente exit, PositionPerf(2) die daarvoor, en zo verder. Daarmee is het de natuurlijke bouwsteen voor logica per trade, zoals verliesreeksen of prestatiefilters.

De berekening is bruto. Brokerkosten, als kosten gemodelleerde spreads en financiering worden niet afgetrokken, dus de nettoresultaten in live handel zijn lager dan de ruwe waarden. Gebruik voor het cumulatieve geldresultaat van de hele strategie in plaats daarvan STRATEGYPROFIT; POSITIONPERF beschrijft altijd één positie per keer.

Voorbeelden

Voorbeeld 1, de laatst gesloten trade uitlezen (ProBacktest)

probuilder
// Gain-to-cost ratio of the most recently closed position
positionPerformance = PositionPerf(1)
GRAPH positionPerformance * 100 AS "Last trade performance in percent"

Haalt de prestatie van de laatst afgeronde trade op en plot deze als percentage. Dit is het referentievoorbeeld uit de brondocumentatie met een weergaveregel erbij.

Voorbeeld 2, noodexit bij drawdown op een open trade (ProOrder)

probuilder
// Close a long when the open position loses more than 2 percent
IF longonmarket AND positionperf(0) < -0.02 THEN
  SELL AT MARKET
ENDIF

De open positie wordt bar per bar gevolgd en verlaten zodra de lopende prestatie onder -0.02 zakt, een op percentage gebaseerde veiligheidsuitstap die onafhankelijk van elke op punten gebaseerde stop werkt.

Voorbeeld 3, size verlagen na twee opeenvolgende verliezers (ProOrder)

probuilder
// Halve exposure after two losing trades in a row
baseSize = 4
IF positionperf(1) < 0 AND positionperf(2) < 0 THEN
  tradeSize = max(1, baseSize / 2)
ELSE
  tradeSize = baseSize
ENDIF

IF NOT onmarket AND close CROSSES OVER average[50](close) THEN
  BUY tradeSize CONTRACTS AT MARKET
ENDIF

De twee meest recente gesloten trades worden voor elke instap bekeken. Na twee verliezen op rij handelt de strategie op halve grootte totdat een trade positief sluit.

Veelvoorkomende fouten en valkuilen

  • Verhouding, geen percentage. De functie geeft een ratio terug, dus een winst van 3 procent leest als 0.03. Vergelijken met hele getallen zoals positionperf(0) > 3 wordt bijna nooit geactiveerd. Vermenigvuldig alleen voor weergave met 100.
  • Bruto, voor kosten. Kosten en commissies zijn niet meegerekend, dus een trade die licht positief uitleest kan live een netto verlies zijn. Drempels dicht bij nul worden het sterkst beïnvloed.
  • Geen open positie. Zonder positie in de markt is de waarde bij index 0 zinloos voor beslissingslogica. Beveilig uitlezingen van positionperf(0) met ONMARKET, LONGONMARKET, of SHORTONMARKET.
  • Bereik per positie. POSITIONPERF aggregeert nooit. Resultaten op accountniveau optellen door over indexen te lussen is fragiel; STRATEGYPROFIT levert het cumulatieve geldbedrag al.