Passer au contenu
Toutes les stratégies

Stratégies

Trading algorithmique : effet de la semaine mensuelle d’échéance des options sur les ETF indiciels US : position longue dès SPY/QQQ/IWM/DIA, maintenue jusqu’à la semaine OPEX ; position courte facultative durant la semaine post-échéance (USEQ 1-DAY, calendrier seul, équipondéré, sortie sur signal ou durée) | Stratmill

Résultat: Abandonné

OpexWeekIndexEtfLongShortUseq

Résumé des résultats

Cette stratégie a testé si la prime de rendement publiée sur OPEX semaine se transpose aux quatre principaux ETF indiciels US : position longue pendant la semaine d’expiration, avec une éventuelle position short la semaine suivante. Le backtest sur l’historique complet (2000-2026, 2,520 jambes) n’a décelé aucun défaut dans le code ou la comptabilité, mais la stratégie a perdu 61.3%, avec un Sharpe de -0.20 et un drawdown de 69.2%. Le volet témoin long seulement a rapporté environ +0.016% par jambe, sous la dérive hebdomadaire normale, et l’effet s’est inversé après 2020. L’analyste l’a abandonnée lors de l’examen du backtest pour espérance négative après une itération. L’analyste a précisé que cela invalide la version sur panier de ETF, et non le résultat de l’étude sur les actions individuelles du S&P 100.

Hypothèse

Test de structure calendaire du cycle mensuel d’expiration des options sur actions (OPEX) sur les quatre ETF indiciels US dont les marchés d’options cotées sont les plus profonds : SPY.USEQ, QQQ.USEQ, IWM.USEQ, DIA.USEQ (barres quotidiennes, plusieurs décennies d’historique). Des résultats publiés (Stivers & Sun, « Returns and Option Activity over the Option-Expiration Week for S&P 100 Stocks », J. Banking & Finance 2013) montrent que les grandes capitalisations pouvant faire l’objet d’options enregistrent des……Afficher plusAfficher moins

Test de structure calendaire du cycle mensuel d’expiration des options sur actions (OPEX) sur les quatre ETF indiciels US dont les marchés d’options cotées sont les plus profonds : SPY.USEQ, QQQ.USEQ, IWM.USEQ, DIA.USEQ (barres quotidiennes, plusieurs décennies d’historique). Des résultats publiés (Stivers & Sun, « Returns and Option Activity over the Option-Expiration Week for S&P 100 Stocks », J. Banking & Finance 2013) montrent que les grandes capitalisations pouvant faire l’objet d’options enregistrent des rendements anormalement HIGH durant la semaine qui se termine à l’expiration mensuelle (troisième vendredi), puis des rendements relativement faibles la semaine suivante. Le mécanisme proposé est la couverture delta des teneurs de marché : ils détiennent un inventaire net long d’options, dénouent leurs couvertures et maintiennent les cours autour de certains niveaux à mesure que l’intérêt ouvert arrive à échéance ; ce soutien disparaît après l’expiration. Règle : chaque mois, déterminer le jour mensuel OPEX (troisième vendredi ; s’il ne s’agit pas d’une séance de trading, prendre la séance précédente) à partir du calendrier des séances de la plateforme (src.strategies.helpers.sessions). Volet LONG : prendre une position longue équipondérée sur les quatre ETF à l’ouverture de la séance située `entry_sessions_before` séances avant OPEX (référence 4 = le lundi de la semaine OPEX) ; sortir à l’ouverture `exit_sessions_after` séances après OPEX (référence 1 = le lundi suivant OPEX). Volet POST (catégorie post_opex_mode) : « flat » = rester en liquidités jusqu’à la prochaine entrée OPEX (volet témoin) ; « short » = inverser immédiatement la position pour prendre une position courte équipondérée sur les quatre ETF à cette même ouverture, puis la couvrir à l’ouverture de la séance située 5 séances plus tard (fin de la semaine suivant l’expiration). Exécution : la décision est prise à la clôture de la barre précédente et exécutée à l’ouverture de la séance suivante (plateforme next_open_fill, prise en charge native sur USEQ). Aucun indicateur ni signal dérivé des cours : seules entrées utilisées, le calendrier de la bourse et les barres quotidiennes des quatre ETF. L’exposition brute est plafonnée à 100% des fonds propres (25% par ETF), sans effet de levier ; le contrôle du risque défini repose donc sur l’option (b) : sortie temporelle et taille plafonnée. Nouveauté par rapport aux travaux antérieurs de la base de connaissances : le corpus comprend SPY tests calendaires de l’effet de fin de mois et de la dérive pré-FOMC, mais aucun test du cycle d’expiration des options sur quelque place que ce soit. Les instruments forment un panier 4-ETF, plutôt que SPY seul, et la structure long/court teste explicitement l’ordre de rendements supposé (semaine OPEX > semaine suivant OPEX), avec le volet « flat » comme témoin apparié. Calcul des frais : le coût d’un aller-retour USEQ est d’environ 0.025% du notionnel. L’excédent attendu de la semaine OPEX par rapport à une semaine moyenne est d’environ 0.2-0.4% par jambe (l’estimation publiée pour le S&P 100 est du même ordre ; je m’attends à un effet moindre sur les ETF et ces dernières années), donc une capture d’environ 0.25% par jambe représente 10x le coût d’un aller-retour. Nombre de transactions attendu : 4 ETF × 12 mois × environ 25 ans (IWM depuis 2000) = environ 1,200 jambes longues, et environ 2,400 jambes avec le volet court. Cela représente 48-96 jambes par an sur les quatre ETF, soit une faible rotation selon la norme de L209.

Directions et places sous-représentées : long_only est 77.6% (quota <=55%), d’où une stratégie long/short avec un volet témoin flat ; BINANCE est 52%, ce qui évite entièrement les USD-M crypto. Les barres quotidiennes USEQ fournissent plusieurs décennies d’historique et un seuil de coûts 0.025% qu’un avantage calendaire peut dépasser. Aucune hypothèse de cycle OPEX ne figure dans la base de connaissances. La stratégie utilise quatre ETF au lieu de la série unique SPY, déjà surexploitée, ne nécessite aucun flux supplémentaire (L189) et négocie bien moins de 50 fois par année et par instrument (L209).

negative_expectancy. Sur l’historique complet (2000-2026, 2,520 jambes), la référence perd de l’argent : total -61.3%, PF 0.876, avg_trade_return_pct -0.120% face au seuil plancher +0.05% USEQ, drawdown 69.2% face à la limite 25%. Le volet témoin flat ajustable est également sous le seuil plancher. Ses 1,260 jambes longues de OPEX semaines affichent une moyenne de +0.016% chacune (PF 0.96, net -.2k), sous la dérive hebdomadaire ordinaire des indices. La prime sur OPEX semaines est absente sur ces ETF et est devenue négative après 2020 (-0.25% par jambe). Les plages ajustables (entrée 2-6 séances avant OPEX, sortie 0-2 après) ne déplacent une fenêtre d’environ 1 semaines que de quelques jours autour d’une semaine sans prime ; le signal IC relève du bruit (t=1.3), et l’optimisation n’a donc aucune cible. La préoccupation QA se confirme sur l’historique complet. Portée : cela invalide cette mise en œuvre sur panier de ETF de Stivers & Sun (2013), mais pas leur résultat transversal sur les actions individuelles du S&P 100. Aucun défaut de code ou de comptabilité n’a été détecté.

Implémentation

Cycle mensuel d’expiration des options fondé uniquement sur le calendrier sur SPY/QQQ/IWM/DIA (USEQ quotidien). Chaque mois, OPEX est le troisième vendredi, ou la séance précédente si ce vendredi est férié, selon le calendrier des séances de la plateforme (helpers.sessions). La stratégie prend une position longue sur les quatre ETF à pondération égale (25% des fonds propres chacun x marge 0.98, actions entières, 1x), de l’ouverture `entry_sessions_before` séances avant OPEX (référence 4, le lundi de la semaine……Afficher plusAfficher moins

Cycle mensuel d’expiration des options fondé uniquement sur le calendrier sur SPY/QQQ/IWM/DIA (USEQ quotidien). Chaque mois, OPEX est le troisième vendredi, ou la séance précédente si ce vendredi est férié, selon le calendrier des séances de la plateforme (helpers.sessions). La stratégie prend une position longue sur les quatre ETF à pondération égale (25% des fonds propres chacun x marge 0.98, actions entières, 1x), de l’ouverture `entry_sessions_before` séances avant OPEX (référence 4, le lundi de la semaine OPEX) jusqu’à l’ouverture `exit_sessions_after` séances après OPEX (référence 1, le lundi suivant). Avec post_opex_mode='short', elle inverse la position à cette même ouverture pour prendre une position short à pondération égale, au moyen d’un ordre par jambe dimensionné selon la quantité détenue plus la nouvelle position short, puis la rachète `post_hold_sessions` (5) séances plus tard. Le mode « flat » est le volet témoin, qui reste en liquidités. Les décisions prises à la clôture de la séance d visent la phase de la séance de trading suivante, car USEQ exécute l’ordre à cette ouverture. calculate_signal renvoie la phase OPEX signée de cette séance : les séances par rapport à l’expiration mensuelle OPEX la plus proche, négatives avant celle-ci et >= 0 à partir de cette date. La phase est une fonction pure de l’horodatage de la barre ; les redémarrages et les backtests donnent donc les mêmes résultats. Les jambes supplémentaires ne sont négociées que sur une barre horodatée à la même clôture que SPY.

C’est l’hypothèse telle qu’énoncée qui est mise en œuvre. Aucun indicateur n’est utilisé ; seules entrées, le calendrier de la bourse et les barres quotidiennes des quatre ETF. L’exécution utilise la fonctionnalité next_open_fill prise en charge : une décision à la clôture de la barre N est exécutée à l’ouverture de la séance suivante ; la phase est donc évaluée pour next_trading_day(d). Les transitions de sans-position à position et de position à sans-position pour SPY passent par le chemin de base……Afficher plusAfficher moins

C’est l’hypothèse telle qu’énoncée qui est mise en œuvre. Aucun indicateur n’est utilisé ; seules entrées, le calendrier de la bourse et les barres quotidiennes des quatre ETF. L’exécution utilise la fonctionnalité next_open_fill prise en charge : une décision à la clôture de la barre N est exécutée à l’ouverture de la séance suivante ; la phase est donc évaluée pour next_trading_day(d). Les transitions de sans-position à position et de position à sans-position pour SPY passent par le chemin de base should_enter/should_exit. Les inversions, ainsi que toutes les transitions QQQ/IWM/DIA, passent par _submit_entry_instrument/_submit_exit_position. Une inversion est un ordre unique sans réduction seulement (quantité détenue + nouvelle taille) : la position short commence à la même ouverture que la fin de la position longue, sans paire clôture puis ouverture. L’exposition brute est plafonnée à 4 x 25% x 0.98 = 98% des fonds propres. Le 0.98 sizing_buffer est un paramètre fixe non répertorié. Il maintient la quatrième jambe d’une inversion sur la même barre sous le plafond de marge initiale de 1x après frais ; sans lui, cette jambe serait plafonnée. Le contrôle du risque est l’option (b) : sortie temporelle et dimensionnement plafonné, sans stop puisque l’hypothèse n’en prévoit pas. La référence post_opex_mode est « short » afin de tester l’ensemble de l’ordre de rendement long/short ; « flat » reste le volet témoin ajustable. Les noms du plan d’optimisation sont implémentés tels quels : entry_sessions_before [2,6], exit_sessions_after [0,2] et post_opex_mode {flat, short} sont ajustables ; l’effet de levier 1.0, weight_per_etf 0.25 et post_hold_sessions 5 sont fixes. Aucun paramètre n’est plafonné, donc aucun _param_bounds n’est déclaré. Nombre de transactions attendu : environ 12 jambes longues par ETF par an, plus 12 jambes short par ETF par an en mode « short ». À noter : le volet short sur des ETF indiciels d’actions va à l’encontre d’une forte dérive haussière ; le témoin « flat » pourrait donc bien faire mieux.

Résultats de vérification

Facultatif : augmentez légèrement la marge de dimensionnement (p. ex. 0.95) ou calculez la taille à partir des fonds propres nets des positions inversées si le plafond de 1x doit être strictement respecté à l’ouverture.

Les rapports du bac à sable indiquent peak_margin_utilization / peak_entry_leverage de 1.062 à 2022-01-24, le lundi suivant OPEX, lorsque les quatre jambes s’inversent. Les ordres d’inversion sont dimensionnés à held_qty + nouvelle position courte à partir de la clôture de la barre de décision, mais sont exécutés à l’ouverture de la séance suivante. Un écart entre la clôture et l’ouverture, ainsi que l’exécution séquentielle des inversions, peuvent porter le notionnel brut légèrement au-dessus de 1x. Le moteur a accepté les ordres et le dépassement est d’environ 6% ; il ne s’agit donc pas d’un défaut de dimensionnement.

Aucun changement nécessaire. Conservez la redéfinition volontaire.

min_bars_required() est redéfini pour renvoyer 2 (signalé par l’analyse statique comme base_shadow). Cela ne pose pas de problème ici : le signal est une fonction pure du calendrier et n’a pas besoin d’historique de prix. Le plan d’évaluation définit séparément warmup_bars 25.

Le bac à sable non optimisé (2020-2026, 1626 séances, référence post_opex_mode='short') a perdu 47.6% : Sharpe -0.78, PF 0.61, transaction moyenne -0.40% du notionnel sur 620 jambes clôturées, drawdown maximal 49.6% face à la limite contractuelle de 25%. Le volet short pèse principalement sur les résultats (taux de réussite short 0.36 contre 0.45 pour le long) : vendre à découvert la semaine suivant OPEX revient à lutter contre la dérive de l’indice, et les coûts d’emprunt ($495) s’y ajoutent. Les jambes longues restent également sous 50% gains ; la prime sur OPEX semaines de Stivers & Sun (2013, actions individuelles du S&P 100) pourrait donc ne pas se transposer aux ETF après 2020. Premier contrôle : le volet témoin « flat » sur l’historique complet, et vérifier que les jambes longues seules dépassent nettement le coût aller-retour d’environ 0.025% USEQ. Le capital engagé par transaction est d’environ 24% des fonds propres par jambe (avg_position_pct 24.3) ; le contrôle de dimensionnement L211 est donc satisfaisant et les résultats correspondent à la taille visée.

Revue du backtest

Sharpe
-0,20
Rendement total
-61,33%
Drawdown max
69,21%
Total des transactions
2520
Taux de réussite
47,9%
Facteur de profit
0,88

Le code met en œuvre l’hypothèse telle qu’elle a été formulée. Vérification ponctuelle : en juillet 2000, OPEX était un vendredi 07-21. Les positions longues ont été ouvertes le lundi 07-17 à l’ouverture et clôturées le lundi 07-24 à l’ouverture ; la position short a ensuite couru du 07-24 au 07-31, à chaque fois sur les quatre ETF.

L’échantillon est vaste et fiable : 2,520 jambes sur 26 ans (2000-2026), avec un audit des données d’entrée sans anomalie, accounting_valid et end_unrealized 0%.

Le dimensionnement est conforme aux prévisions : avg_position_pct représente 24.4% par jambe, l’exposition brute est plafonnée près de 100%, et le contrôle du risque consiste en une sortie temporelle.

La référence (volet short) perd de l’argent. Le rendement total est de -61.3%, PF 0.876, Sharpe -0.20, avg_trade_return_pct -0.120% face au seuil plancher de +0.05% USEQ, et le drawdown maximal est de 69.2% face à la limite contractuelle de 25%.

Le volet témoin flat (jambes longues uniquement, calculées à partir des transactions) est également sous le seuil plancher. Sur 1,260 jambes, avg_trade_return_pct est de +0.016%, PF 0.96 et le P&L net est de -.2k. Les jambes durent en moyenne environ 7 jours ; +0.016% par jambe représente donc BELOW la dérive inconditionnelle des actions sur une semaine (environ 0.1-0.15%). La semaine OPEX n’affiche aucune prime par rapport à une semaine moyenne.

Jambes longues par période : 2000-09 +0.020%, 2010-19 +0.194%, 2020-26 -0.253%. La seule décennie positive s’est inversée depuis 2020. Par ETF : DIA -0.054%, SPY +0.004%.

Jambes short par période : -0.256% au total (2000-09 +0.093%, 2010-19 -0.366%, 2020-26 -0.587%). Cela reflète principalement les ventes à découvert contre la dérive de l’indice, auxquelles s’ajoutent .35k de frais d’emprunt.

Le IC du signal exécuté est de 0.049 (t=1.3), ce qui ne permet pas de le distinguer du bruit.

Résumé des résultats

Sur les ETF indiciels liquides, la semaine OPEX n’a généré aucune prime par rapport à une semaine ordinaire après frais ; vendre à découvert pendant la semaine suivant l’expiration revenait surtout à parier contre la dérive des actions et entraînait des frais d’emprunt. Un futur test de cette idée devrait porter sur l’échantillon transversal d’actions individuelles étudié dans l’article original, et non sur un panier indiciel de ETF.

L’analyste l’a abandonnée lors de l’examen du backtest pour espérance négative, avant optimisation. avg_trade_return_pct était sous le seuil plancher +0.05% USEQ et le drawdown dépassait la limite 25%. Même le volet témoin flat rapportait moins que la dérive hebdomadaire ordinaire des indices, les jambes longues sont devenues négatives après 2020 (-0.25% par jambe), et le signal IC (0.049, t=1.3) était impossible à distinguer du bruit ; les plages ajustables n’offraient donc aucune cible d’optimisation.

Test fondé uniquement sur le calendrier de l’effet de l’expiration mensuelle des options (Stivers & Sun 2013) : conserver une position longue à pondération égale sur SPY/QQQ/IWM/DIA, avec des barres quotidiennes USEQ, pendant la semaine OPEX, puis prendre éventuellement une position short sur le panier pendant la semaine suivant l’expiration. L’hypothèse est que la couverture du delta par les teneurs de marché soutient les cours jusqu’à l’échéance, puis cesse de les soutenir.

La référence avec le volet short a perdu de l’argent sur 2000-2026, pour 2,520 jambes : rendement total -61.3%, Sharpe -0.20, facteur de profit 0.876, avg_trade_return_pct -0.120% et drawdown maximal 69.2%. Les jambes longues 1,260 de OPEX semaines ont affiché à elles seules une moyenne de seulement +0.016% (PF 0.96), et les jambes short une moyenne de -0.256%.

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.