STRATEGYPROFIT
STRATEGYPROFIT gibt den kumulierten Gewinn oder Verlust in Geld für jeden geschlossenen Trade in einer ProBacktest- oder ProOrder-Strategie zurück. Offene Positionen sind ausgeschlossen.
Syntax
myCurrentProfit = STRATEGYPROFITSo funktioniert es
Jedes Mal, wenn die Strategie einen Trade schließt, wird das realisierte Ergebnis dieses Trades zu einer laufenden Summe addiert. STRATEGYPROFIT stellt diese Summe auf jeder Bar bereit, ausgedrückt in Geld statt in Punkten oder Prozent. Ein Wert von 0 auf den ersten Bars bedeutet lediglich, dass noch kein Trade geschlossen wurde.
Nur geschlossene Trades zählen. Eine Position, die noch offen ist, verändert den Wert nicht, egal wie weit sie im Gewinn liegt, bis sie geschlossen wird. Um die unrealisierte Performance der aktuellen Position zu lesen, verwenden Sie POSITIONPERF stattdessen. Die beiden ergänzen sich: STRATEGYPROFIT beschreibt die Vergangenheit, POSITIONPERF beschreibt die Gegenwart.
Die Variable wird häufig für Equity-abhängige Logik genutzt, etwa das Anhalten des Systems nach einer Drawdown-Schwelle, das Reduzieren der Größe nach einer Verlustserie oder das Schließen einer Session, sobald ein Gewinnziel erreicht ist. Wenn Positionen über Bars hinweg akkumuliert werden, setzen Sie DEFPARAM CumulateOrders = true sodass die Engine die zusammengefasste Position offen hält und den Gewinn so realisiert, wie die Logik es erwartet.
Beispiele
Beispiel 1, Teilausstieg, sobald eine Gewinnschwelle erreicht ist (ProBacktest)
DEFPARAM CumulateOrders = true // allow accumulated positions
myCurrentProfit = STRATEGYPROFIT
IF myCurrentProfit > 1000 THEN
SELL 100 SHARES AT MARKET
ENDIFSobald der realisierte Gewinn aller geschlossenen Trades 1000 Währungseinheiten übersteigt, verkauft die Strategie 100 Aktien zum Marktpreis. Dies ist das kanonische Verwendungsmuster aus der offiziellen Referenz.
Beispiel 2, Equity-Stop, der die Strategie anhält (ProOrder)
// Stop the system permanently after 500 units of realized loss
IF STRATEGYPROFIT < -500 THEN
SELL AT MARKET
EXITSHORT AT MARKET
QUIT
ENDIFEine Absicherung zum Kapitalschutz. Wenn der realisierte Verlust die Grenze überschreitet, wird jede offene Position geschlossen und QUIT verhindert, dass die Strategie weitere Orders platziert.
Beispiel 3, Die realisierte Equity-Kurve darstellen (ProBacktest)
// 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
ENDIFGRAPH zeichnet den laufenden realisierten Gewinn unter dem Backtest-Chart, wodurch leicht zu erkennen ist, wann die Strategie Geld verdient oder wieder abgegeben hat.
Häufige Fehler und Stolperfallen
- Offene Positionen sind unsichtbar.
STRATEGYPROFITbewegt sich nur, wenn ein Trade geschlossen wird. Eine Strategie, die ihn bei einer großen offenen Position abfragt, sieht veraltete Informationen. Kombinieren Sie ihn mitPOSITIONPERFwenn der aktuelle Trade relevant ist. - Geld, nicht Punkte. Der Wert ist in der Kontowährung angegeben, daher sind Schwellenwerte wie
> 1000bedeutet 1000 Währungseinheiten, nicht 1000 Punkte. Dieselbe Schwelle verhält sich bei Instrumenten mit unterschiedlichen Punktwerten sehr verschieden. - Backtest- und Live-Werte unterscheiden sich. In einem Live-Lauf von ProOrder beginnt die Summe bei null, wenn die Strategie gestartet wird, sie übernimmt die Backtest-Historie nicht. Equity-basierte Regeln verhalten sich daher direkt nach dem Einsatz anders.
- GRAPH is backtest only.
GRAPH STRATEGYPROFITfunktioniert in ProBacktest, wird aber in der Live-Ausführung von ProOrder ignoriert, sodass Diagnose-Plots verschwinden, sobald das System live handelt.
Verwandte Befehle
POSITIONPERF, nicht realisierte Performance der aktuell offenen Position.PROFIT, prozentuale Take-Profit-Konfiguration für eine Position.LOSS, prozentuale Stop-Loss-Konfiguration für eine Position.CumulateOrders, DEFPARAM, das steuert, ob sich Orders zu einer Position aufsummieren.GRAPH, stellt einen Wert unter dem Backtest-Chart zur Überprüfung dar.ONMARKET, wahr, solange eine Position offen ist.TRADEPRICE, Einstiegskurs der aktuellen Position.COUNTOFPOSITION, Größe der aktuell offenen Position.