Passer au contenu
Toutes les stratégies

Stratégies

BTCUSDT.BINANCE Perp 4H Suivi de tendance long uniquement fondé sur le déséquilibre des flux d’achat/vente des takers (3 paramètres, confluence flux d’ordres + tendance, signal agrégé à partir des ticks uniquement)

Résultat: Abandonné

BtcPerpTakerFlowImbalanceTrendLong4H

Résumé des résultats

Cette stratégie a ouvert de nouvelles perspectives pour la plateforme en produisant des signaux à partir du déséquilibre agrégé du flux d’ordres des takers plutôt que des prix ; elle a aussi servi de test d’infrastructure, qui a réussi : la série des takers a été chargée et a généré 191 transactions propres après une correction à l’itération -3, qui a rendu le plafond d’obsolescence paramétrable par une valeur de 14 jours adaptée à la cadence clairsemée des métriques. Ses chiffres étaient les plus propres de sa……Afficher plusAfficher moins

Cette stratégie a ouvert de nouvelles perspectives pour la plateforme en produisant des signaux à partir du déséquilibre agrégé du flux d’ordres des takers plutôt que des prix ; elle a aussi servi de test d’infrastructure, qui a réussi : la série des takers a été chargée et a généré 191 transactions propres après une correction à l’itération -3, qui a rendu le plafond d’obsolescence paramétrable par une valeur de 14 jours adaptée à la cadence clairsemée des métriques. Ses chiffres étaient les plus propres de sa cohorte : Sharpe de base de 0.90, faible baisse maximale et alpha positif ; après optimisation, Sharpe de 1.96, avec une analyse de sensibilité sans aucun seuil abrupt et un test hors échantillon réussi. Mais après déflation, les résultats se sont effondrés : DSR 0.318, Sharpe optimisé inférieur au seuil de chance 2.31, probabilité de surajustement du backtest de 87% et walk-forward surajusté dont l’une des fenêtres hors échantillon était négative. L’analyste l’a abandonnée comme un surajustement du meilleur parmi -225 essais : ni sa nouveauté ni sa stabilité locale ne pouvaient remplacer la significativité statistique. Une réserve supplémentaire était que le signal des takers reporté pouvait s’être dégradé en proxy périmé du bêta BTC long uniquement dans un échantillon dominé par les marchés haussiers.

Hypothèse

Stratégie de suivi de tendance long-only sur actif unique sur le perp BTCUSDT.BINANCE en utilisant des barres de 4H, avec le signal directionnel piloté par AGGREGATED TAKER ORDER FLOW (à partir des données supplémentaires trade_ticks) plutôt que par des indicateurs dérivés du prix (qui ont été testés de manière exhaustive et échouent largement empiriquement selon le journal d'abandon de cette session). Il s'agit d'une classe de mécanisme véritablement NEW pour le portefeuille de la factory — chaque stratégie……Afficher plusAfficher moins

Stratégie de suivi de tendance long-only sur actif unique sur le perp BTCUSDT.BINANCE en utilisant des barres de 4H, avec le signal directionnel piloté par AGGREGATED TAKER ORDER FLOW (à partir des données supplémentaires trade_ticks) plutôt que par des indicateurs dérivés du prix (qui ont été testés de manière exhaustive et échouent largement empiriquement selon le journal d'abandon de cette session). Il s'agit d'une classe de mécanisme véritablement NEW pour le portefeuille de la factory — chaque stratégie antérieure que j'ai examinée utilise des signaux dérivés de OHLCV (niveaux de prix, moyennes mobiles, rendements, volatilité, ratios). Le déséquilibre taker-buy/taker-sell est INFORMATIONALLY DISTINCT du prix : il mesure WHO prend la liquidité (acheteurs agressifs vs vendeurs agressifs), ce que la littérature académique sur la microstructure (Easley-Kiefer-O'Hara PIN 1996, Easley-Lopez-de Prado-O'Hara VPIN 2012) a établi comme prédictif là où le prix seul ne l'est pas. Mécanisme : à chaque clôture de barre de 4H, agréger les ticks de trade de la barre en taker_buy_volume vs taker_sell_volume, calculer le déséquilibre = (achat - vente) / (achat + vente). LONG lorsque le déséquilibre sur 4H > +0.05 (taker buying soutenu) AND prix > 100-bar SMA (confluence de tendance — le flux doit être en accord avec la tendance). Sortir lorsque le déséquilibre bascule en négatif OR le prix passe sous SMA. Les signaux de flux d'ordres ont un profil statistique fondamentalement différent de celui des signaux de momentum sur prix qui ont échoué : ils observent directement AGENT BEHAVIOR (quel côté est prêt à payer le spread) plutôt que INFERRING le comportement de l'agent à partir du prix (qui est la conséquence retardée du comportement). Seulement 3 paramètres (bien en dessous du plafond de 5 paramètres). Fréquence de trading : ~40-80 trades/an sur 6+ années de données de ticks de trade Binance → 240-480 trades au total → 16-32 OOS trades par fenêtre walk-forward, confortablement au-dessus du plancher de 5 trades. Il s'agit également d'un INFRASTRUCTURE TEST critique : si les données trade_ticks se chargent correctement dans le pipeline de la factory (le data_specification.md les liste sous catalog_data_types et le flag subscribe_trade_ticks existe), cela ouvre une toute nouvelle classe de mécanisme pour la recherche future. Si elles ne se chargent pas (similaire au manque de funding rate HL qui a bloqué les stratégies 9), l'échec lui-même est informatif et fait émerger un ticket d'infrastructure qui mérite d'être déposé.

Les retours exigeaient un DIAGNOSTIC, pas une nouvelle supposition sur le schéma. J’ai interrogé directement data/supplementary/metrics/BTCUSDT/*.parquet : 334,643 lignes, colonne taker_long_short_vol_ratio, horodatage en ms ; lignes par an : 2023=12,096 / 2024=16,990 / 2025=14,688, et le mois EVERY 2023-01..2025-12 compte >= 288 lignes (continu, simplement clairsemé par rapport aux données denses à 5 minutes 2020-2022). La condition (3) « les lignes n’existent pas -> ouvrir un ticket » est donc fausse, tout……Afficher plusAfficher moins

Les retours exigeaient un DIAGNOSTIC, pas une nouvelle supposition sur le schéma. J’ai interrogé directement data/supplementary/metrics/BTCUSDT/*.parquet : 334,643 lignes, colonne taker_long_short_vol_ratio, horodatage en ms ; lignes par an : 2023=12,096 / 2024=16,990 / 2025=14,688, et le mois EVERY 2023-01..2025-12 compte >= 288 lignes (continu, simplement clairsemé par rapport aux données denses à 5 minutes 2020-2022). La condition (3) « les lignes n’existent pas -> ouvrir un ticket » est donc fausse, tout comme la prémisse de la condition (2) selon laquelle le schéma du chargeur serait incompatible (mon chargeur lit déjà exactement cette colonne et cette clé d’horodatage). La véritable cause racine se trouvait en aval, dans mon propre code : la limite de péremption de 24h de _taker_imbalance. J’ai validé hors ligne sur le véritable entrepôt Parquet en parcourant des barres synthétiques de 4H sur 2023-2025 : la limite de 24h ne marque que 24.9% des barres avec un signal de preneur (après les filtres imbalance>0.05 et price>SMA, cela tombe à l’exposition observée d’environ 2.79%), tandis qu’une limite de 14 jours en marque 95.3% — chaque fenêtre de walk-forward de 3 pourra donc contenir des transactions. La fonction _taker_imbalance reporte déjà le ratio le plus proche antérieur ou égal lorsque la fenêtre glissante de 4h est vide ; seule la limite le rejetait. La correction consiste donc en un seul paramètre (max_lag_hours=336), sans changement de ZERO au signal, à l’entrée/sortie ou au dimensionnement, ni solution de repli fondée sur les prix (NO). Le mécanisme de flux d’ordres reste intact et peut enfin être testé sur toute la période du backtest. Remarque pour l’analyste : la couverture des preneurs de 2023-2025 est réellement plus faible que celle de 2020-2022 (environ 12% de la densité à 5 minutes), donc le signal reporté est plus grossier durant ces années ; reconstituer des métriques denses à 5 minutes pour 2023-2025 améliorerait la fidélité, mais la série est assez continue d’un mois à l’autre pour valider le walk-forward dès maintenant.

Échec du Sharpe corrigé, avec une probabilité de surajustement extrême lors de la tentative 1. DSR=0.3175 (contre le seuil de 0.95), is_significant=FALSE, le Sharpe optimisé 1.9615 BELOW le seuil de chance correspondant au maximum attendu sur 225 essais, soit 2.3078, et — de façon décisive — PBO=0.8664 (probabilité de 87% que la sélection des paramètres soit surajustée). Selon le cadre, un DSR faible combiné à un PBO très élevé justifie l’abandon. Le walk-forward le confirme : is_overfitted=TRUE, avec une moyenne……Afficher plusAfficher moins

Échec du Sharpe corrigé, avec une probabilité de surajustement extrême lors de la tentative 1. DSR=0.3175 (contre le seuil de 0.95), is_significant=FALSE, le Sharpe optimisé 1.9615 BELOW le seuil de chance correspondant au maximum attendu sur 225 essais, soit 2.3078, et — de façon décisive — PBO=0.8664 (probabilité de 87% que la sélection des paramètres soit surajustée). Selon le cadre, un DSR faible combiné à un PBO très élevé justifie l’abandon. Le walk-forward le confirme : is_overfitted=TRUE, avec une moyenne de IS 3.91 qui s’effondre à une moyenne de OOS 0.962, et OOS fenêtres [2.76, 1.32, -1.19] (dont une négative). Le probabilistic_sharpe élevé (0.9964) est le piège classique PSR-contre-DSR — il ignore la sélection sur 225 essais que PBO/DSR pénalisent. Les vrais points positifs (0 seuils de sensibilité, sharpe_ci_low +0.4252 positif, ratio de holdout véritablement validé de 1.213) mesurent la stabilité locale et une fenêtre prospective favorable, pas la significativité, et ne peuvent pas l’emporter sur un 87% PBO avec un Sharpe sélectionné inférieur au seuil de chance. Ne pas itérer (tentative 1 sur 2, déjà à l’itération 3) : la sensibilité est déjà nette, avec 0 seuils, donc le balayage a entièrement exploré la région stable, mais OOS s’effondre toujours et PBO est 0.87 — le surajustement vient du SELECTION du walk-forward sur 225 essais, pas d’un seuil corrigeable ; avec seulement 3 paramètres fondamentaux, un deuxième balayage meilleur parmi -225 retrouverait les mêmes configurations surajustées. Ne pas revise_hypothesis : le déséquilibre du flux des preneurs est un mécanisme testé pour la première fois, sans stratégie sœur promue bloquée sur une cible morte ; rien ne prouve qu’il faille le réorienter vers un nouvel instrument. Mise en garde supplémentaire (cause racine non confirmée) : le signal de « flux d’ordres » est dérivé de la série clairsemée de métriques taker_long_short_vol_ratio, avec report en avant des valeurs jusqu’à 14 jours plutôt qu’à partir des transactions brutes. Durant les périodes clairsemées de 2023-2025, il peut donc s’agir d’un instantané unique reporté jusqu’à deux semaines — se dégradant en un indicateur retardé, peu informatif, et fragilisant l’hypothèse selon laquelle il est « informationnellement distinct du prix » ; combinés au suivi de tendance BTC long uniquement dans un échantillon de 6 ans fortement haussier (alpha de base 0.02, benchmark_correlation 0.30), ces facteurs signifient qu’une grande part du rendement peut être du bêta. FAILURE PATTERN : un mécanisme de flux d’ordres véritablement novateur, au profil exceptionnellement net (0 seuils de sensibilité, Sharpe positif proche de zéro (CI), holdout validé), peut malgré tout être un surajustement du meilleur résultat parmi -225 essais — ici, PBO 0.8664 avec DSR 0.32 et un Sharpe optimisé (1.96) inférieur au seuil de chance de 2.31, auxquels s’ajoute un walk-forward is_overfitted avec une fenêtre négative de OOS, sont décisifs. Une grille de sensibilité nette et une seule fenêtre de holdout favorable ne NOT sauvent pas une optimisation dont la sélection est 87% probablement surajustée ; la nouveauté et la stabilité locale ne sont pas des preuves de significativité statistique.

Implémentation

Suivi de tendance long uniquement sur bougies 4H pour BTCUSDT.BINANCE perp, dont le signal directionnel est le déséquilibre agrégé TAKER ORDER-FLOW (issu de la série taker_long_short_vol_ratio des métriques), filtré par une tendance 100-bar SMA. LONG lorsque le déséquilibre des takers > +0.05 et clôture > SMA ; sortir lorsque le déséquilibre passe sous exit_imbalance ou clôture < SMA. L’itération 3 corrige la lacune d’exposition 2023-2025 : une requête directe du magasin de métriques a prouvé que la série des takers existe CONTINUOUSLY mois par mois sur 2020-2026 et qu’elle se chargeait correctement ; la coupure venait du plafond d’obsolescence de 24h propre à la stratégie, beaucoup plus strict que la cadence clairsemée des lignes de métriques 2023-2025 (intervalles de 1-30 jours au sein des mois). Le plafond est désormais un paramètre (max_lag_hours, valeur par défaut 336h=14 jours) qui reporte le ratio des takers le plus proche antérieur ou égal à travers les lacunes des données clairsemées.

Revue du backtest

Sharpe
0,90
Rendement total
36,26%
Drawdown max
13,11%
Total des transactions
191
Taux de réussite
40,8%
Facteur de profit
1,34

Test fonctionnel et d’infrastructure réussi : la série de métriques du flux des preneurs de liquidité se charge et génère 191 entrées (0 abandons) — cela prouve qu’une classe de mécanisme réellement nouvelle de flux d’ordres est intégrée au pipeline

Mesures ajustées au risque solides avant optimisation : Sharpe 0.90, Sortino 1.77, Calmar 2.24, max_drawdown seulement 13.1%, profit_factor 1.34

Alpha positif (+0.021), bêta faible (0.043) et benchmark_correlation faible (0.30) — un flux de rendement différencié, à peu près neutre au marché

Échantillon de transactions sain (191) sur environ 6 ans, suffisant pour un walk-forward pertinent avec un nombre adéquat de OOS transactions par fenêtre

Le rendement asymétrique (avg_win ~2x avg_loss) explique le taux de réussite inférieur à -50% — profil normal de suivi de tendance, pas un défaut

Capacité correcte (~$9.6M) ; impact modéré des coûts (impact 10.2%, commissions 9.7% du brut)

Risque pour l’intégrité du mécanisme : le report en avant en cas d’obsolescence pendant 14 jours rend le signal de flux des takers presque constant sur les périodes 2023-2025 clairsemées ; le timing des transactions peut donc être dicté par le filtre de tendance SMA — il pourrait s’agir d’une stratégie de suivi de tendance des prix déguisée en stratégie de flux d’ordres

sharpe_ci_low -0.635 (CI chevauche 0) — la significativité n’est pas encore établie ; le seuil du Sharpe déflaté doit être franchi

information_ratio -0.65 par rapport à l’achat-conservation (partiellement atténué par la faible corrélation)

Légère faiblesse récente (2023 -6.0%, 2026 -3.0%)

Analyse

Classe de mécanismes véritablement nouvelle pour le portefeuille (déséquilibre agrégé du flux d’ordres des takers) — distincte sur le plan informationnel des signaux dérivés des prix déjà épuisés

Sensibilité PASSED avec 0 seuils abrupts — les paramètres sont localement stables sur la grille testée

sharpe_ci_low est positif (+0.4252), et le test hors échantillon a bel et bien réussi (ratio 1.213, holdout_sharpe 1.167 contre un WF-OOS 0.962 positif)

Profil de risque optimisé propre : max_drawdown 10.8%, profit_factor 1.76, alpha positif 0.053, capacité de $27M, impact modeste 6.0%

Échec du Sharpe déflaté : DSR=0.3175 (contre 0.95), is_significant=false, le Sharpe optimisé 1.9615 BELOW la barre de chance du maximum attendu pour 225 essais, fixée à 2.3078

PBO=0.8664 — probabilité de surajustement du backtest de 87% ; DSR faible + PBO très élevé justifient à eux seuls de ne pas promouvoir

Walk-forward is_overfitted=TRUE : la moyenne de IS 3.91 s’effondre à une moyenne de OOS 0.962, avec OOS fenêtres [2.76, 1.32, -1.19] (une négative)

probabilistic_sharpe 0.9964 est le piège PSR-contre-DSR — ignore la sélection sur 225 essais que PBO/DSR pénalisent

La configuration de base CI chevauche 0 (base sharpe_ci_low -0.6354) ; alpha de base de seulement 0.02 avec benchmark_correlation 0.30 — une tendance BTC long uniquement dans un échantillon dominé par les marchés haussiers est difficile à distinguer du bêta

Mise en garde sur l’intégrité du mécanisme : le « flux d’ordres » est dérivé de la série clairsemée du ratio des takers des métriques, avec report en avant en cas d’obsolescence pendant 14 jours, et non des ticks de transaction bruts — pendant 2023-2025, le signal peut être une observation ponctuelle maintenue jusqu’à deux semaines, se dégradant en proxy périmé (à vérifier, non confirmé)

tous > 0

Ne pas optimiser NOT — le signal de flux des takers présente une lacune structurelle dans les données 2023-2025 (les transactions n’existent que dans 2020-2022 et 2026 ; annual_returns ignore 2023/2024/2025 ; exposure_pct 2.79%), de sorte qu’un walk-forward sur 3 fenêtres s’exécuterait sur une fenêtre entière sans données et que l’avantage du flux d’ordres ne peut pas être validé. La modification du chargeur tolérant au schéma de l’itération 2 n’a NOT comblé la lacune ; l’étape suivante est donc un diagnostic,……Afficher plusAfficher moins

Ne pas optimiser NOT — le signal de flux des takers présente une lacune structurelle dans les données 2023-2025 (les transactions n’existent que dans 2020-2022 et 2026 ; annual_returns ignore 2023/2024/2025 ; exposure_pct 2.79%), de sorte qu’un walk-forward sur 3 fenêtres s’exécuterait sur une fenêtre entière sans données et que l’avantage du flux d’ordres ne peut pas être validé. La modification du chargeur tolérant au schéma de l’itération 2 n’a NOT comblé la lacune ; l’étape suivante est donc un diagnostic, pas une nouvelle hypothèse sur le schéma : (1) Interroger directement le catalogue/le magasin supplémentaire et confirmer si les lignes de volume d’achat/vente des takers `metrics` (ou taker_long_short_vol_ratio) PHYSICALLY EXIST pour BTCUSDT 2023-01 à 2025-12. Afficher le nombre de lignes et les noms réels des colonnes/clés d’horodatage pour un échantillon 2024. (2) Si les lignes existent sous un autre schéma encore (nom de colonne ou de clé d’horodatage que votre chargeur ne reconnaît toujours pas), étendre `_row_ratio`/`_row_ts`/`_load_taker_flow` pour les lire et relancer ; confirmer que exposure_pct augmente et que les transactions remplissent 2023-2025. (3) Si les lignes n’existent NOT (la série de takers des métriques n’a jamais été collectée/rétroalimentée pour ces années), il s’agit d’un problème d’infrastructure/de collecte de données, exactement comme le prévoyait l’hypothèse — le code de la stratégie ne peut pas y remédier ; il faut donc créer un ticket de collecte de données pour les métriques de flux des takers sur plusieurs années et DO NOT soumettre cette stratégie à l’optimisation avant que les données couvrent toute la période du backtest. L’optimisation ne vaut la peine qu’une fois que la série de flux des takers couvre 2020-2026 de façon continue ; le mécanisme est prometteur, mais actuellement impossible à tester.

Résumé des résultats

Un mécanisme véritablement novateur au profil exceptionnellement net — aucun seuil de sensibilité, Sharpe positif proche de zéro (CI), et un holdout validé — peut tout de même être un surajustement du meilleur résultat parmi N essais. Les travaux futurs doivent donc considérer un PBO élevé associé à un Sharpe corrigé inférieur au seuil dû à la chance comme décisif, quelle que soit la stabilité locale, et vérifier qu’un signal issu de données supplémentaires (ici, une série de preneurs reportée jusqu’à 14 jours pendant les périodes clairsemées de 2023-2025) ne se dégrade pas en simple indicateur retardé de tendance des prix.

L'analyste l'a abandonné après optimisation (tentative 1 sur 2, déjà itération 3) : malgré le passage de la sensibilité (0 cliffs), un Sharpe positif CI-low (+0.425), et un holdout légitime (ratio 1.213), il a échoué au test du Sharpe déflaté (DSR 0.318 vs 0.95, non significatif) avec le Sharpe optimisé 1.96 en dessous du seuil de chance à 225 essais de 2.31, et — de manière décisive — PBO 0.866 (probabilité d'overfit 87%) aux côtés d'un walk-forward flagué overfit (moyenne in-sample 3.91 s'effondrant à une moyenne OOS 0.96 avec une fenêtre négative de -1.19).

Stratégie de suivi de tendance long uniquement sur bougies 4H pour BTCUSDT.BINANCE perp, dont le signal directionnel provenait du déséquilibre agrégé du flux d’ordres d’achat/vente des takers (issu de la série de ratios des takers des métriques) plutôt que des prix ; elle prenait une position longue lorsque le déséquilibre des achats des takers dépassait +0.05 et que le prix était au-dessus d’une 100 SMA ; cette classe de mécanismes de flux d’ordres à trois paramètres était délibérément novatrice et constituait un test d’infrastructure visant à vérifier que les données de flux des takers passaient dans le pipeline.

Le test d’infrastructure a réussi (la série taker s’est chargée et a généré 191 entrées nettes) et le backtest de base était solide pour la fabrique : Sharpe 0.904, rendement de +36.3%, facteur de profit 1.34, taux de réussite de 40.8%, drawdown maximal de seulement 13.1%, avec un alpha positif (0.021) et une faible corrélation au benchmark (0.30). L’optimisation l’a porté à un Sharpe de 1.96, un rendement de +88.2%, un drawdown de 10.8% et un facteur de profit de 1.76.

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.