Stratégies
Réplication de la source d’une stratégie contrarienne long/liquidités sur la séance précédente SPY
Résultat: Abandonné
SpyPreviousSessionContrarian
Résumé des résultats
SpyPreviousSessionContrarian a tenté de reproduire une stratégie contrarienne fondée sur le signe du rendement SPY, avec exécution à l’ouverture de la séance suivante. QA a établi que le dimensionnement au cours de clôture à la décision permettait une exposition de 100.7458% à l’entrée, malgré le plafond fixe de 100% NAV. Le rapport de vérification sommaire ne contenait aussi qu’une position clôturée sur 1,647 barres quotidiennes, laissant le comportement d’exécution inexpliqué. Après trois itérations, la stratégie a été abandonnée pendant la vérification, avant l’examen du backtest, l’optimisation ou l’examen des risques.
Hypothèse
L’objectif explicite de réplication distingue cette règle du signe d’un rendement d’une moyenne-réversion générique RSI et d’un momentum hebdomadaire. Les recherches dans les instantanés n’ont trouvé aucune stratégie contrarienne correspondant exactement à SPY. Les coûts sur actions et un long historique quotidien permettent un test exécutable fidèle. La fidélité à la source prime sur l’ajout d’options, de positions courtes ou de filtres sans rapport pour atteindre les quotas.
Implémentation
Réplication quotidienne long/liquidités de SPY fondée sur le signe du rendement, avec exécution à l’ouverture suivante. La référence return_lookback=1 reste explicite. Soumission bloquée : le mécanisme d’exécution actuel ne garantit pas le plafond d’entrée de 100% NAV.
Résultats de vérification
Maintenez cette soumission bloquée jusqu’à ce que le moteur commun de backtest et la libération des ordres différés en trading démo dimensionnent les entrées en actions entières selon le prix exécutable et les NAV disponibles, coûts d’entrée inclus, avant l’appariement. Validez les entrées après un écart à la hausse et relancez la référence explicite return_lookback=1. Une marge fixe au moment de la décision ne peut garantir le plafond en cas d’écarts nocturnes arbitraires ; ne modifiez pas le contrat d’exposition fixe et ne consultez pas le cours d’ouverture futur au moment de la décision.
position_size() fixe la quantité en actions entières à floor(NAV au moment de la décision / cours de clôture à la décision), alors que l’ordre est exécuté à l’ouverture de la séance suivante. Un écart nocturne à la hausse peut faire dépasser au montant notionnel de l’entrée le plafond fixe de 100% NAV de l’hypothèse. Les contrôles d’entrée communs ont lieu à la soumission, next_open_ticks fournit le prix ultérieur sans ajuster la quantité, et _release_held_orders transmet la quantité initiale. Le bac à sable fourni montre le dépassement : peak_entry_leverage et peak_margin_utilization sont 1.007458 (100.7458%). L’utilisation de get_equity_mtm() ne résout pas le dimensionnement au prix exécutable. Il s’agit d’un défaut de dimensionnement de l’entrée, et non d’une dérive ordinaire de l’effet de levier sur une position existante.
Examinez les décisions datées, les ordres, les exécutions, les compteurs entry_diag et les états de rejet ou d’ordre en cours sur la même période, en particulier après la première sortie. Faites correspondre les épisodes admissibles de rendement négatif aux entrées soumises et exécutées avant de vous fier au rapport de réplication de référence ; n’assouplissez pas le signal pour fabriquer des transactions.
Le rapport de vérification sommaire ne contient qu’une position clôturée sur 1,647 barres quotidiennes traitées, contre environ 50–90 positions par an prévues par l’hypothèse. Les règles de signe du rendement sont accessibles et semblent correctement implémentées ; le résumé fourni ne permet pas d’établir si les entrées manquantes proviennent d’un rejet d’ordre, d’un état persistant d’ordre en cours ou d’un autre problème d’exécution. Un facteur de profit nul avec un gagnant ne démontre pas un défaut comptable.
Historique des itérations
Imposer une quantité en actions entières <= floor(NAV disponible / cours d’exécution réel), coûts d’exécution inclus, au moment de l’exécution à l’ouverture suivante, en utilisant uniquement le cours disponible à cette ouverture. Coordonner au besoin un correctif d’exécution de la plateforme ; ne lisez pas le cours d’ouverture de la barre suivante à la clôture de la décision et ne modifiez pas silencieusement le notional_fraction fixe. Relancez la vérification et confirmez que l’exposition à l’entrée ne dépasse jamais 1.0.
La quantité à l’entrée est floor(NAV / decision_close), mais l’ordre au marché est exécuté à l’ouverture de la séance suivante. Un écart nocturne à la hausse fait donc dépasser au montant investi à l’entrée le plafond de 100% NAV de l’hypothèse. Le bac à sable fourni confirme peak_entry_leverage=1.007458 et avg_position_pct=100.7458%. Le contrôle de base margin_capped_size vérifie le cours de clôture au moment de la décision, et submit_order vérifie avant l’exécution ; aucun des deux ne redimensionne l’ordre en cours à l’ouverture suivante. L’affirmation de la configuration selon laquelle les contrôles d’exécution réduisent la quantité n’est étayée ni par le parcours examiné ni par ce résultat.
Après correction du dimensionnement d’exécution, examinez les diagnostics de rejet d’entrée et d’ordre en cours ainsi que le registre des positions clôturées. Confirmez que des transitions répétées de signe négatif à non négatif génèrent les entrées et sorties attendues à l’ouverture suivante avant de vous fier aux résultats sur tout l’historique.
Le bac à sable ne rapporte qu’une position clôturée sur 1,647 barres quotidiennes, contre environ 50–90 positions par an pour l’hypothèse. Les règles de signe peuvent être déclenchées et sont correctement implémentées ; cela ne suffit donc pas à établir un défaut de stratégie, mais le test rapide ne démontre pas que les entrées et sorties se répètent. Le déploiement implicite représente environ 100.75% des capitaux propres, ce qui concorde avec le dépassement de plafond identifié séparément.
Avant l’appariement à l’ouverture suivante, faire respecter le plafond de 1.0 NAV au moyen du cours exécutable alors connu, des NAV disponibles et des coûts d’entrée applicables ; arrondir à l’entier inférieur la quantité autorisée en actions entières. Appliquer le même traitement aux ordres papier en attente et vérifier que les entrées après un écart haussier restent sous le plafond. Préserver l’exécution à l’ouverture suivante et le notional_fraction=1.0 fixe ; ni la lecture des cours futurs à l’ouverture au moment de la décision ni l’ajout d’une marge arbitraire au cours de clôture ne garantissent le contrat.
position_size() calcule les actions entières à partir des fonds propres et du cours de clôture à la décision, mais ces actions sont exécutées à l’ouverture de la séance suivante sans plafond NAV au moment de l’exécution. Un écart nocturne à la hausse peut donc faire dépasser au montant notionnel de l’entrée la limite fixe d’exposition 100% NAV/sans levier de l’hypothèse. Le bac à sable fourni le démontre : peak_entry_leverage=1.007458 et peak_margin_utilization=1.007458. La fonction auxiliaire d’entrée de base plafonne la marge au prix de décision ; next_open_ticks fournit le cours d’ouverture ultérieur sans ajustement, et _release_held_orders transmet la quantité initiale. Les commentaires reconnaissant le défaut ne le corrigent pas.
Après correction du plafond d’exécution, examinez les diagnostics de rejet d’ordre et d’ordre en cours ainsi que le registre daté des entrées et sorties ; confirmez que les transitions répétées de signe négatif à non négatif peuvent être exécutées sur la période. Conservez le rapport explicite de référence return_lookback=1.
Le bac à sable ne rapporte qu’une position clôturée sur 1,647 barres quotidiennes, contre 50–90 prévues par an pour l’hypothèse, avec seulement deux observations quotidiennes effectives. Cela ne prouve pas un défaut du signal, mais la réussite du test rapide apporte peu d’éléments montrant que les entrées répétées à l’ouverture suivante fonctionnent sur toute la période.
Résumé des résultats
Dimensionner selon le cours exécutable, les NAV disponibles et les coûts d’entrée, puis rapprocher décisions, ordres et exécutions avant de faire confiance à la référence.
Après trois itérations, la couche 4 QA a rejeté le dimensionnement au cours de clôture à la décision, car un écart nocturne à la hausse pouvait dépasser le plafond NAV à l’exécution. Le faible nombre de transactions est resté inexpliqué, et les étapes ultérieures du processus n’ont pas été atteintes.
Reproduisez un signal contrarien quotidien long/liquidités fondé sur SPY, avec exécution à l’ouverture suivante, conservation pendant les rendements négatifs consécutifs et exposition en actions entières plafonnée à 100% de NAV.
QA a cité un levier maximal à l’entrée et une utilisation de marge dans le bac à sable de 1.007458 (100.7458%), au-dessus du plafond. Le rapport sommaire montrait une position clôturée sur 1,647 barres quotidiennes ; aucun rendement du backtest ni ratio de Sharpe n’était fourni.
Raison d'abandon
Analyse
Propriétés de couverture des stratégies d’investissement algorithmique à l’aide de modèles Long Short-Term Memory (LSTM) et de séries temporelles pour les indices boursiers
Stratmill est un outil de recherche et de paper trading, pas un conseil financier ni un courtier. Les résultats de backtest et de paper trading sont hypothétiques. Le trading comporte un risque de perte.