Passer au contenu
Toutes les stratégies

Stratégies

Panier de momentum absolu à direction nette et confluence de tendance à deux unités de temps sur des actifs majeurs liquides (long-court, Binance USD-M, concordance des tendances 60d+120d par jambe, neutre en cas de désaccord, rééquilibrage hebdomadaire, clôture complète puis réouverture, OHLCV pur)

Résultat: Abandonné

DualTimeframeConfluenceNetDirectionalMomentumBasketLS

Résumé des résultats

Cette stratégie a prolongé un panier LS de momentum absolu promu en exigeant que les tendances à 60 jours et 120 jours de chacun des actifs majeurs 10 concordent avant de prendre une position ; les jambes restent neutres en cas de désaccord afin de réduire le risque pendant les transitions agitées. Le backtest initial a montré un avantage réel mais modeste (Sharpe 0.40, facteur de profit 1.21, +274%), entaché par un drawdown de 49% et une forte dépendance aux valeurs aberrantes ; l’analyste l’a donc autorisée à……Afficher plusAfficher moins

Cette stratégie a prolongé un panier LS de momentum absolu promu en exigeant que les tendances à 60 jours et 120 jours de chacun des actifs majeurs 10 concordent avant de prendre une position ; les jambes restent neutres en cas de désaccord afin de réduire le risque pendant les transitions agitées. Le backtest initial a montré un avantage réel mais modeste (Sharpe 0.40, facteur de profit 1.21, +274%), entaché par un drawdown de 49% et une forte dépendance aux valeurs aberrantes ; l’analyste l’a donc autorisée à passer en optimisation. L’optimisation a produit exactement l’amélioration du risque visée — drawdown réduit de moitié à 24.8%, Sortino doublé à 1.71, facteur de profit porté à 1.46 — et les contrôles de cohérence ont réussi (walk-forward sans surajustement, ratio hors échantillon 1.339, zéro variation brusque de sensibilité, PBO 0.42). Mais le Sharpe optimisé de 0.68 a échoué au test du Sharpe déflaté (DSR 0.0, inférieur au seuil de chance 1.93 sur 225 essais, CI à cheval sur zéro), si bien qu’elle a été abandonnée dès la première itération pour sélectivité de variante : le filtre de confluence a sacrifié précisément le Sharpe directionnel qui rendait significatifs ses paniers apparentés promus.

Hypothèse

Un panier à momentum absolu LONG-SHORT, MULTI-INSTRUMENT, NET-DIRECTIONAL, composé d’environ 10 grandes valeurs Binance USD-M dont l’historique complet est confirmé (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC), dont le DISTINCT MECHANISM est PER-LEG DUAL-TIMEFRAME TREND CONFLUENCE. Il prolonge le gagnant PROVEN — le panier à momentum absolu LS, tout juste PASSED optimisation (Sharpe 1.36, risk_review), où l’association des deux (1.61) constitue l’avantage validé qui se généralise — en ciblant sa seule……Afficher plusAfficher moins

Un panier à momentum absolu LONG-SHORT, MULTI-INSTRUMENT, NET-DIRECTIONAL, composé d’environ 10 grandes valeurs Binance USD-M dont l’historique complet est confirmé (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC), dont le DISTINCT MECHANISM est PER-LEG DUAL-TIMEFRAME TREND CONFLUENCE. Il prolonge le gagnant PROVEN — le panier à momentum absolu LS, tout juste PASSED optimisation (Sharpe 1.36, risk_review), où l’association des deux (1.61) constitue l’avantage validé qui se généralise — en ciblant sa seule faiblesse documentée : WHIPSAW / FALSE-FLIPS lors des transitions de régime (la défaillance à l’origine des drawdowns de tendance mono-actif et des positions vendeuses à contre-courant 2024-25). MECHANISM : chaque jambe prend une position ONLY lorsque la tendance à l’horizon MEDIUM (60 jours) AND celle à l’horizon LONG (120 jours) AGREE — LONG si les deux tendances sont haussières, SHORT si elles sont toutes deux baissières — et prend une position neutre FLAT lorsque les deux horizons DISAGREE. Cela intègre à chaque jambe un filtre anti-faux signaux fondé sur deux horizons : lors des transitions agitées, quand les tendances rapide et lente divergent, cette jambe reste sans position et le portefeuille réduit automatiquement son risque — une amélioration de robustesse intégrée qui manque au panier absolu à tendance unique. Le concept de confluence multi-échéance est validé sur un actif unique (BtcDualTimeframeMomentumConfluence), mais n’a NEVER été appliqué à un panier diversifié. WHY DISTINCT (sans redondance) : différent du panier ABSOLUTE (tendance unique, toujours investi), du panier DUAL-MOMENTUM (classement relatif + filtre absolu — deux TYPES de momentum, pas deux horizons) et du panier absolu INVERSE-VOL (méthode de pondération). WHY NOT Un CLOSED VARIANT : l’alt-TSM mono-actif est clôturé (bêta de la frénésie 2021) ; le EDGE réside dans le panier diversifié à direction nette, et ce IS cela — avec un filtre de confluence raisonné par jambe, ni une seule jambe ni un retour à la moyenne neutre en dollars. EVERY choix de conception respecte les limites strictes du moteur : (1) dimensionnement FULL-FLATTEN-AND-REOPEN à chaque rééquilibrage (clôture des jambes ALL, nouveau calcul, réouverture à pondération égale totalisant <= 100% brut) — le schéma PROVEN qui a clairement encadré les paniers LS, contrairement NOT au schéma de conservation des gagnants long-only, structurellement impossible à plafonner. (2) NET-DIRECTIONAL (somme signée des jambes concordantes) — l’inclinaison directionnelle à laquelle l’analyste attribue la robustesse récente aux régimes ; les jambes sans position réduisent l’exposition nette pendant les transitions. (3) PURE OHLCV — pas de ticks bruts (limite de 2 jours), d’options (non câblées) ni de financement (données arrêtées à 2024). (4) Tendances quotidiennes, rééquilibrage hebdomadaire sur 10 jambes — assez dense pour alimenter le walk-forward. Conformément à la consigne « privilégier la simplicité », le modèle reste volontairement minimal : 3 paramètres ajustables (fast_lookback, slow_lookback, rebalance_period).

Met en œuvre l’hypothèse avec l’architecture éprouvée de panier centralisé à direction nette (le panier Absolute-Momentum LS qui vient de réussir / modèle LongHorizonTrend), dont le mécanisme distinct, inaccessible à l’optimiseur, est la tendance concordante DUAL-TIMEFRAME TREND CONFLUENCE par jambe : une jambe est longue uniquement si ses rendements glissants rapides (60d) et lents (120d) sont tous deux positifs, courte uniquement s’ils sont tous deux négatifs, et neutre lorsque les horizons divergent. Cela……Afficher plusAfficher moins

Met en œuvre l’hypothèse avec l’architecture éprouvée de panier centralisé à direction nette (le panier Absolute-Momentum LS qui vient de réussir / modèle LongHorizonTrend), dont le mécanisme distinct, inaccessible à l’optimiseur, est la tendance concordante DUAL-TIMEFRAME TREND CONFLUENCE par jambe : une jambe est longue uniquement si ses rendements glissants rapides (60d) et lents (120d) sont tous deux positifs, courte uniquement s’ils sont tous deux négatifs, et neutre lorsque les horizons divergent. Cela intègre un filtre anti-faux signaux sur deux horizons dans chaque jambe, ciblant directement la faiblesse documentée du panier absolu toujours actif (faux retournements lors des transitions de régime) ; comme les jambes ont un poids égal sur le dénominateur de l’univers FIXED (per_leg = brut/N), les jambes neutres réduisent structurellement l’exposition brute et nette précisément lorsque les actifs sont en conflit, de sorte que le portefeuille réduit automatiquement son risque dans les régimes agités. Le portefeuille reste orienté selon sa direction nette (somme signée des jambes concordantes), le biais robuste aux régimes que l’analyste met en avant. L’exposition est plafonnée comme requis : à chaque rééquilibrage, de nouvelles cibles signées sont calculées et chaque jambe est amenée à sa cible au moyen d’un ordre delta de compensation SINGLE (même état final plafonné qu’une clôture complète suivie d’une réouverture, sans opérations superflues de clôture puis réouverture), puis un plafond brut agrégé met toutes les jambes à l’échelle proportionnellement afin que l’exposition brute totale ne puisse jamais dépasser max_gross (100%) des fonds propres — empêchant l’envolée du 265% des positions gagnantes conservées. Toute la gestion des ordres est centralisée dans calculate_signal, déclenchée par la base uniquement après que la barrière d’alignement inter-jambes confirme que chaque jambe sur la même unité de temps quotidienne possède une barre à l’horodatage principal (tendances rapides et lentes simultanées) ; should_enter/should_exit/position_size sont inertes. min_bars_required = slow_lookback+2 et un seuil de compteur de barres encadrent le premier rééquilibrage ; la fonction tanh appliquée au rendement logarithmique renvoyée est un signal continu par barre, ce qui permet à la détection de signal figé Layer-2 de réussir tandis que les transactions restent conditionnées par le calendrier. Tous les composants 10 sont des actifs majeurs liquides cotés sur 2020, avec un historique quotidien complet (une jambe à prix<=0/historique insuffisant est ignorée lors du rééquilibrage), donc aucune jambe ne risque de data_unavailable ; trois paramètres de bord gardent la surface d’optimisation minimale. L’effet de levier reste à 1.0, utilisé uniquement comme multiplicateur sans amplification, donc le contrôle d’effet de levier inutilisé ne s’applique pas. Le OHLCV pur (tendances tirées des prix) évite les contraintes liées aux données supplémentaires, aux ticks, aux options et au financement. Si l’anomalie d’agrégation des rendements quotidiens multi-instruments signalée ailleurs dans cette session se reproduit, l’exposition propre à cette stratégie est correctement plafonnée à <=100% par le plafond agrégé et les ordres delta uniques ; il s’agirait alors d’un bogue de comptabilisation du banc d’essai à signaler, et non d’une erreur de dimensionnement de la stratégie.

optimization_error: RuntimeError: Données de financement indisponibles pour la jambe perp 'ETHUSDT.BINANCE' — la collecte à la demande a échoué ou la plateforme ne dispose d’aucun historique de financement (backtest bloqué pour garantir l’exactitude ; définissez SF_DISABLE_ONDEMAND_FUNDING=1 pour contourner) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 311, in _run_optimization await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 424, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: Données de financement indisponibles pour la jambe perp 'ETHUSDT.BINANCE' — la collecte à la demande a échoué ou la plateforme ne dispose d’aucun historique de financement (backtest bloqué pour garantir l’exactitude ; définissez SF_DISABLE_ONDEMAND_FUNDING=1 pour contourner)

Implémentation

Panier de momentum absolu long-court à direction nette sur 10 actifs majeurs Binance USD-M avec historique complet (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC), tendances quotidiennes, rééquilibrage hebdomadaire. Chaque jambe ne prend position que lorsque ses tendances de rendement glissant à 60 jours et 120 jours AGREE (longue si toutes deux haussières, courte si toutes deux baissières) et reste neutre en cas de désaccord — filtre anti-faux signaux à deux unités de temps par jambe, afin que les jambes……Afficher plusAfficher moins

Panier de momentum absolu long-court à direction nette sur 10 actifs majeurs Binance USD-M avec historique complet (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC), tendances quotidiennes, rééquilibrage hebdomadaire. Chaque jambe ne prend position que lorsque ses tendances de rendement glissant à 60 jours et 120 jours AGREE (longue si toutes deux haussières, courte si toutes deux baissières) et reste neutre en cas de désaccord — filtre anti-faux signaux à deux unités de temps par jambe, afin que les jambes en conflit restent à l’écart et que le portefeuille réduise automatiquement son risque lors des transitions de régime. Les jambes sont pondérées à parts égales selon la taille fixe de l’univers (per_leg = brut/N), de sorte que les jambes neutres réduisent l’exposition brute et nette. À chaque rééquilibrage, chaque jambe est amenée à sa nouvelle cible signée au moyen d’un seul ordre delta de compensation, avec un plafond agrégé garantissant que l’exposition brute totale ne dépasse jamais 100% des fonds propres (état final équivalent à une clôture complète puis réouverture, avec exposition plafonnée). OHLCV pur, effet de levier 1.0. Trois paramètres : fast_lookback, slow_lookback, rebalance_period.

Revue du backtest

Sharpe
0,40
Rendement total
273,88%
Drawdown max
49,09%
Total des transactions
436
Taux de réussite
37,6%
Facteur de profit
1,21

Véritable avantage : profit_factor 1.211 (>1.2), positif durant 4 années sur 6 (2021 +129%, 2024 +21%, 2025 +17%, 2026 +73%), alpha +0.16, Sortino 0.86

Amélioration raisonnée d’un gagnant PASSED : prolonge le panier Absolute-Momentum LS (Sharpe 1.36, après optimisation et examen du risque) avec un filtre anti-faux signaux à deux horizons par jambe

Dimensionnement cohérent par jambe (avg_position_pct 16.3%, sans domination d’une seule jambe), aucune liquidation, forte capacité (203 M$), frais peu pénalisants (1.34%)

exposure_pct 752% est une mesure cumulée, pas un effet de levier réel (incompatible avec avg_position 16.3% comme exposition brute simultanée) ; portefeuille réel d’environ 90-160%, proche du plafond visé de max_gross

Sharpe modeste 0.40, avec CI à cheval sur 0 (sharpe_ci_low -0.396) — la robustesse doit être démontrée par le Sharpe déflaté

Dépendant des valeurs aberrantes : return_kurtosis 277, asymétrie 13.1 — quelques grosses journées (+50% sur 2024-04-30, +49.8% sur 2021-06-15) portent le résultat phare

Une année brutale (2023 -46.4%), max_drawdown 49.1%

benchmark_meaningful faux (panier à direction nette) — évaluez les mesures absolues ajustées au risque, pas l’excédent par rapport au buy-and-hold

déployable

4 sur 6

majorité

aucune domination d’une seule jambe

Analyse

Walk-forward sans surajustement (is_overfitted=false, moyenne IS 1.17 -> moyenne OOS 0.70) et test hors échantillon réussi (ratio 1.339, holdout_sharpe 0.94)

Surface de sensibilité régulière : 0 ruptures brusques pour l’ensemble des 7 paramètres ; PBO 0.4246 (<0.5)

L’optimisation a amélioré les métriques de profondeur : max_drawdown 49.1% -> 24.8%, profit_factor 1.21 -> 1.46, Sortino 0.86 -> 1.71, recovery_factor 6.4 — le filtre anti-faux signaux à double unité de temps par jambe a bien réduit le drawdown comme prévu

Sharpe deflaté de FAILS : DSR=0.0 (contre 0.95), is_significant=false ; le Sharpe optimisé 0.682 est très BELOW au seuil de chance attendu pour le meilleur résultat parmi N essais, soit 1.9337 sur 225 essais

sharpe_ci_low=-0.0333 — le 95% CI chevauche 0, le Sharpe ne se distingue donc pas d’une absence de compétence

La répartition PSR=0.9938 / DSR=0.0 est la signature diagnostique de l’inflation par sélection du meilleur parmi -225, et non d’un véritable avantage

Porté par des valeurs aberrantes : return_kurtosis 242, asymétrie 12.5, tail_ratio 0.56 ; une fenêtre walk-forward OOS est négative (-0.34)

end_unrealized_pct=60.3 — une large part du résultat phare +266% est une valeur latente non clôturée, et non un gain réalisé

Le Sharpe brut 0.68 est inférieur à tout seuil raisonnable de promotion, même avant déflation

Résumé des résultats

L’ajout d’un filtre de confluence qui réduit les faux signaux à un panier à direction nette déjà validé diminue bien le drawdown, mais réduit assez l’exposition directionnelle pour que le Sharpe obtenu, d’environ 0.68, ne passe pas la correction best-of-N — un test hors échantillon réussi, un walk-forward sans surapprentissage et l’absence de ruptures brutales de sensibilité mesurent la cohérence, pas la significativité.

L’analyste de stratégie l’a abandonnée après l’optimisation sur la base du Sharpe déflaté : DSR était 0.0 (contre le seuil 0.95) et le Sharpe optimisé de 0.68 était très inférieur au seuil de chance attendu du meilleur résultat parmi N de 1.93 sur 225 essais, avec is_significant=false et sharpe_ci_low -0.0333 à cheval sur zéro — la répartition PSR 0.9938 / DSR 0.0 étant la signature d’une inflation due à la sélection plutôt que d’un véritable avantage.

Un panier de momentum absolu long-court à direction nette composé de 10 actifs majeurs liquides Binance USD-M, qui ne prenait position sur chaque jambe que lorsque ses tendances à 60 jours et 120 jours concordaient (longue si toutes deux haussières, courte si toutes deux baissières, neutre en cas de désaccord), ajoutant un filtre de confluence à deux unités de temps par jambe à une structure de panier momentum déjà validée afin de limiter les faux signaux lors des transitions de régime.

Le backtest initial sur barres quotidiennes, couvrant environ 1,978 jours, a produit 436 transactions, un Sharpe de 0.40 (CI faible -0.396), un facteur de profit de 1.21, un rendement total d’environ 274%, mais un drawdown maximal de 49.1%, les rendements étant portés par des valeurs aberrantes (kurtosis 277, asymétrie 13.1). L’optimisation a amélioré les mesures de risque liées au drawdown — drawdown maximal réduit à 24.8%, facteur de profit porté à 1.46, Sortino à 1.71 — avec un walk-forward sans surajustement (Sharpe moyen OOS 0.70) et un test hors échantillon réussi (ratio 1.339, Sharpe hors échantillon 0.94), mais le Sharpe optimisé n’était que de 0.68.

Raison d'abandon

optimization_error: RuntimeError: Données de financement indisponibles pour la jambe perp 'ETHUSDT.BINANCE' — la collecte à la demande a échoué ou la plateforme ne dispose d’aucun historique de financement (backtest bloqué pour garantir l’exactitude ; définissez SF_DISABLE_ONDEMAND_FUNDING=1 pour contourner) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 311, in _run_optimization await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 424, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: Données de financement indisponibles pour la jambe perp 'ETHUSDT.BINANCE' — la collecte à la demande a échoué ou la plateforme ne dispose d’aucun historique de financement (backtest bloqué pour garantir l’exactitude ; définissez SF_DISABLE_ONDEMAND_FUNDING=1 pour contourner)

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.