Portfolio-Rescaler
Übersicht
StrategyQuant X erstellt Portfolio-Ergebnisse, indem es mehrere Strategien zusammenführt und ihre Handels-GuVs auf einem einzigen Startsaldo stapelt. Dies ist schnell und einfach, führt aber zu einer systematischen Verzerrung = jede Strategie wurde isoliert getestet und ihre Positionen auf ihr eigenes Konto zugeschnitten (z. B. 1% von $100.000). Nach der Zusammenlegung wächst das Portfolio, aber die einzelnen Handelsgrößen werden nie an den größeren Gesamtsaldo angepasst. Eine Strategie, die eine $1.000-Position eröffnete, als das Portfolio bei $100k lag, eröffnet immer noch eine $1.000-Position, wenn das Portfolio auf $400k angewachsen ist. Die Position ist jetzt ein Viertel dessen, was das Risiko von 1% eigentlich ausmachen würde.
Dieses Plugin lässt die gesamte Handelshistorie des Portfolios chronologisch ablaufen und wendet dabei auf jeden Handel einen Skalierungsfaktor an, so dass die Größe der Positionen jeder Strategie immer im Verhältnis zum aktuellen kombinierten Portfoliosaldo und nicht zu ihrem eigenen isolierten Ausgangssaldo bestimmt wird. Das Ergebnis sind zwei nebeneinander liegende Aktienkurven mit Original (entspricht genau dem SQX) und Rescaled (was eine korrekte Aufzinsung ergeben hätte) mit einem Drawdown-Vergleichsdiagramm unten.
Was es bewirkt
- Die ursprüngliche Portfoliokurve von SQX wird exakt nachgebildet, so dass Sie eine überprüfte Ausgangsbasis haben, mit der Sie vergleichen können.
- Wiederholung des Portfolios mit korrekter Skalierung pro Handel, wobei jeder Handel um den aktuellen Portfoliosaldo ÷ den isolierten Saldo des Algo zu diesem Zeitpunkt neu skaliert wird
- Zeigt ein Drawdown-%-Diagramm für beide Kurven an, damit Sie sehen können, wann Drawdowns aufgetreten sind und ob eine Neuskalierung sie besser oder schlechter macht.
- Automatische Erkennung aller Startsalden aus den Auftragsdaten, der Portfoliostart und der isolierte Start jedes Algos werden direkt aus dem ersten Auftrag jeder Strategie gelesen; keine manuellen Eingaben erforderlich
- Unterstützt eine Max-Lots-Kappe, so dass Sie die reale Kurve für die Positionsgrenzen der Stützen sehen können
- Datumsbereichsfilter mit Warmstart. Beschränken Sie die Ansicht auf eine beliebige Teilperiode; Abschlüsse vor dem Datumsbereich werden wiedergegeben, um alle Salden auf den richtigen Stand zu bringen, bevor das Fenster beginnt
- Der Schalter "Rebase to Start" normalisiert beide Kurven auf den ursprünglichen Startpunkt für einen beliebigen Bereich, so dass zwei beliebige Zeiträume direkt und gleichwertig vergleichbar sind.
Wie es funktioniert
Die Anfangssalden werden automatisch erkannt. Der Startsaldo des Portfolios wird als firstOrder.Balance - firstOrder.ProfitLoss gelesen. Der isolierte Startsaldo jeder Strategie wird auf dieselbe Weise aus der ersten Order der Strategie ermittelt (identifiziert durch ResultName).
Die Originalkurve ist eine direkte Wiederholung: Beginnen Sie mit dem ermittelten Portfoliosaldo und addieren Sie den ursprünglichen ProfitLoss jedes Geschäfts in chronologischer Reihenfolge. Dies muss mit dem von SQX gemeldeten Nettogewinn, dem Endsaldo und dem Drawdown genau übereinstimmen. Ist dies nicht der Fall, ist der ermittelte Anfangssaldo falsch.
Die skalierte Kurve verwendet den gleichen Startsaldo, dann für jeden Handel:
scaleFactor = currentPortfolioBalance ÷ algoIsolatedBalance
scaledPL = originalPL × scaleFactor
Der isolierte Saldo des Algos wird nach jedem seiner eigenen Geschäfte aktualisiert (isoBal += originalPL), so dass das Verhältnis widerspiegelt, wie sich das Konto dieser Strategie isoliert entwickelt hätte. Wenn eine Obergrenze für die Anzahl der Lose festgelegt ist, wird der Skalierungsfaktor reduziert, so dass die implizite Position niemals maxLots ÷ originalLotSize überschreitet.
Der Drawdown % wird unabhängig vom Drawdown $ verfolgt, genau wie bei SQX: der schlimmste prozentuale Rückgang (Peak-to-Valley ÷ lokaler Peak) und der schlimmste Dollar-Rückgang werden separat über die gesamte Handelshistorie gemessen und in der Statistiktabelle ausgewiesen.
Annahmen
- Strategien verwenden prozentuale Positionsgrößen (z.B. 1% Risiko pro Handel)
- Wenn Strategien feste Losgrößen verwenden, ändert der Skalierungsfaktor die fiktive G&V, aber nicht die tatsächliche Losanzahl. Die neu skalierte Kurve sieht anders aus, spiegelt aber nicht wider, was Sie tatsächlich ausführen könnten.
- Das Feld "Saldo" in Portfolioaufträgen stellt den isolierten Kontosaldo pro Strategie dar (nicht den kombinierten Portfoliosaldo).
- Dieses Feld wird vom Plugin verwendet, um das Anfangskapital jedes Algos zu ermitteln und seine Entwicklung zu verfolgen. Wenn SQX den laufenden Saldo auf Portfolioebene in diesem Feld speichert, sind die Skalierungsfaktoren pro Algo nicht korrekt. Überprüfen Sie, ob die ermittelten Algo-Startchips mit den Startsalden Ihrer Strategie übereinstimmen.
- Alle Strategien verwenden die gleiche Basiswährung
- GuV-Werte werden in Rohwährungseinheiten summiert und skaliert; währungsübergreifende Portfolios werden nicht berücksichtigt.
- Bei der Erkennung des Anfangssaldos wird davon ausgegangen, dass vor dem allerersten Auftrag in den Daten keine Geschäfte abgeschlossen wurden.
- Wenn der Datenexport abgeschnitten ist (z. B. wenn Sie eine "Out-of-Sample"-Scheibe anzeigen), ist der ermittelte Anfangssaldo der Saldo am Anfang dieser Scheibe und nicht das ursprünglich konfigurierte Kapital.
Beschränkungen und Nachteile
Bei der neu skalierten Kurve handelt es sich um eine Simulation, nicht um einen Backtest. Der Skalierungsfaktor wird auf die ursprüngliche P&L angewendet, die mit festen Losgrößen berechnet wurde. In der Realität hätte der Handel mit einem größeren Lot einen anderen Einfluss auf den Markt gehabt und den Preis möglicherweise anders gegen Sie bewegt. Dieser Effekt ist bei liquiden Instrumenten und kleinen Kontogrößen vernachlässigbar, kann aber bei illiquiden Märkten oder sehr großen Positionen erheblich sein.
Sich überschneidende Abschlüsse werden nicht behandelt. Bei der Neuskalierung wird davon ausgegangen, dass jeder Handel unabhängig ist. Wenn zwei Strategien gleichzeitig Positionen halten, ist das kombinierte Risiko zu jedem Zeitpunkt die Summe der beiden skalierten Positionen - das Plugin prüft nicht, ob dies gegen Margen- oder Risikolimits verstoßen würde.
Die Obergrenze für die Anzahl der Lots gilt pro Handel, nicht pro offener Position. Wenn mehrere Strategien gleichzeitig offene Trades haben, ist jede einzelne begrenzt, aber die Gesamtzahl der offenen Lots für alle gleichzeitigen Positionen ist nicht eingeschränkt.
Der Drawdown wird nur zum Zeitpunkt des Handelsschlusses gemessen. Intra-Trade-Aktienschwankungen (offener Drawdown) sind in den Auftragsdaten nicht sichtbar. Der gemeldete maximale Drawdown kann niedriger sein als das, was auf einer Tick-by-Tick-Aktienkurve zu beobachten wäre.
Bei Fixed-Lot-Strategien gibt es keinen nennenswerten Unterschied zwischen Original und Rescaled - der Skalierungsfaktor verändert zwar den impliziten Dollargewinn/-verlust, nicht aber das tatsächliche Risikoverhalten der Strategie.
Dies soll Ihnen eine Vorstellung davon vermitteln, wie Ihr Portfoliorisiko tatsächlich skaliert, da der Drawdown-Wert in den Ergebnissen von StrategyQuant mit dem Risiko von % nicht korrekt ist.
