POSITIONPERF
POSITIONPERF gibt die prozentuale Performance einer offenen oder geschlossenen Position in ProBacktest und ProOrder zurück. PositionPerf(0) liest den aktuell offenen Trade.
Syntax
PositionPerf(N)Parameter
| Name | Typ | Standard | Beschreibung |
|---|---|---|---|
N | Ganzzahl | 0 | Positionsindex. 0 liest die aktuell offene Position. Ein Wert größer als 0 liest die N-letzte geschlossene Position, daher 1 ist der letzte geschlossene Trade. |
So funktioniert es
POSITIONPERF misst, wie gut eine einzelne Position abgeschnitten hat, ausgedrückt als Verhältnis ihres Gewinns oder Verlusts zu ihren Kosten. Ein Wert von 0.05 entspricht einem Gewinn von 5 Prozent und -0.02 einem Verlust von 2 Prozent, multiplizieren Sie daher mit 100, wenn für die Anzeige eine Prozentzahl benötigt wird.
Das Index-Argument wählt aus, welche Position ausgewertet wird. Mit N = 0, oder bei weggelassenem Argument, meldet die Funktion die laufende Performance der aktuell offenen Position. Mit N > 0 es läuft rückwärts durch die geschlossenen Trades, PositionPerf(1) ist der jüngste Ausstieg, PositionPerf(2) den davor, und so weiter. Damit ist es der natürliche Baustein für Logik auf Trade-Ebene, etwa Verlustserien oder Performance-Filter.
Die Berechnung erfolgt brutto. Brokergebühren, als Kosten modellierte Spreads und Finanzierungskosten werden nicht abgezogen, daher sind die Netto-Ergebnisse im Live-Handel niedriger als die Rohwerte. Für das kumulierte Geldergebnis der gesamten Strategie verwenden Sie stattdessen STRATEGYPROFIT; POSITIONPERF beschreibt immer nur eine Position zur Zeit.
Beispiele
Beispiel 1, Den letzten geschlossenen Trade auslesen (ProBacktest)
// Gain-to-cost ratio of the most recently closed position
positionPerformance = PositionPerf(1)
GRAPH positionPerformance * 100 AS "Last trade performance in percent"Ruft die Performance des letzten abgeschlossenen Trades ab und stellt sie als Prozentwert dar. Dies ist das Referenzbeispiel aus der Originaldokumentation mit einer ergänzten Anzeigezeile.
Beispiel 2, Notausstieg bei Drawdown des offenen Trades (ProOrder)
// Close a long when the open position loses more than 2 percent
IF longonmarket AND positionperf(0) < -0.02 THEN
SELL AT MARKET
ENDIFDie offene Position wird Bar für Bar überwacht und aufgegeben, sobald ihre laufende Performance unter -0.02 fällt, ein prozentbasierter Sicherheitsausstieg, der unabhängig von jedem punktbasierten Stop funktioniert.
Beispiel 3, Größe nach zwei Verlusttrades in Folge reduzieren (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
ENDIFDie beiden letzten geschlossenen Trades werden vor jedem Einstieg geprüft. Nach zwei Verlusten in Folge handelt die Strategie mit halber Größe, bis ein Trade positiv schließt.
Häufige Fehler und Stolperfallen
- Verhältnis, nicht Prozent. Die Funktion gibt ein Verhältnis zurück, sodass ein Gewinn von 3 Prozent als 0.03 erscheint. Ein Vergleich mit ganzen Zahlen wie
positionperf(0) > 3löst fast nie aus. Multiplizieren Sie nur für die Anzeige mit 100. - Vor Kosten. Gebühren und Kommissionen sind nicht enthalten, daher kann ein Trade, der leicht positiv erscheint, im Live-Betrieb ein Nettoverlust sein. Schwellen nahe Null sind am stärksten betroffen.
- Keine Position offen. Ohne Position im Markt ist der Wert bei Index 0 für die Entscheidungslogik bedeutungslos. Sichern Sie Lesezugriffe auf
positionperf(0)mitONMARKET,LONGONMARKET, oderSHORTONMARKET. - Gültigkeitsbereich pro Position. POSITIONPERF aggregiert nie. Ergebnisse auf Kontoebene durch eine Schleife über Indexe zu summieren ist fehleranfällig; STRATEGYPROFIT liefert den kumulierten Geldbetrag bereits.
Verwandte Befehle
STRATEGYPROFIT, kumulierter realisierter Gewinn der Strategie in Geld.POSITIONPRICE, der durchschnittliche Einstiegskurs der offenen Position.TRADEPRICE, der Einstiegskurs einzelner Orders.TRADEINDEX, der Bar-Index, an dem eine Order ausgeführt wurde.COUNTOFPOSITION, die vorzeichenbehaftete Größe der offenen Position.ONMARKET, wahr, solange eine Position offen ist.LONGONMARKET, wahr, solange eine Long-Position offen ist.SELL, schließt eine Long-Position.