Remise à niveau du portefeuille
Vue d'ensemble
StrategyQuant X construit les résultats d'un portefeuille en fusionnant plusieurs stratégies et en empilant leurs pertes et profits sur un solde de départ unique. Cette méthode est rapide et simple, mais elle introduit une distorsion systématique = chaque stratégie a été testée isolément, en dimensionnant ses positions en fonction de son propre compte (par exemple, 1% de $100 000). Une fois fusionné, le portefeuille s'agrandit, mais la taille des transactions individuelles ne s'ajuste jamais pour refléter le solde combiné plus important. Une stratégie qui a ouvert une position de $1 000 lorsque le portefeuille était de $100 000 ouvre toujours une position de $1 000 lorsque le portefeuille est passé à $400 000. La position est maintenant un quart de ce que le risque 1% serait en réalité.
Ce plugin ré-exécute l'historique complet des transactions du portefeuille chronologiquement, en appliquant un facteur d'échelle à chaque transaction afin que la position de chaque stratégie soit toujours dimensionnée par rapport au solde actuel du portefeuille combiné plutôt que par rapport à son propre solde de départ isolé. Le résultat est deux courbes d'actions côte à côte avec Original (correspondant exactement à SQX) et Rescaled (ce que la composition correcte aurait produit) avec un tableau de comparaison du drawdown ci-dessous.
Ce qu'il fait
- Reproduit exactement la courbe originale du portefeuille de SQX afin que vous ayez une base de comparaison vérifiée.
- Réexécute le portefeuille avec une mise à l'échelle correcte par transaction où chaque transaction est mise à l'échelle par le solde actuel du portefeuille ÷ le solde isolé de l'algo à ce moment-là.
- Affiche un graphique % pour les deux courbes afin que vous puissiez voir quand les baisses se sont produites et si le changement d'échelle les améliore ou les aggrave.
- Détecte automatiquement tous les soldes de départ à partir des données d'ordre, le début du portefeuille et le début isolé de chaque algo sont lus directement à partir du premier ordre de chaque stratégie ; aucune entrée manuelle n'est nécessaire.
- Prise en charge d'un plafond de lots maximum afin que vous puissiez voir la courbe contrainte dans le monde réel pour les limites de position de l'entreprise d'accessoires.
- Filtre de plage de dates avec démarrage à chaud. Restreindre la vue à n'importe quelle sous-période ; les transactions antérieures à la plage sont rejouées afin de ramener tous les soldes à l'état correct avant le début de la fenêtre.
- L'option Rebase to Start normalise les deux courbes au point de départ original pour n'importe quel intervalle sélectionné, ce qui permet de comparer directement deux périodes sur un pied d'égalité.
Comment ça marche
Les soldes de départ sont détectés automatiquement. Le solde de départ du portefeuille correspond à firstOrder.Balance - firstOrder.ProfitLoss. Le solde de départ isolé de chaque stratégie est détecté de la même manière à partir du premier ordre de cette stratégie (identifié par ResultName).
La courbe originale est une relecture directe : à partir du solde du portefeuille détecté, ajoutez le ProfitLoss original de chaque transaction dans l'ordre chronologique. Cela doit correspondre exactement au bénéfice net, au solde final et au drawdown déclarés par SQX. Si ce n'est pas le cas, le solde de départ détecté est erroné.
La courbe rééchelonnée utilise le même solde de départ, puis pour chaque transaction :
facteur d'échelle = solde actuel du portefeuille ÷ solde isolé de l'algo
LPL mis à l'échelle = LPL d'origine × facteur d'échelle
Le solde isolé de l'algo est mis à jour après chaque transaction (isoBal += originalPL) de sorte que le ratio reflète la façon dont le compte de cette stratégie aurait évolué en isolation. Si un plafond de lots est fixé, le facteur d'échelle est mis au plancher afin que la position implicite ne dépasse jamais maxLots ÷ originalLotSize.
Le drawdown % est suivi indépendamment du drawdown $, exactement comme le fait SQX : le pire pourcentage de baisse (pic à vallée ÷ pic local) et le pire dollar de baisse sont mesurés séparément sur l'ensemble de l'historique des transactions et reportés dans le tableau des statistiques.
Hypothèses
- Les stratégies utilisent un dimensionnement des positions basé sur le pourcentage (par exemple, 1% de risque par transaction).
- Si les stratégies utilisent des tailles de lots fixes, le facteur d'échelle modifie le P&L notionnel mais pas le nombre de lots réels. La courbe remise à l'échelle aura un aspect différent mais ne reflétera pas ce que vous pourriez réellement exécuter.
- Le champ Solde dans les ordres de portefeuille représente le solde du compte isolé par stratégie (et non le solde du portefeuille combiné).
- C'est ce que le plugin utilise pour détecter le capital de départ de chaque algo et suivre son évolution. Si SQX stocke le solde courant du portefeuille dans ce champ, les facteurs d'échelle par algo seront incorrects. Validez en vérifiant que les jetons de départ des algo détectés correspondent aux soldes de départ de votre stratégie.
- Toutes les stratégies utilisent la même devise de base
- Les valeurs du compte de résultat sont additionnées et mises à l'échelle en unités monétaires brutes ; les portefeuilles interdevises ne sont pas traités.
- La détection des soldes de départ suppose qu'aucune transaction n'a été clôturée avant le tout premier ordre dans les données.
- Si l'exportation des données est tronquée (par exemple, si vous visualisez une tranche hors échantillon), le solde initial détecté sera le solde au début de cette tranche, et non le capital configuré à l'origine.
Limites et inconvénients
La courbe rééchelonnée est une simulation et non un backtest. Le facteur d'échelle est appliqué au compte de résultat original, qui a été calculé en utilisant des lots de taille fixe. En réalité, la négociation d'un lot plus important aurait eu un impact différent sur le marché et aurait pu faire évoluer le prix différemment en votre défaveur. Cet effet est négligeable pour les instruments liquides et les comptes de petite taille, mais il peut être significatif pour les marchés illiquides ou les positions très importantes.
Les échanges qui se chevauchent ne sont pas traités. La remise à l'échelle suppose que chaque transaction est indépendante. Si deux stratégies détiennent des positions simultanément, l'exposition combinée à tout moment est la somme des deux positions mises à l'échelle - le plugin ne vérifie pas si cela enfreint les limites de marge ou d'exposition.
Le plafond de lots est appliqué par transaction, et non par position ouverte. Si plusieurs stratégies ont des transactions ouvertes simultanément, chacune est plafonnée individuellement, mais le total des lots ouverts pour toutes les positions simultanées n'est pas limité.
Le drawdown est mesuré uniquement à la clôture des transactions. Les variations d'actions au cours d'une transaction (open drawdown) ne sont pas visibles dans les données de l'ordre. Le max drawdown rapporté peut être inférieur à ce qui serait observé sur une courbe d'actions tick-par-tick.
Les stratégies à lots fixes ne présentent pas de différence significative entre l'original et le rééchelonné - le facteur d'échelle modifie le gain/la perte implicite en dollars, mais pas le comportement réel de la stratégie en matière de risque.
Ceci a pour but de vous donner une idée de la façon dont le risque de votre portefeuille va réellement évoluer, car la valeur du Drawdown dans les résultats de StrategyQuant n'est pas exacte avec le risque %.
