diff --git a/MyIA.AI.Notebooks/QuantConnect/BOOK_MAPPING.md b/MyIA.AI.Notebooks/QuantConnect/BOOK_MAPPING.md index 57e3322a0c..f2dd899827 100644 --- a/MyIA.AI.Notebooks/QuantConnect/BOOK_MAPPING.md +++ b/MyIA.AI.Notebooks/QuantConnect/BOOK_MAPPING.md @@ -219,7 +219,7 @@ Pour 14 et 15, le texte ne donne pas de Sharpe, mais le balayage de paramètres | 14 | « la plupart des combinaisons ne sont pas profitables » ; échelle du balayage : Sharpe de −0,55 à 0,20 ; paramètres publiés : 500 échantillons d'apprentissage, univers de 3 | 2018-12-31 → 2024-04-01, capital 100 k, constituants de QQQ, CNN temporel | [ML-Temporal-CNN](projects/ML-Temporal-CNN/) : Sharpe 0,161, CAGR 4,81 %, pire baisse 31,7 %. **Rejeu dans les conditions du livre : Sharpe 0,202, CAGR 6,11 %, pire baisse 44,7 %, profit net 36,6 %, 624 ordres** | code du projet : 2015-01-01 → 2024-01-01, modèle de frais de nos campagnes comparatives ; rejeu : conditions du livre, paramètres publiés | `REPRODUIT` : 0,202 est à la borne haute de l'échelle du balayage (0,20, lue à 0,03 près) et dans la tolérance [−0,80 ; 0,45] | | 15 | « toutes les combinaisons sont profitables » ; échelle du balayage : Sharpe de 0,42 à 1,02 ; paramètres publiés : 4 jours par échantillon, 100 échantillons, univers de 10 | 2019-01-01 → 2024-04-01, capital 1 M, plus grandes capitalisations technologiques, `GaussianNB` | [ML-Gaussian-Classifier](projects/ML-Gaussian-Classifier/) : Sharpe 0,361, CAGR 12,49 %, pire baisse 47,4 %. **Rejeu dans les conditions du livre : Sharpe 0,582, CAGR 18,69 %, pire baisse 41,8 %, profit net 146,0 %, 1813 ordres** | code du projet : 2015-01-01 → 2026-01-01, capital 100 k, modèle de frais de nos campagnes comparatives ; liquidation complète quand aucune action n'est prédite en hausse ; rejeu : conditions du livre, paramètres publiés | `REPRODUIT` : 0,582 est dans l'intervalle du balayage (0,42 à 1,02) | | 16 | Sharpe 1,695 | 2023-11-01 → 2024-03-01, capital 100 k, TSLA, résumés d'articles Tiingo par un LLM | Sharpe 0,686, CAGR 15,45 %, pire baisse 22,7 % | SPY, 2015-01-01 → 2026-01-01 ; sans clé d'API en paramètre du projet, classement des articles par mots-clés, sans LLM | sans objet, pas de rejeu : notre projet ne joue pas le modèle du livre par défaut (ligne passée en `PARTIAL`) | -| 17 | « toutes les combinaisons sont profitables » ; paramètres publiés : `max_size` 100, `step_size` 10, seuil de confiance 0,5, détention 10 jours | 2019-01-01 → 2024-04-01, capital 100 k, USDCAD, CNN chargé depuis l'Object Store | [ML-HeadShoulders-CNN](projects/ML-HeadShoulders-CNN/) : aucune mesure publiée. **Rejeu dans les conditions du livre : profit net −0,062 %, Sharpe −24,1, CAGR −0,012 %, pire baisse 0,2 %, 8 ordres** | code du projet : 2015-01-01 → 2024-01-01, courtage OANDA ; rejeu : conditions du livre, paramètres publiés ; le modèle étant absent de notre Object Store, un CNN entraîné sur des motifs synthétiques (journal : `Object Store model missing, training synthetic CNN`) | `ÉCART` : profit net négatif. L'écart porte sur le modèle de substitution, pas encore sur la stratégie : #19053 | +| 17 | « toutes les combinaisons sont profitables » ; paramètres publiés : `max_size` 100, `step_size` 10, seuil de confiance 0,5, détention 10 jours | 2019-01-01 → 2024-04-01, capital 100 k, USDCAD, CNN chargé depuis l'Object Store | [ML-HeadShoulders-CNN](projects/ML-HeadShoulders-CNN/) : aucune mesure publiée. **Rejeu dans les conditions du livre, modèle du carnet chargé depuis l'Object Store : profit net +0,063 %, Sharpe −25,3, CAGR +0,012 %, pire baisse 0,3 %, 8 ordres** | code du projet : 2015-01-01 → 2024-01-01, courtage OANDA ; rejeu : conditions du livre, paramètres publiés, `head-and-shoulders-model.keras` déposé dans l'Object Store de l'organisation | `REPRODUIT` : profit net positif (+0,063 %), la borne à zéro est franchie | | 18/01 | aucun chiffre dans le texte ; courbes de prévision et table de rendements mensuels | 2019-01-01 → 2024-04-01, capital 100 k, 5 actions les plus liquides, Chronos pré-entraîné | Sharpe 0,277, CAGR 7,23 %, pire baisse 13,5 % | [ML-Chronos-Foundation](projects/ML-Chronos-Foundation/), 2015-01-01 → 2026-01-01 | `NON COMPARABLE` | | 18/02 | — | Chronos ré-entraîné | — | aucune reproduction (`GAP`) | sans objet | | 19/01 | idem 18/01 | 2022-01-01 → 2023-01-01, capital 100 k, 10 actions les plus liquides, FinBERT pré-entraîné | Sharpe 0,584, CAGR 22,10 %, pire baisse 43,0 % | [ML-FinBERT-Sentiment](projects/ML-FinBERT-Sentiment/), 2015-01-01 → 2026-01-01 | `NON COMPARABLE` | @@ -228,10 +228,10 @@ Pour 14 et 15, le texte ne donne pas de Sharpe, mais le balayage de paramètres **Rejeux** (projets QuantConnect séparés, une exécution chacun) : - 15 : projet 37323229, backtest `8df461e5fffd0f0df859d0bd41296130` ; PSR 10,1 %. -- 17 : projet 37323273, backtest `87648032844af2f195239271140bcb1f` ; PSR 0 %. Quatre figures détectées (2020-07-27, 2020-07-28, 2022-03-24, 2022-08-18), confiances de 50 à 58 %. +- 17 : projet 37323273, modèle du carnet déposé dans l'Object Store, backtest `949250e3323fe73babd17d45a07ed2eb` ; PSR 0 %. Quatre figures détectées (entrées des 2020-07-28, 2021-10-05, 2022-06-01, 2022-08-19), 8 ordres. Le rejeu antérieur (`87648032844af2f195239271140bcb1f`) jouait le CNN de repli : ses quatre figures tombaient aux 2020-07-27, 2020-07-28, 2022-03-24 et 2022-08-18. Les dates diffèrent, ce qui atteste que c'est bien un autre modèle qui a tourné. - 14 : projet 37323339, backtest `672faa80ccb73bdaa629b4137f388590` ; PSR 1,3 %. -**Ce que les verdicts de la tranche 3 disent, et ce qu'ils ne disent pas.** L'échelle de couleur d'un balayage est une source plus faible qu'un chiffre du texte : elle borne la stratégie sur tout le balayage, pas le paramètre publié. Pour 15, le rejeu tombe dans cette fourchette ; sa PSR (10,1 %) rappelle qu'un Sharpe de 0,58 sur cinq ans n'est pas un avantage établi. Pour 14, le rejeu tombe à la borne haute de l'échelle, avec un profit net positif, alors que le livre dit que la plupart des combinaisons ne sont pas profitables ; l'univers publié (3) n'étant pas dans le balayage, les deux ne se contredisent pas, et la PSR du rejeu (1,3 %) ne dit pas plus. Pour 17, l'`ÉCART` porte sur le modèle : le rejeu a joué le CNN de repli, entraîné sur des motifs synthétiques, et non le modèle entraîné du livre, absent de notre Object Store. Il dit que le projet, tel qu'il tourne aujourd'hui sur QC Cloud, ne retrouve pas le signe annoncé ; il ne dit encore rien de la stratégie du livre (#19053). +**Ce que les verdicts de la tranche 3 disent, et ce qu'ils ne disent pas.** L'échelle de couleur d'un balayage est une source plus faible qu'un chiffre du texte : elle borne la stratégie sur tout le balayage, pas le paramètre publié. Pour 15, le rejeu tombe dans cette fourchette ; sa PSR (10,1 %) rappelle qu'un Sharpe de 0,58 sur cinq ans n'est pas un avantage établi. Pour 14, le rejeu tombe à la borne haute de l'échelle, avec un profit net positif, alors que le livre dit que la plupart des combinaisons ne sont pas profitables ; l'univers publié (3) n'étant pas dans le balayage, les deux ne se contredisent pas, et la PSR du rejeu (1,3 %) ne dit pas plus. Pour 17, le premier rejeu avait joué le CNN de repli, entraîné sur des motifs synthétiques, faute du modèle du carnet dans l'Object Store : l'`ÉCART` portait donc sur le modèle, pas sur la stratégie. Le modèle déposé, le rejeu conclut `REPRODUIT` sur la borne à zéro (profit net +0,063 %), et le changement de dates de détection atteste que c'est bien un autre modèle qui a tourné. Une réserve de méthode subsiste, et elle porte sur le livre plus que sur notre portage : le `research.ipynb` du livre entraîne son CNN **sur des motifs synthétiques** — les prix USDCAD qu'il charge en cellule 4 ne servent ni à l'entraînement ni à l'évaluation — et cette génération n'est pas à graine fixe. Notre exécution du carnet produit donc un modèle équivalent, non identique octet pour octet à celui du livre. C'est le protocole du carnet qui est reproduit, et le verdict porte sur le signe du profit net, pas sur la valeur exacte du Sharpe. **Écarts internes au livre** (tranche 3) :