POSITIONPERF
POSITIONPERF geeft de procentuele prestatie van een open of gesloten positie in ProBacktest en ProOrder. PositionPerf(0) leest de huidige open trade.
Syntaxis
PositionPerf(N)Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
N | geheel getal | 0 | Positie-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)
// 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)
// Close a long when the open position loses more than 2 percent
IF longonmarket AND positionperf(0) < -0.02 THEN
SELL AT MARKET
ENDIFDe 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)
// 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
ENDIFDe 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) > 3wordt 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)metONMARKET,LONGONMARKET, ofSHORTONMARKET. - Bereik per positie. POSITIONPERF aggregeert nooit. Resultaten op accountniveau optellen door over indexen te lussen is fragiel; STRATEGYPROFIT levert het cumulatieve geldbedrag al.
Gerelateerde instructies
STRATEGYPROFIT, cumulatieve gerealiseerde winst van de strategie in cash.POSITIONPRICE, de gemiddelde instapprijs van de open positie.TRADEPRICE, de instapprijs van afzonderlijke orders.TRADEINDEX, de bar-index waarop een order is uitgevoerd.COUNTOFPOSITION, de grootte van de open positie met teken.ONMARKET, waar zolang er een positie open is.LONGONMARKET, waar zolang er een long positie open is.SELL, sluit een long positie.