PROTOS, documenté
écran par écran.
PROTOS est une plateforme de recherche, validation et optimisation de stratégies de trading quantitatives, 100 % locale et hors-ligne. Cette documentation couvre chaque section réelle de l'application — tous les réglages, toutes les métriques, toutes les fonctions — du débutant complet à l'utilisateur avancé.
Bienvenue
Tout ce qu'il faut pour démarrer, comprendre la philosophie de PROTOS et trouver votre chemin dans l'outil.
Ce qu'est PROTOS
PROTOS couvre tout le cycle de vie d'une stratégie de trading : de la première idée jusqu'au déploiement en réel. Sa raison d'être tient en une phrase : séparer un vrai avantage (un « edge ») du simple hasard.
Une stratégie ne se déploie jamais sur la foi d'un seul beau backtest. Le backtest n'est qu'une étape : la validation (robustesse), l'optimisation prudente et l'arbitrage (Reco Finale) sont ce qui distingue un trader systématique sérieux d'un amateur.
Les deux niveaux de licence
| Niveau | Ce qu'il contient |
|---|---|
| PROTOS (standard) | Toute la recherche : construction de stratégies, backtest, validation, optimisation (Optimizer, FAO, THANOS, Post-FAO, Quant), découverte d'alpha, Reco Finale, Quant Tools, Propfirm, analyse macro, sources de données et export d'algo autonome. |
| PROTOS Trading Live | Ajoute l'exécution en temps réel : Chart Live, Signaux, Signal Engine, Orchestrateur, cockpits, Exec Quality, Live Optim, News React, microstructure live, comptes courtiers et flux de marché. Ces écrans portent un badge violet dans cette doc. |
Installation & activation de licence
PROTOS s'installe en quelques minutes et s'active une seule fois, totalement hors-ligne. L'application est un serveur local : l'interface s'ouvre dans votre navigateur, rien ne sort de votre machine.
Installer sur Windows
Installer sur macOS
arm64 pour Mac Apple Silicon, x86_64 pour Mac Intel).Activer la licence
L'empreinte change si vous changez d'ordinateur ou de système. Une nouvelle machine nécessite une nouvelle licence.
Premier lancement : la fenêtre de contrôle
Au tout premier démarrage, attendez l'état « Serveur actif » avant d'ouvrir l'interface. Une erreur de connexion = le serveur n'a pas fini de démarrer : attendez et actualisez.
Tour de l'interface
L'écran se lit en trois zones : le bandeau de marché en haut (cours en direct), le menu de navigation à gauche (organisé par les mêmes catégories que cette doc), et la zone de travail centrale qui change selon l'outil ouvert.
Les contrôles globaux
| Élément | Rôle |
|---|---|
| Bandeau ticker (ticker-tape) | Barre défilante en haut de l'écran qui affiche les cours en direct de plusieurs symboles. Le bouton × la masque, et la pastille ▾ ticker la réaffiche. |
| Fil d'Ariane (breadcrumb) | Indique où vous êtes dans l'application : le groupe (ex. Analyse) puis la page en cours (ex. Backtest). |
| Symbole + info (tb-sym / tb-info) | Rappelle le symbole et le timeframe du dernier calcul affiché (ex. l'actif et l'unité de temps utilisés par le backtest). |
| Indicateur « Calcul en cours » | Petit voyant animé qui s'affiche pendant qu'un backtest ou une optimisation tourne, pour signaler que le serveur travaille. |
| Badge Databento | Voyant de la connexion aux données live Databento (futures CME). Cliquer ouvre la fenêtre pour saisir ou gérer votre clé API Databento. |
| Badge LSE Live | Voyant du flux live London Strategic Edge (actions, forex, indices). Clé gratuite ; cliquer permet de saisir ou gérer la clé. |
| Personnaliser le menu (nav-custom-btn) | Permet de masquer ou afficher des sections du menu latéral. La vue choisie est sauvegardée durablement et persiste au redémarrage. |
| Live TV | Ouvre une petite fenêtre flottante (en bas à droite) avec des chaînes financières en direct (Bloomberg, Yahoo Finance, DW, etc.). |
| Bouton Stop global | Bouton rouge qui arrête tout calcul en cours (backtest, optimisation). Caché tant que rien ne tourne. |
| Export | Enregistre votre configuration (réglages du backtest) dans un fichier .json téléchargé sur votre ordinateur, pour la sauvegarder ou la partager. |
| Import | Recharge une configuration depuis un fichier .json précédemment exporté, pour retrouver vos réglages d'un seul clic. |
| Bulle d'aide « i » | Petits ronds i à côté de certaines métriques (Score, Trades, etc.). Cliquer ouvre une explication détaillée du chiffre concerné. |
| Recherche de paramètre | Champ Rechercher un paramètre… du panneau de configuration : filtre les réglages par mot-clé pour retrouver vite une option. |
Le menu de gauche regroupe les sections par catégories (Analyse, Risque, Trading, Optimisation, Macro, Outils, Export, Builder). Chaque groupe se replie. Cette documentation suit exactement la même organisation.
Le workflow A→Z
Tout dans PROTOS suit une progression logique. Gardez cette carte en tête : c'est le fil conducteur pour ne jamais déployer une stratégie fragile.
Pressé ? THANOS enchaîne automatiquement les étapes 2 à 5 en un clic (FAO multi-TF + Post-FAO + Quant + Validator + Cross-TF/Symbol + Feature Mining + Symbolic GP + Reco finale) et vous rend un classement. Voir <a href='#sec-thanos'>THANOS</a>.
Analyse
Le cœur du travail quotidien : lancer un backtest, optimiser, inspecter les trades et l'analyse détaillée.
Backtest
Le Backtest simule ta strategie de A a Z sur des donnees de marche passees (chargees via _load_data, puis run_backtest_full cote serveur). Il genere les signaux du mode actif, applique tous tes filtres (session, regime, HTF, macro, prop firm...), simule chaque trade avec SL/TP/Break-Even et coûts (spread + frais), puis produit une courbe d'equity et un tableau complet de metriques de performance et de robustesse. C'est le coeur d'analyse de PROTOS : tout part d'ici.
C'est ton premier reflexe pour tester une idee de strategie ou valider une config avant de l'optimiser, de la stresser ou de la passer en live. Tu y reviens a chaque fois que tu changes un parametre pour voir l'effet immediat sur les metriques.
Une source de donnees historiques accessible (Databento pour les futures CME, ou la source configuree dans le champ data_source). Aucune connexion courtier en temps reel n'est requise : le backtest tourne entierement sur historique.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Lancer le backtest (btn-bt) | Appelle runBacktest() : collecte toute la config puis lance POST /api/backtest. Un seul backtest a la fois (renvoie 409 si un autre tourne ; watchdog auto si bloque trop longtemps). |
| Stop (btn-bt-stop) | Interrompt le calcul en cours via stopAll() (declenche /api/backtest/stop). N'apparait que pendant un run. |
| Save as strategy | Sauvegarde la config + les metriques courantes comme strategie reutilisable sur le Chart Live (stratSaveFromBacktest()). |
| Reset | Remet la config a ses valeurs par defaut (resetConfig()). |
| Mode Replay (bt-replay-enabled) | Case a cocher : si activee AVANT le lancement, elle arme le bouton Replay pour rejouer visuellement les trades a la fin du backtest. |
| Replay (btn-bt-replay) | Ouvre le modal de replay (replayOpen(), charge /api/backtest/replay_data) pour rejouer les trades en chandeliers avec play/pause/vitesse et indicateurs (Volume, EMA 20/50/200, VWAP, Bollinger, Bid/Ask). Actif seulement si Mode Replay etait coche et qu'il y a des trades. |
| Rechercher un parametre (cfg-search-input) | Filtre en direct la liste des parametres de config (filterCfgParams()) pour retrouver vite un reglage parmi les dizaines disponibles. |
| Groupe General | symbol, timeframe, data_source, n_bars, start_date, end_date, magic, comment, lot_mode, fixed_lots, fixed_contracts, max_contracts, risk_pct, max_positions, slippage_pts, initial_capital, warmup_bars. |
| Groupe Mode / Direction | core_mode (strategie active), reverse_mode, direction_filter, candle_dir_filter, first_move_only, first_move_gap_bars, enter_each_bar, signal_edge_mode. |
| Groupe Session | allow_off_session, session_london/us/asia (+ session_asia_enable), et autorisations par jour allow_mon a allow_sun. |
| Groupe SL | sl_mode, sl_atr_mult, sl_ticks_offset, sl_fixed_gap, sl_price_level, sl_struct_atr_mult, sl_prev_day_buf_ticks, ema_sl_len, ema_sl_atr_buf, min_sl_usd, min_tp_usd. |
| Groupe TP | tp_mode, tp_param, tp_price_level, adr_len, tp_atr_len, tp_range_len, tp_ema_fast_len, tp_ema_slow_len, tp_kc_len, tp_kc_mult, tp_vwap_mult, tp_swing_piv_len. |
| Groupe Break-Even | be_mode, be_trig_pct, be_off_pct_tp, be_trail_trig_pct, be_trail_dist_pct, pip_override. |
| Groupe Regime | regime_trade_filter, regime_require_known, regime_trend_mode, trend_adx_len, trend_adx_min, trend_ema_gap_min_atr, trend_dir_enable, trend_candle_align, range_win_len, range_win_max_usd. |
| Groupe HTF Confluence | htf_enable, htf_tf, htf_method, htf_mode (confluence avec une unite de temps superieure ; charge les donnees HTF via load_htf_data). |
| Groupe Macro Event Filter (L2) | macro_filter_enable, macro_filter_window_min, macro_filter_levels : bloque les entrees autour des events macro a fort impact (FOMC, NFP, CPI...). |
| Groupe Prop Firm Guard | pf_enable et garde-fous prop firm : max signaux/pertes par jour, pause apres perte, lock apres 1er TP, daily loss %/$ , total/trailing DD, consistency, profit target, no weekend hold, close on breach. |
| Groupe Adaptive Mode | adapt_enable, adapt_pw_min, adapt_lookback, decay_enable, decay_factor, decay_reset_bars. |
| Groupe OrderBlocks | ob_enable, ob_lookback_bars, ob_swing_len, ob_impulse_min_ticks, ob_padding_ticks, ob_approach_ticks, ob_block_entries, ob_close_winners, ob_expire_bars, ob_max_zones. |
| Groupe Stats / EV | stats_enable, ev_enable, ev_capital_usd, ev_risk_pct, ev_both_policy, ev_unres_policy, ev_spread_usd, ev_fees_usd. |
| Groupe Coûts simulation | sim_spread_usd, sim_fees_usd : spread et frais appliques a chaque trade dans la simulation. |
| Groupes specifiques au mode | Reglages propres a chaque strategie : Impulse, VWAP MR, Bollinger / KC MR, Trend Pullback, Session Breakout, Squeeze Breakout, RSI2 / Stoch Scalp, DOM Microstructure. |
| Groupe ATR Regime Filter | atr_regime_enable, atr_regime_min_ratio, atr_regime_max_ratio, atr_len. |
| Groupe Daily Kill Switch | daily_kill_enable, daily_kill_profit_usd : coupe la journee une fois un profit cible atteint. |
| Groupe Levier & Contrat | leverage, contract_size, pip_value. |
| Groupe Rigueur methodologique | gap_slippage_mult/min_pct (penalite slippage sur gaps), size_with_slippage_buffer, holdout_pct (part reservee jamais touchee par l'optim), wfa_embargo_bars, wfa_ratio_threshold, wfa_pf_degradation_max, ml_overlay_disable_during_optim, ml_overlay_embargo_trades, tf_normalize_risk. |
| Echelle (eq-scale-btn) | Bascule l'axe vertical de la courbe equity : Auto (log si forte croissance), Lineaire ou Log. |
| Trades (btn-trade-viz) | Ouvre la liste detaillee des trades (page Trades) via showPage('trades'). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Score | Note composite 0-100 (sharpe, expectancy, DD, profit factor, nb trades, PnL, calmar via _compute_unified_score). Vert si >=70, jaune 45-74, rouge <45. Reperes : >=75 excellent, 60-74 acceptable, <40 mauvais. Ne jamais optimiser uniquement dessus. |
| Trades | Nombre de trades executes. Pilier statistique : <30 = non significatif, 100-300 acceptable, >300 robuste, >1000 haute confiance. |
| Win Rate | % de trades gagnants. Vert si >=50%, sinon rouge. A lire avec le Profit Factor et le RR. |
| Profit Factor | Gains bruts / pertes brutes. Vert >=1.5, jaune 1-1.5, rouge <1 (perdant). |
| Expectancy R | Gain moyen par trade en multiples de R (risque). Vert si >0. C'est l'edge moyen de la strategie. |
| EV / trade $ | Esperance de gain par trade en dollars (ev_per_trade_$). Carte mise en avant (highlight). |
| Max DD | Drawdown maximal en % (perte max depuis un sommet d'equity). Clampe a 999.9%. Plus bas = mieux ; viser <25% pour le live. |
| Total PnL % | PnL cumule. Affiche le rendement COMPOSE (coherent avec Capital final) ; un sous-libelle montre la somme additive non composee si elle differe. |
| Sharpe | Rendement ajuste au risque (volatilite). Enrichi par le moteur Rust si dispo. Plus haut = mieux. |
| Sortino | Comme Sharpe mais ne penalise que la volatilite baissiere. Plafonne a +/-100 pour eviter les valeurs aberrantes. |
| Calmar | Rendement annualise / Max Drawdown. Mesure le rendement par unite de risque de perte. |
| Capital final | Equity finale en $ (equity_final) = capital initial composE par les PnL des trades. |
| Kelly Half % | Demi-fraction de Kelly recommandee pour le sizing. Une suggestion adaptee a la taille d'echantillon (kelly_recommended_%) s'affiche dessous, car peu de trades sur-estiment Kelly. |
| ROI / marge % | Retour sur la marge engagee (roi_on_margin_%) : pertinent pour le levier / futures. |
| MinTRL | Bailey-Lopez de Prado : nb minimum de trades pour conclure que le Sharpe > 0 a 95% de confiance. Vert si n >= MinTRL (significatif), rouge sinon. '—' si SR<=0 ou n trop petit. |
| Beta vs asset | Correlation ponderee entre PnL quotidien de la strategie et returns du sous-jacent. |beta|<0.2 = alpha pur, 0.2-0.7 = mixte, >0.7 = pari directionnel. |
| Quality L2 | Score 0-100 de stabilite mensuelle (% mois profitables, CV des returns, longueur de losing streak, pire mois). >70 = qualite elevee, <40 = perf lumpy / regime-dependante. |
| Kyle's lambda | Impact prix par unite de volume (cov(delta prix, flux signe)/var(flux signe)). <=1e-7 = marche liquide (ES, EURUSD), >=1e-5 = illiquide (slippage attendu eleve). |
| Adverse sel. | % de trades ou le prix bouge CONTRE nous dans les 3 barres suivant l'entree. <20% = bon timing, >40% = signal tardif (chasing). |
| Trailing DD $ / Commissions / Moy. Contrats | Metriques specifiques futures, affichees seulement quand l'instrument est un future (is_futures) : drawdown trailing en $, commissions cumulees, nombre moyen de contrats. |
| Courbe Equity (c-equity) | Croissance du capital trade apres trade. Pente reguliere ascendante = strategie saine ; plateaux = phases steriles ; drawdowns brutaux = fragilite. Une ligne 'Coût cumule' montre les frais cumules si visible. |
| Visualisation Trades (c-trades-viz) | Panneau optionnel sous la courbe : visualise SL/TP en $ par trade avec une mini table detaillee. |
Comment faire
- Renseigne toujours sim_spread_usd et sim_fees_usd (groupe Coûts simulation) : un backtest sans coûts est trop optimiste.
- Utilise la barre de recherche de parametres pour ne pas te perdre dans les dizaines de groupes de config.
- Croise Score et Trades/MinTRL : un Score eleve sur <100 trades est souvent du surfit.
- Si un backtest semble bloque, le serveur a un watchdog qui re-arme automatiquement apres un delai ; sinon clique Stop avant de relancer.
- Pour juger la stabilite dans le temps, regarde Quality L2 plutot que le seul PnL total.
- Un seul backtest peut tourner a la fois : relancer pendant un calcul renvoie une erreur 409 'Un calcul est deja en cours'.
- Le bouton Replay ne s'active que si Mode Replay etait coche AVANT le lancement ET qu'il y a au moins un trade.
- Le Total PnL % affiche par defaut le rendement compose ; la somme additive (non composee) n'apparait qu'en sous-libelle si elle differe nettement.
- Le mode 10 (DOM Microstructure) exige data_source = databento ; sinon le mode est invalide.
- Les metriques Trailing DD $, Commissions et Moy. Contrats restent cachees tant que l'instrument n'est pas un future.
- Le bloc Pre-Optimizer (Signal Optimizer) present dans le code de cette page est masque (display:none) et non utilise.
Optimizer
L'Optimizer est un moteur de balayage (sweep) qui prend la config actuellement chargee dans Backtest et teste automatiquement de nombreuses combinaisons de parametres (SL, TP, BE, signal, regime, direction, ATR, etc.) sur tes donnees historiques. Chaque combinaison est backtestee, puis chaque resultat est note par un score 0-100 et accompagne de ses metriques (Sharpe, Profit Factor, drawdown, expectancy R...). Le calcul est hybride : il utilise le moteur Rust quand disponible pour le balayage SL/TP/BE, puis Python pour le reste, sinon Python pur. Il existe deux modes : Mode A balaye tout automatiquement, Mode B ne balaye que les categories que tu coches.
A utiliser apres avoir defini une config de base correcte dans Backtest, quand tu veux trouver les meilleurs reglages d'une strategie. Lance d'abord Mode A pour reperer les bonnes zones, puis Mode B pour affiner une famille de parametres precise sans tout rebrasser.
Une config de base chargee dans Backtest (symbole, timeframe, mode actif). Les donnees historiques du symbole choisi sont chargees via le backend MT5 (ou reutilisees depuis le cache serveur) ; aucune connexion temps reel n'est requise, c'est un calcul sur historique.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Mode A (btn-oa) | Lance un sweep automatique COMPLET de tous les parametres du mode actif : SL, TP, BE, Signal, Direction, Regime, ATR, plus Order Blocks, Reverse-Range, Decay, Adaptive, PropFirm, etc. Echantillonnage aleatoire borne par Max combos. Appelle /api/optimizer/a. |
| Mode B (btn-ob) | Lance un sweep limite aux categories cochees ci-dessous ; les categories non cochees gardent la valeur de la config de base. Appelle /api/optimizer/b (refuse si aucune categorie cochee). |
| Stop | Arrete le calcul en cours (appelle /api/backtest/stop) et reinitialise l'etat d'execution. |
| Max combos | Nombre maximum de combinaisons a tester (defaut 1000 pour Mode A, 1500 pour Mode B). Plafonne le temps de calcul ; le budget est reparti env. 2/3 Rust SL/TP/BE et 1/3 Python pour le reste. |
| Trier par (opt-sort) | Metrique de tri du sweep cote backend : Expectancy R, Profit Factor, Win Rate, Total PnL %, Sharpe, ou Min DD (max_drawdown_%). |
| Categorie SL (ob-sl) | Inclut dans le sweep : sl_mode, sl_atr_mult, sl_ticks_offset, ema_sl... (coche par defaut en Mode B). |
| Categorie TP (ob-tp) | Inclut : tp_mode, tp_param, tp_atr_len, adr_len, kc_mult... (coche par defaut). |
| Categorie Break-Even (ob-be) | Inclut : be_mode, be_trig_pct, be_trail_trig_pct... (coche par defaut). |
| Categorie Signal (ob-sig) | Inclut tous les parametres de signal du mode actif (l'indice dynamique indique le mode courant ; si ALL_MODES, balaye les params de chaque sous-moteur). Coche par defaut. |
| Categorie Regime (ob-regime) | Inclut : regime_filter, trend_mode, adx_min, ema_gap... |
| Categorie Direction (ob-dir) | Inclut : direction_filter, reverse_mode, candle_dir... |
| Categorie Risk (ob-risk) | Inclut : risk_pct, lot_mode, fixed_lots. |
| Categorie ATR (ob-atr) | Balaye atr_len sur 7, 10, 14, 20, 28. |
| Categorie HTF (ob-htf) | Inclut : htf_method, htf_mode. |
| Categorie Session (ob-session) | Inclut les sessions london, us, asia et les jours de la semaine. |
| Categorie Order Blocks (ob-ob) | Inclut : ob_enable, approach, expire, min_profit_r... (port MQ5 complet). |
| Categorie Reverse-Range Filter (ob-revrange) | Inclut : rev_range_enable, behavior, range_kill... |
| Categorie Signal Decay (ob-decay) | Inclut : decay_enable, factor, reset_bars. |
| Categorie Adaptive Mode (ob-adapt) | Inclut : adapt_enable, pw_min, lookback. |
| Categorie PropFirm Guard (ob-pf) | Inclut les garde-fous prop firm : daily/total DD, consistency, EOD flat... |
| Categorie ATR Regime Filter (ob-atrreg) | Balaye le min/max ratio d'ATR vs la moyenne (filtre de regime de volatilite). |
| Categorie Daily Kill Switch (ob-dkill) | Inclut enable + un seuil de coupure profit_usd journalier. |
| Categorie Stats / EV (costs) (ob-evcosts) | Inclut spread_usd, fees_usd et la politique de couts (both/unres). |
| Categorie DOM Microstructure (ob-domp) | Inclut : edge_mode, imbalance, vacuum, absorption... |
| Categorie TICK Microstructure (ob-tickp) | Inclut : flow, impulse, acceleration, window_ms... |
| Categorie ALL_MODES min_agree (ob-allm) | Balaye le seuil de consensus min_agree de 1 a 5 (pertinent en mode ALL_MODES). |
| Categorie General (ob-gen) | Inclut : warmup_bars, slippage_pts, max_positions. |
| Categorie Levier & Contrat (ob-lev) | Inclut : leverage, contract_size, pip_value. |
| Config de base (opt-cfg-summary) | Affiche en lecture seule le point de depart du sweep (symbole, timeframe, n_bars, core_mode, capital, risk_pct, atr_len, filtres...) issu de la config Backtest. |
| Modifier les parametres | Renvoie a la page Backtest pour changer la config de base avant de relancer un sweep. |
| Trier (opt-sort-live) | Re-trie le tableau de resultats deja affiche cote client, sans relancer de calcul : Score, EV R, PF, WR%, DD% (croissant), PnL%, Sharpe, Sortino, Calmar. |
| CSV (exportOptResults) | Exporte toutes les lignes de resultats au format CSV (protos_optimizer.csv). |
| Sauvegarder tout (saveAllSetups) | Sauvegarde le Top 10 des resultats dans le localStorage du navigateur (cle par symbole, max 50 setups). |
| Competition Top 5 (runCompetition) | Re-backteste reellement les 5 meilleurs setups via /api/competition et affiche un classement compare (medailles + metriques). |
| Setups sauvegardes (showSavedSetups) | Ouvre/ferme le panneau des setups conserves localement ; le compteur indique le nombre sauvegarde pour le symbole courant. |
| Appliquer (par ligne, applyOptRow) | Charge les parametres de la ligne dans la config Backtest via /api/optimizer/apply. |
| Sauvegarder (par ligne, saveSetup) | Conserve ce setup precis dans le localStorage. |
| Effacer tout (clearSavedSetups) | Supprime tous les setups sauvegardes du symbole (avec confirmation). |
| Charger (Competition, applyCompRow) | Charge dans Backtest le setup d'une ligne du classement Competition. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Colonnes de parametres | Premieres colonnes du tableau : la valeur de chaque parametre balaye pour cette combinaison (ex. sl_mode, tp_param, core_mode...). Permettent de reproduire le setup. |
| score | Note unifiee 0-100 (Sharpe 25%, Calmar 15%, EV/R 15%, DD 12%, PF 12%, Total PnL 11%, N trades 10%). Repere de lecture par couleur : >=75 excellent, >=55 bon, >=40 moyen, <25 faible. C'est le critere de tri par defaut du tableau. |
| trades | Nombre de trades fermes par cette combinaison. Un score eleve avec trop peu de trades n'est pas fiable (surajustement). |
| win_rate_% | Pourcentage de trades gagnants. Colore vert si >=50%, rouge sinon. |
| profit_factor | Gains bruts / pertes brutes. >1 = rentable ; vert si positif. En Competition, vert si >=1.2. |
| expectancy_R | Esperance par trade en multiples de R (risque). Positif = strategie a edge ; vert si >0. |
| total_pnl_% | Rendement total cumule en pourcentage du capital sur la periode. |
| max_drawdown_% | Plus grand recul de la courbe d'equity en %. Plus bas = mieux ; vert si <=10%, rouge si >20%. Triable en ordre croissant. |
| sharpe_approx | Ratio de Sharpe approxime (rendement ajuste au risque). |
| sortino | Ratio de Sortino (ne penalise que la volatilite negative) ; vert si >0. |
| calmar | Calmar = rendement annualise / max drawdown ; vert si >0. |
| kelly_half_% | Fraction de Kelly demi (taille de position prudente recommandee en %). |
| roi_on_margin_% | Retour sur marge en %, rendement rapporte a la marge mobilisee. |
| Resultats - N combinaisons | Compteur (opt-n) du nombre de combinaisons valides affichees (top 100 conservees cote serveur). |
| Message de statut (opt-status-msg) | Indique l'etat : mode en cours, categories balayees, ou nombre de combinaisons une fois termine. |
| Panneau Competition | Classement des Top 5 setups re-backtestes reellement : Rang (medaille), Score, Trades, WR%, PF, EV R, DD%, Sharpe, Sortino, Calmar. Confirme que le meilleur setup tient en backtest complet. |
| Panneau Setups sauvegardes | Liste locale par setup : score, date, symbole, TF, mode, PF, WR%, DD%, EV R, avec boutons Appliquer / supprimer. |
Comment faire
- Commence toujours par Mode A pour une exploration large, puis Mode B pour raffiner une seule famille (ex. SL/TP) autour d'une config qui marche deja.
- Ne prends pas aveuglement le top score : utilise l'onglet Sensibilite et la regle du plateau (voisins corrects) pour eviter l'overfit.
- Passe par Competition Top 5 avant d'appliquer : elle re-backteste reellement les setups et evite de retenir un faux gagnant.
- Augmente Max combos pour un balayage plus fin, mais le temps de calcul monte proportionnellement.
- Les setups sauvegardes sont stockes par symbole dans le navigateur (localStorage, max 50) : ils ne suivent pas si tu changes de machine.
- Le balayage est un echantillonnage aleatoire borne par Max combos : il n'explore PAS tout l'espace exhaustivement, surtout avec un faible budget.
- Le sweep part de la config de base Backtest : si elle est mauvaise (mauvais symbole/TF/mode), les resultats le seront aussi. Verifie la Config de base avant de lancer.
- Un seul calcul a la fois : si un backtest/optimisation tourne deja, les routes renvoient une erreur 'Calcul en cours' (409).
- Seules les 100 meilleures combinaisons sont conservees cote serveur ; l'export CSV et le tri ne portent que sur ces lignes affichees.
- Les setups sauvegardes vivent dans le localStorage du navigateur (par symbole) : vider le cache ou changer de poste les fait disparaitre.
- Score eleve mais peu de trades = signal de surajustement ; toujours croiser avec le nombre de trades et la Competition.
Trades
Cette section affiche la liste détaillée de chaque trade généré par le dernier backtest (entrée, sortie, direction, prix, SL/TP, PnL en R, en %, en $, MFE/MAE et durée). Au-dessus, une bande de statistiques globales est recalculée en direct à partir des trades affichés (R cumulé, win rate, profit factor, drawdown, etc.). Les données viennent du moteur de simulation (simulate_trades_full) servi par /api/backtest/result ; rien n'est exécuté en temps réel.
À consulter juste après avoir lancé un backtest, pour vérifier au cas par cas comment la stratégie a réellement tradé et repérer les anomalies (trades aberrants, SL trop serrés, durées anormales) avant de pousser vers l'optimisation ou l'analyse approfondie.
Avoir lancé un backtest au préalable : la liste se remplit dès que le statut renvoie des trades. Sans backtest exécuté, le tableau et les KPI restent vides (tirets).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Filtrer... (champ de recherche tr-search) | Filtre la liste en direct (fonction filterTrades) ; le texte est comparé à l'heure d'entrée, à la direction (long/short) et à la valeur du PnL R. Les statistiques globales se recalculent sur les trades filtrés. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| R cumulé | Somme des PnL en R sur les trades affichés. C'est la performance totale exprimée en multiples de risque. |
| R moy / jour | R cumulé divisé par le nombre de jours calendaires entre la première entrée et la dernière sortie. |
| R moy / sem | R cumulé rapporté au nombre de semaines de la période. |
| R moy / mois | R cumulé rapporté au nombre de mois (période / 30,44 jours). |
| R moy / an | R cumulé annualisé (période / 365,25 jours). Repère de rendement annuel attendu. |
| Trades / mois | Nombre moyen de trades par mois. Indique la fréquence d'activité de la stratégie. |
| % mois + | Pourcentage de mois calendaires positifs. Vert si >= 60%, jaune entre 50 et 60%, rouge en dessous. Clé pour la régularité (prop firm). |
| Win rate | Pourcentage de trades gagnants (PnL R > 0). Vert si >= 50%, sinon jaune. |
| Profit factor | Gains bruts en R divisés par pertes brutes en R. Affiche ∞ si aucune perte. Vert >= 1,5, jaune entre 1 et 1,5, rouge < 1. |
| Expectancy R | Espérance par trade = R cumulé / nombre de trades (moyenne du PnL R). Doit être positif. |
| Max DD (R) | Plus grand drawdown en R sur la courbe equity reconstruite dans l'ordre des trades. Affiché en rouge, lecture : plus c'est petit, mieux c'est. |
| Durée moy | Durée moyenne d'un trade (entrée → sortie), affichée en minutes (m), heures (h) ou jours (j) selon l'ordre de grandeur. |
| Compteur tr-count | Affiche X/Y trades : nombre de trades visibles après filtrage sur le total. |
| Colonne # (index) | Numéro d'ordre du trade dans la liste affichée. |
| Colonne Entree | Date et heure d'entrée (format YYYY-MM-DD HH:MM). |
| Colonne Sortie | Date et heure de sortie du trade. |
| Colonne Dir | Direction : ▲L (long, vert) ou ▼S (short, rouge). |
| Colonne Lots / Ct | En mode CFD/Forex : Lots fractionnels (4 décimales) recalculés via calc_lots. En mode Futures : Ct = nombre de contrats (entiers). La colonne change de libellé selon le mode P&L effectif. |
| Colonne Prix E | Prix d'entrée. Précision : 5 décimales en Forex/CFD, 2 décimales en Futures. |
| Colonne SL | Niveau de stop loss du trade (— si absent). |
| Colonne TP | Niveau de take profit du trade (— si absent). |
| Colonne PnL R | Résultat du trade en multiples de risque (3 décimales). Vert si positif, rouge si négatif. C'est la mesure de référence. |
| Colonne PnL % | Résultat du trade en pourcentage du capital (3 décimales). |
| Colonne PnL $ | Résultat en dollars : valeur pnl_usd stockée (calculée sur l'équity au moment de la clôture) ou, à défaut, PnL R × capital × risk_pct. Affiché en gras en mode Futures. |
| Colonne MFE R | Maximum Favorable Excursion en R : meilleur gain latent atteint pendant le trade (vert). Mesure le potentiel non capturé. |
| Colonne MAE R | Maximum Adverse Excursion en R : pire perte latente subie pendant le trade (rouge). Mesure le stress / la marge avant SL. |
| Colonne Duree | Durée du trade en minutes (différence sortie − entrée), ou — si dates manquantes. |
| Colonne BE | Indicateur de passage au break-even (champ be_triggered du trade). Note : la cellule est rendue vide dans la version actuelle du tableau, l'information n'est donc pas visuellement affichée. |
Comment faire
- Filtre par
longoushortpour comparer instantanément la performance par direction : les KPI au-dessus se mettent à jour sur le sous-ensemble. - Compare MFE R et PnL R d'un même trade : un MFE élevé loin du PnL final signale que le TP sort trop tôt ou que le trailing laisse filer du gain.
- Un MAE R proche de 1,00 sur les trades perdants confirme que le SL fait son travail ; au-delà, vérifie le sizing ou le slippage.
- La section n'a aucune connexion live ni courtier : elle ne montre QUE les trades du dernier backtest chargé. Sans backtest exécuté, tout reste à — (tirets).
- Les statistiques globales sont recalculées côté navigateur sur les trades AFFICHÉS : un filtre actif change donc tous les KPI, ce ne sont plus les chiffres de la stratégie entière.
- La colonne BE est techniquement présente mais rendue vide ; ne t'attends pas à y lire le statut break-even malgré l'en-tête.
- Le R moy / jour et dérivés exigent au moins 2 entrées datées ; sinon ces cases affichent —.
- La colonne Lots est recalculée via
calc_lotsà partir de l'équity au moment du trade ; en mode Futures elle est remplacée par le nombre de contrats (Ct) et les prix passent à 2 décimales.
Analyse détaillée
L'Analyse détaillée est un tableau de bord en 12 onglets qui décortique les trades du dernier backtest lancé. Elle calcule une note globale sur 100, la courbe de capital et le drawdown, la distribution des gains en R, les séries de gains/pertes, les excursions MAE/MFE, la performance par heure/jour/session, un Rolling Sharpe, une régression linéaire de l'equity et une analyse de sensibilité des paramètres. Tout est recalculé côté navigateur à partir des trades déjà produits, sans relancer de calcul serveur.
À consulter juste après un backtest (onglet Backtest) pour valider la qualité réelle de la stratégie avant de l'optimiser, de la passer en Monte Carlo ou de la déployer. C'est l'étape de diagnostic qui dit où la stratégie fuit (SL trop serré, mauvais créneau horaire, equity irrégulière).
Avoir lancé au moins un backtest (les trades doivent exister). L'onglet Sensibilité exige en plus d'avoir lancé l'Optimizer Mode A. Aucune connexion courtier ni licence supplémentaire.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Onglet Score | Affiche la note globale /100 et les sous-scores |
| Onglet Drawdown | Courbe equity et courbe de drawdown % |
| Onglet Distribution R | Histogramme des PnL en R par intervalles de 0.5R |
| Onglet Heatmap | Performance moyenne par heure et par jour de semaine |
| Onglet Streaks | Séries consécutives de gains/pertes |
| Onglet MAE / MFE | Statistiques d'excursion adverse/favorable et graphe par trade |
| Onglet Heures | Analyse du PnL R par heure d'entrée |
| Onglet Scatter MAE/MFE | Nuage de points MAE (X) vs MFE (Y) par trade avec insights SL/TP |
| Onglet Rolling Sharpe | Sharpe et Win Rate glissants sur fenêtre paramétrable |
| Onglet Clustering | Patterns de performance regroupés par session/heure/jour/mois |
| Onglet Régression | Régression linéaire de l'equity + canal de déviation ±1σ/±2σ |
| Onglet Sensibilité | Impact de chaque paramètre sur l'expectancy (nécessite Optimizer Mode A) |
| Sélecteur hr-view (onglet Heures) | Bascule l'affichage entre Scatter plot et Bar chart (moyenne) |
| Champ rs-window (onglet Rolling Sharpe) | Taille de la fenêtre glissante en nombre de trades, défaut 30, min 10, max 100 |
| Sélecteur cl-group (onglet Clustering) | Choisit le regroupement : Session (London/US/Asia/Other), Heure, Jour de semaine ou Mois |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Note Globale (score-global) | Score /100 avec libellé : Excellent >=80, Bon >=65, Passable >=45, Faible >=25, Mauvais en dessous. Pondération Sharpe 30% + EV 25% + DD 20% + Profit Factor 15% + Trades 10% |
| Sous-scores (Sharpe, EV / trade, Max DD, Prof. Factor, Trades, Win Rate) | Barres /100 : Sharpe 4=100pts, EV 0.4R=100pts, DD 25%=0pt, PF 2.5=100pts, 200 trades=100pts. Win Rate affiché à titre informatif (non pondéré) |
| Recommandations (score-recs) | Alertes texte générées selon les seuils : WR<45%, PF<1.2, EV<=0, DD>20%, Sharpe<0.5, et taille Kelly Half suggérée |
| Max Drawdown / DD moyen | Plus forte baisse depuis un pic et baisse moyenne, en %. À garder bas |
| Capital max / Capital final | Pic d'equity atteint et capital de clôture en €. Final vert si >= capital initial |
| Recovery Factor | Gain net / max drawdown. >=2 = vert (bon), >=1 = jaune, sinon rouge |
| Calmar Ratio | PnL total % / max drawdown %. >=1 = vert, >=0.5 = jaune, sinon rouge |
| Courbe Equity (c-eq2) | Évolution du capital trade par trade, ligne de base = capital initial |
| Drawdown % (c-dd) | Courbe du drawdown en % sous le pic, remplie en rouge |
| EV moyen (R) / Écart-type R | Espérance moyenne par trade en R et sa dispersion. EV vert si >0 |
| Skewness | Asymétrie de la distribution des R : vert si >0 (queue droite favorable), rouge si <-0.5 |
| % trades > 0 / Meilleur trade / Pire trade | Part de trades gagnants et extrêmes haut/bas en R |
| Distribution des PnL (R) (c-rdist) | Histogramme du nombre de trades par bucket de 0.5R, barres vertes >=0 rouges <0 |
| Heatmap heures / jours | EV R moyen coloré par cellule (vert positif, rouge négatif) avec nombre de trades, indices 0=Lun..6=Dim |
| Max wins / Max losses consécutifs | Plus longue série de gains et de pertes d'affilée |
| Série actuelle / Avg wins streak / Avg losses streak | Série en cours (signée) et longueur moyenne des séries gagnantes et perdantes |
| Séquence des trades (streak-bars) | Barres colorées des 200 derniers trades : vert=win, rouge=loss, gris=flat |
| MFE moyen/médian/P90 (R) | Excursion favorable maximale par trade : combien le trade est parti en profit avant clôture |
| MAE moyen/médian/P90 (R) | Excursion adverse maximale par trade : combien le trade est parti en perte (valeur absolue) |
| MFE/MAE ratio (maemfe-insight) | Rapport potentiel de gain vs risque réel. >2 excellent, >1.2 bon, sinon à améliorer ; commente le placement du SL |
| Graphe MFE vs MAE (c-maemfe) | Barres vertes vers le haut (MFE) et rouges vers le bas (MAE) par trade |
| Graphe Heures (c-hours) | Scatter PnL R par heure (jitter horizontal) ou bar chart de la moyenne, avec ligne de moyenne |
| Top créneaux horaires (hours-table) | 8 meilleurs créneaux (>=2 trades) triés par EV moyen R : Heure, Trades, WR%, EV moyen R, Verdict (Optimal >0.1R / Acceptable >0 / Éviter) |
| Scatter MAE/MFE (c-scatter) | Nuage X=MAE Y=MFE, vert=gagnant rouge=perdant, diagonale MFE=MAE de référence |
| Insights SL / TP (scatter-insight) | Analyse SL (% pertes avec MAE<0.3R = SL trop serré si >40%) et TP (% gagnants avec MFE>1.5R = TP trop tôt si >30%), plus MFE moyen des perdants |
| Sharpe moyen/min/max (Rolling) | Statistiques du Sharpe glissant calculé sur la fenêtre choisie, annualisé via sqrt(252) |
| % temps Sharpe>0 | Part de la période où le Sharpe glissant reste positif (stabilité dans le temps) |
| Courbes Rolling Sharpe / Rolling WR% (c-rsh, c-rwr) | Sharpe glissant (coloré au-dessus/en-dessous de 0) et Win Rate glissant en % |
| Graphe Clustering (c-cluster) | EV R moyen par groupe (session/heure/jour/mois), barres avec nombre de trades et valeur |
| Tableau Clustering (cluster-table) | Par groupe trié par EV moyen : Trades, WR%, EV moyen R, EV total R |
| R² / Qualité (Régression) | Qualité d'ajustement linéaire de l'equity : EXCELLENT >=0.90, BON >=0.75, ACCEPTABLE >=0.55, FAIBLE >=0.35, ALÉATOIRE en dessous |
| Pente $/trade / ±1σ / Consistance | Gain moyen par trade selon la régression, déviation type de l'equity, et ratio pente/sigma exprimé en % Sharpe trajectory |
| Graphe Régression (c-regression) | Equity réelle (verte au-dessus / rouge en-dessous du trend) + droite de tendance + canaux ±1σ et ±2σ |
| Tableau Sensibilité (sens-body) | Par paramètre : Valeur opt., EV R opt., EV R base, Delta. Construit à partir des résultats de l'Optimizer Mode A (top 20 lignes), delta vert si gain vs base |
Comment faire
- La note globale utilise exactement la même formule unifiée que le score Python du FAO : un score Analyse = score Optimizer.
- Dans Rolling Sharpe, baisse la fenêtre (ex 15-20) pour détecter les périodes faibles, augmente-la (60+) pour lisser le bruit.
- Le Verdict Optimal/Acceptable/Éviter du Top créneaux ne s'affiche que pour les heures avec au moins 2 trades.
- Dans Scatter MAE/MFE, un fort MFE moyen sur les trades perdants signale des trades qui étaient en profit avant d'être coupés — piste pour un break-even ou un trailing.
- Tout est recalculé côté navigateur à partir du DERNIER backtest : si aucun backtest n'a tourné, les onglets restent vides (—).
- Les onglets Heures, Scatter, Rolling Sharpe, Clustering et Régression ne se rendent qu'au moment où on clique sur leur onglet (rendu paresseux), pas au chargement.
- L'onglet Sensibilité reste vide tant que l'Optimizer Mode A n'a pas été lancé ; il dérive la sensibilité des lignes de résultats de l'optimizer, ce n'est pas un re-run dédié.
- Les heures/jours/sessions sont calculés en UTC (getUTCHours/getUTCDay), pas en heure locale ; les bornes de session sont fixes (London 7-12h, US 13-18h, Asia 0-5h, sinon Other).
- Le Rolling Sharpe est annualisé avec sqrt(252) en supposant ~1 trade/jour ; sur des stratégies intraday très fréquentes, la valeur absolue est indicative.
- Régression et certains rendus nécessitent un minimum de trades (au moins 5 points d'equity) sinon le graphe ne s'affiche pas.
Risque
Mesurer la robustesse et le risque d'une stratégie avant d'y croire : Monte Carlo, Kelly, Walk-Forward, Audit, Propfirm.
Monte Carlo
Le panneau prend les trades de ton dernier backtest et les réordonne aléatoirement (méthode bootstrap) un grand nombre de fois. Chaque réordonnancement produit une courbe d'equity différente, ce qui révèle à quel point ton résultat dépend de la chance dans la séquence des trades. Tu obtiens la distribution du capital final (percentiles P10 à P90), les probabilités de drawdown et de ruine, la forme statistique de la distribution, un verdict automatique et deux graphiques (fan chart + histogramme). Côté serveur, Python génère les courbes visuelles et, si le moteur Rust est disponible, il recalcule les stats clés sur au moins 5000 simulations pour plus de précision.
À utiliser juste après un backtest concluant, avant de passer en live ou en propfirm, pour vérifier que la performance n'était pas un coup de chance lié à l'ordre des trades. C'est l'étape de validation du risque qui confirme (ou non) la robustesse vue ailleurs.
Avoir lancé un backtest au préalable : la simulation utilise les trades en mémoire (_state[trades]). Minimum 5 trades clôturés, sinon erreur. Aucune connexion broker ni licence spécifique requise.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Nombre de simulations (mc-nsim) | Nombre de réordonnancements aléatoires à générer (défaut 1000). Côté Python il est plafonné à 300 pour les courbes visuelles ; côté Rust il sert de base à au moins 5000 simulations pour les stats précises. |
| Trades simulés / vide = tous (mc-ntr) | Longueur de chaque séquence simulée, c'est-à-dire combien de trades on tire (avec remise) par run. Vide = on utilise le nombre réel de trades clôturés. Permet de projeter sur un horizon plus court ou plus long que l'historique. |
| Mode resampling (mc-mode) | Méthode de rééchantillonnage. Une seule option disponible : Bootstrap (tirage aléatoire avec remise qui réordonne les trades). |
| Lancer (bouton) | Déclenche runMC() : envoie la requête POST à /api/montecarlo, remplit toutes les métriques, le verdict et les deux graphiques. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Médiane capital (mc-med) | Capital final médian sur toutes les simulations : le scénario typique attendu. |
| P10 pessimiste (mc-p10) | Capital final au 10e percentile : seulement 10% des scénarios font pire. Repère bas réaliste. |
| P25 (mc-p25) | Capital final au 25e percentile : un quart des scénarios sont en dessous. |
| P75 (mc-p75) | Capital final au 75e percentile : un quart des scénarios font mieux. |
| P90 optimiste (mc-p90) | Capital final au 90e percentile : repère haut, 10% des scénarios font encore mieux. |
| Meilleur (mc-best) | Capital final maximal observé parmi toutes les simulations (scénario extrême favorable). |
| Pire (mc-worst) | Capital final minimal observé (scénario extrême défavorable). |
| Prob. profitable (mc-pp) | Pourcentage de simulations dont le capital final dépasse le capital initial. Plus c'est haut, plus l'edge est fiable. |
| DD median max (mc-ddm) | Drawdown maximal médian en % : la perte depuis un sommet typique attendue. |
| DD P90 max (mc-ddp90) | Drawdown maximal au 90e percentile : pire drawdown dans 10% des scénarios. Sert au verdict (alerte si > 30%). |
| VaR 95% $ (mc-var95) | Value at Risk : perte maximale à 95% de confiance. Calculée côté client comme capital initial moins P10 (perte que tu ne dépasses pas dans 90% des cas). |
| CVaR 95% $ (mc-cvar95) | Expected Shortfall : perte moyenne dans les pires cas. Approximée côté client par la moyenne entre le pire scénario et le P10. |
| Prob DD > 10% (mc-dd10) | Pourcentage de simulations atteignant un drawdown supérieur à 10%. |
| Prob DD > 20% (mc-dd20) | Pourcentage de simulations atteignant un drawdown supérieur à 20%. |
| Prob DD > 30% (mc-dd30) | Pourcentage de simulations atteignant un drawdown supérieur à 30%. |
| Prob ruine < 50% (mc-dd50) | Pourcentage de simulations subissant un drawdown supérieur à 50% (proxy de ruine). Le verdict alerte au-dessus de 5%. |
| Mean return % (mc-meanret) | Rendement moyen en % du capital final sur la distribution (calculé côté client à partir de l'histogramme). |
| Std deviation (mc-stddev) | Écart-type des capitaux finaux : mesure la dispersion / volatilité des résultats. |
| Skewness (mc-skew) | Asymétrie de la distribution : positif = queue à droite (gains rares mais gros), négatif = queue à gauche (pertes rares mais sévères). Le verdict alerte si < -0.5. |
| Kurtosis (mc-kurt) | Épaisseur des queues : au-delà de 3 (et surtout > 5), événements extrêmes plus fréquents. Recommandation déclenchée si > 5. |
| Sharpe distrib. (mc-sharpe) | Ratio de Sharpe des outcomes Monte Carlo : (moyenne - capital initial) / écart-type. |
| Range P90-P10 (mc-range) | Écart en $ entre le scénario optimiste et le pessimiste. Plus il est large, plus la stratégie est sensible à la séquence des trades. |
| Asymétrie risque (mc-asym) | Ratio gain potentiel / perte potentielle : (P90 - initial) / (initial - P10). Au-dessus de 1.5 = asymétrie favorable (gain > risque). |
| Stabilité (mc-stab) | Score 0-100 : plus haut = outcomes concentrés autour de la médiane. Calculé comme 100 × (1 - range/moyenne). Recommandation si < 40. |
| Verdict (mc-verdict-label / icon / desc) | Étiquette automatique : DEPLOY (prob profit >= 75%, ruine < 1%, DD P90 < 30%), CAUTION (prob profit >= 50%, ruine < 5%, DD P90 < 50%), sinon REJECT. |
| Recommandations (mc-recos) | Conseils générés selon les seuils franchis (réduire le risk %, resserrer le SL, queue gauche, kurtosis élevée, stabilité faible, forward-test demo, etc.). |
| Fan Chart (c-mc-fan) | Trajectoires d'equity simulées avec zone P25-P75, zone P10-P90 et ligne médiane : visualise l'éventail des futurs possibles dans le temps. |
| Distribution du capital final (c-mc-dist) | Histogramme (30 bins) des capitaux finaux : montre la forme de la distribution et où se concentrent les résultats. |
Comment faire
- Concentre-toi sur l'écart P10 / P90 : un éventail serré indique une stratégie peu sensible à l'ordre des trades.
- Vise un verdict DEPLOY (prob profitable >= 75% et prob ruine < 1%) avant tout passage en live.
- Utilise le champ Trades simulés pour projeter ton risque sur l'horizon réel que tu comptes trader.
- Une asymétrie risque > 1.5 combinée à une skewness positive est un profil de risque idéal.
- Minimum 5 trades clôturés requis, sinon le serveur renvoie une erreur.
- Le Nombre de simulations Python est plafonné à 300 pour les courbes ; seules les stats Rust utilisent réellement 5000+ runs, donc augmenter la valeur n'élargit pas les graphiques.
- VaR et CVaR sont des approximations calculées côté navigateur (initial - P10 et moyenne pire/P10), pas des sorties exactes du moteur.
- Quand Rust est actif, median_max_dd_% est écrasé par la valeur P90 du drawdown, donc DD median et DD P90 peuvent afficher la même valeur.
- Le bootstrap suppose des trades indépendants : il ne capture pas les enchaînements (clusters de pertes corrélées) ni un changement de régime de marché.
- Mode resampling n'offre que Bootstrap : aucune autre méthode n'est implémentée.
Kelly / EV
Cette section calcule, a partir des vraies statistiques de ton dernier backtest (Win Rate, Avg Win, Avg Loss), l'esperance de gain par trade (EV) et la fraction optimale de capital a risquer selon le Kelly Criterion. Elle te donne la fraction Full Kelly, sa version Half Kelly et Quarter Kelly, et compare ces valeurs a ton risk % actuel. Deux graphiques montrent la croissance geometrique attendue selon le risk % et la probabilite de drawdown sur 100 trades. Un verdict automatique (DEPLOY / CAUTION / REJECT) conclut avec des recommandations concretes.
A utiliser apres un backtest, une fois que tu as un edge mesure, pour decider du risk % a appliquer en live. Particulierement utile avant de passer en reel ou sur un challenge propfirm a drawdown strict.
Avoir lance un backtest au prealable (la page lit les trades du dernier backtest via /api/kelly ; sans trades, elle renvoie une erreur). Aucune licence ni connexion courtier requise.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Calculer | Bouton qui appelle loadKelly() et l'API /api/kelly pour recalculer toutes les statistiques, formules, fractions Kelly, graphiques et le verdict a partir des trades du dernier backtest. |
| Aide (i) Statistiques de base | Ouvre l'aide kelly_stats expliquant les 8 metriques d'entree du Kelly et leurs seuils de lecture. |
| Aide (i) Formules | Ouvre l'aide kelly_formulas detaillant les 4 formules (EV, Full Kelly, Half Kelly, Quarter Kelly) et les seuils sur f*. |
| Aide (i) Sizing recommande | Ouvre l'aide kelly_sizing sur le choix de la fraction selon le contexte (compte perso vs propfirm). |
| Aide (i) Verdict | Ouvre l'aide kelly_verdict expliquant comment lire le verdict automatique et les actions recommandees. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Trades | Nombre de trades clos de l'echantillon (n_trades). Repere : > 200 = bon, 100-200 = acceptable, < 50 = stats instables. |
| Win Rate | Pourcentage de trades gagnants (win_rate_%). Pas un indicateur de qualite en soi : un WR bas peut etre excellent si le RR compense. |
| Avg Win R | Gain moyen des trades gagnants exprime en R, multiples du risque initial (avg_win_R). |
| Avg Loss R | Perte moyenne des trades perdants en R (avg_loss_R), affichee en negatif. |
| Win/Loss Ratio | Avg Win / |Avg Loss| (RR). Repere : > 2 = excellent, 1-2 = correct, < 1 = il faut un tres haut WR pour compenser. |
| EV / trade R | Esperance par trade en R : EV = WR x Avg_Win - (1-WR) x |Avg_Loss|. Doit etre > 0.1R pour etre exploitable apres frais/slippage. EV > 0 = profitable, EV < 0 = perdant. |
| EV / trade $ | La meme esperance convertie en dollars (ev_per_trade_$). En mode futures = moyenne directe des P&L reels en USD ; en CFD/Forex = EV R x budget risque (ev_capital_usd x ev_risk_pct) moins spread et fees. |
| Variance R | Dispersion des resultats autour de l'EV, calculee cote UI : WR x (Avg_Win - EV)² + (1-WR) x (-Avg_Loss - EV)². Plus elle est haute, plus l'equity est volatile et plus le Kelly doit etre reduit. |
| EV (formule substituee) | Carte affichant la formule EV = (WR x Avg_Win) - ((1-WR) x |Avg_Loss|) avec tes valeurs reelles substituees et le resultat en R par trade. |
| Kelly Fraction Full f* (formule substituee) | Carte affichant f* = WR - (1-WR)/RR avec RR = Avg_Win/|Avg_Loss|, valeurs substituees et resultat en %. Maximise le log return long-terme mais tres volatile. |
| Half Kelly (formule substituee) | Carte affichant Half Kelly = f*/2. Standard institutionnel : garde ~75% du return optimal avec variance divisee par 4. |
| Quarter Kelly (formule substituee) | Carte affichant Quarter Kelly = f*/4. Recommande propfirm : variance divisee par 16. |
| Kelly Full % | Fraction Full Kelly en % (kelly_full_%) : max(0, WR - (1-WR)/RR) x 100. Reference theorique max, jamais a utiliser telle quelle en live. |
| Half Kelly | Kelly Full % / 2. Sweet spot pour compte perso solide avec track record. |
| Quarter Kelly | Kelly Full % / 4. Profil propfirm/challenge avec forte securite. |
| Optimal f | Risk % optimal renvoye par le backend (optimal_risk_% = max(0, kelly_half x 100)), ou Half Kelly a defaut. Solution maximisant E[log(1+f.R)]. |
| Ton Risk actuel | Le risk % defini dans ta config courante (_cfg.risk_pct, defaut 1.0%). A comparer aux 4 references Kelly ci-dessus. |
| Comparaison visuelle (barres) | Graphique a barres (canvas c-kelly-bar) comparant Ton Risk, Quarter Kelly, Half Kelly et Full Kelly sur une echelle en %. |
| Croissance geometrique attendue (courbe) | Graphique E[log(1+f.R)] vs fraction f (canvas c-kelly-growth). Axe X = % risque par trade, axe Y = croissance log moyenne. Pic = Full Kelly (croissance max) ; au-dela = over-bet, tu perds malgre un edge positif. |
| Probabilite de Drawdown (courbe) | Graphique P(DD > X%) sur 100 trades selon le risk % (canvas c-kelly-dd), via l'inegalite de Doob : P ≈ exp(-x²/(2.f².Var.N)). 4 courbes : P(DD>10%), P(DD>20%), P(DD>30%), P(DD>50%). Marqueurs Half, Full et Toi. Pour propfirm (DD limit 10%), reste ou la courbe verte est < 10%. |
| Verdict (icone + label) | Verdict automatique : REJECT (EV <= 0, strategie perdante), CAUTION (Kelly Full < 1% edge faible, ou Kelly Full > 25% sample trop petit), DEPLOY (edge solide, privilegier Half Kelly). |
| Description du verdict | Phrase expliquant le verdict (ex : edge faible sensible aux couts, Kelly Full extremement eleve, edge solide). |
| Recommandations | Liste d'actions concretes selon le contexte : sur-risque (risk > Half Kelly x1.2, reduire), sous-risque (risk < Quarter Kelly x0.5, marge pour augmenter), sizing aligne, conseil propfirm si Kelly Full > 10%, alerte si RR < 1 (spread) ou RR > 2.5 (verifier walk-forward), ou optimiser via FAO si EV <= 0. |
Comment faire
- N'utilise jamais Full Kelly en live : Half Kelly garde ~75% du return avec une variance divisee par 4 ; Quarter Kelly est le standard propfirm (variance divisee par 16).
- Si l'echantillon est faible (Trades < 100), applique une marge de securite supplementaire (Quarter Kelly minimum).
- Optimal f (solution numerique) est plus precis que la formule fermee quand la distribution des R est asymetrique.
- Pour un challenge propfirm a DD limite 10%, vise typiquement un risk de 0.5-1% en restant sous Quarter Kelly.
- La page exige un backtest prealable : sans trades, /api/kelly renvoie une erreur et rien ne s'affiche.
- Tous les calculs reposent sur les stats du dernier backtest, sans benchmark externe ni hypothese de distribution : un Kelly tres eleve (f* > 25%) trahit souvent un sample trop court ou overfitte.
- EV / trade $ depend du mode : en CFD/Forex il utilise ev_capital_usd, ev_risk_pct, ev_spread_usd et ev_fees_usd de la config ; en futures c'est la moyenne directe des P&L USD reels.
- La fraction Kelly est plafonnee a 0 (max(0, ...)) cote UI et backend : un edge insuffisant (WR x RR < 1) peut donner Kelly = 0 alors que l'EV reste positif.
- Les courbes de drawdown sont une approximation par l'inegalite de Doob, pas une simulation Monte Carlo : utilise-les comme ordre de grandeur, pas comme verite exacte.
Robustesse
Section qui regroupe 9 onglets d'analyse anti-overfitting appliqués aux trades du dernier backtest (ou aux résultats du dernier optimizer/sweep). Elle vérifie si la performance tient hors-échantillon, sous conditions dégradées, et quand on perturbe les paramètres. Tout est calculé localement (re-simulations Python/Rust sur les données déjà chargées), sans aucune connexion live ni courtier. Le but : distinguer une vraie edge robuste d'une courbe qui ne marche que sur le passé exact où elle a été optimisée.
À utiliser juste après un backtest jugé bon ou après un optimizer/sweep, avant de retenir ou d'exporter un setup. C'est l'étape de validation : un score élevé en backtest ne vaut rien tant qu'il n'a pas survécu à IS/OOS, au stress test et à la sensibilité.
Avoir lancé au moins un backtest (les trades en mémoire sont la source de IS/OOS, Equity R², Stress, Surface, Sensibilité, Analytics+). L'onglet Pareto exige un dernier résultat d'optimizer/sweep en mémoire. L'onglet Corrélation exige au moins 2 setups sauvegardés dans l'optimizer (localStorage). Aucune licence ni flux temps réel requis.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Onglets internes (9) | Bascule entre les 9 analyses : IS / OOS Split, Surface 3D, Stress Test, Corrélation, Equity R², WFA-Opt, Sensibilité, Pareto, Analytics+. |
| IS% (isoos-split) | Onglet IS/OOS. Part des trades (en %, de 50 à 90, pas de 5, défaut 70) affectée à l'In-Sample ; le reste devient l'Out-of-Sample. Envoyé en split_pct à /api/is_oos. |
| Bouton Analyser (IS/OOS) | Lance runIsOos() → coupe les trades en IS/OOS, calcule les métriques des deux blocs, la dégradation et le verdict de robustesse. |
| Param X (surf-px) | Onglet Surface. Premier paramètre balayé (axe X) : sl_atr_mult, tp_param (défaut), sl_struct_atr_mult, be_trig_pct, atr_len. |
| Valeurs X (surf-vx) | Liste de valeurs de l'axe X séparées par virgule (défaut 0.5,1.0,1.5,2.0,2.5,3.0). |
| Param Y (surf-py) | Second paramètre balayé (axe Y) : sl_atr_mult (défaut), tp_param, be_trig_pct, atr_len. |
| Valeurs Y (surf-vy) | Liste de valeurs de l'axe Y séparées par virgule (défaut 0.5,0.75,1.0,1.25,1.5,2.0). |
| Métrique (surf-met) | Métrique colorée dans la heatmap : EV R (expectancy_R), Profit Factor, Score, Sharpe (sharpe_approx), Max DD% (max_drawdown_%), Win Rate%. |
| Bouton Lancer (Surface) | Lance runSurface() → POST /api/surface puis polling de /api/surface/result ; re-simule chaque combinaison X×Y et trace la heatmap (vert=meilleur, rouge=pire). |
| Bouton Lancer (Stress Test) | Lance runStress() → POST /api/stress + polling /api/stress/result ; rejoue la stratégie sous 7 scénarios dégradés. |
| Setup A (corr-a) | Onglet Corrélation. Index (entier ≥ 0, défaut 0) du premier setup dans la liste des setups sauvegardés de l'optimizer. |
| Setup B (corr-b) | Index (entier ≥ 0, défaut 1) du second setup sauvegardé à comparer. |
| Bouton Comparer (Corrélation) | Lance runCorrelation() → reconstruit les 2 equities et POST /api/correlate ; calcule la corrélation de Pearson entre les courbes. |
| Bouton Analyser (Equity R²) | Lance runEquityFit() → GET /api/equity_fit ; mesure la régularité linéaire de la courbe d'équité (R²) et trace le canal de régression. |
| Folds (wfaopt-folds) | Onglet WFA-Opt. Nombre de découpes temporelles (entier 2 à 10, défaut 5). Envoyé en n_folds. |
| IS% (wfaopt-ispct) | Part In-Sample par fold (%, 50 à 90, pas 5, défaut 70). Envoyé en is_pct. |
| Combos/fold (wfaopt-combos) | Nombre max de combinaisons testées à l'optimisation de chaque fold (20 à 2000, pas 20, défaut 200). Envoyé en max_combos_per_fold. |
| Bouton Lancer (WFA-Opt) | Lance runWfaOpt() → POST /api/robustness/walk_forward_opt + polling du result ; ré-optimise chaque fold en IS et le teste en OOS. Sweepe sl_atr_mult, tp_param, be_trig_pct. Calcul long. |
| Paramètres à tester (sens-params) | Onglet Sensibilité. Liste de paramètres séparés par virgule à perturber (défaut sl_atr_mult,tp_param,be_trig_pct,risk_pct). Envoyé en params_to_test. |
| Variations (sens-vars) | Liste des perturbations relatives à appliquer (défaut -0.2,-0.1,0,0.1,0.2 soit ±10% / ±20%). Envoyé en variations. |
| Bouton Lancer (Sensibilité) | Lance runSensitivity() → POST /api/robustness/sensitivity + polling ; perturbe chaque paramètre et mesure l'impact sur le score. |
| Objectif 1 (pareto-obj1, max) | Onglet Pareto. Premier objectif à maximiser : score (défaut), profit_factor, expectancy_R, sharpe_approx, total_pnl_%. |
| Objectif 2 (pareto-obj2, max) | Second objectif à maximiser : profit_factor (défaut), score, expectancy_R, sharpe_approx. |
| Objectif 3 (pareto-obj3, min) | Troisième objectif à minimiser : max_drawdown_% (seule option). |
| Bouton Filtrer (Pareto) | Lance runPareto() → POST /api/robustness/pareto avec directions [max,max,min] ; conserve les solutions non-dominées du dernier optimizer/sweep. |
| Window (an-window) | Onglet Analytics+. Fenêtre glissante en trades (5 à 200, pas 5, défaut 30) pour le rolling Sharpe/Sortino. Envoyée en rolling_window. |
| Bouton Analyser (Analytics+) | Lance runAnalyticsBundle() → POST /api/analytics/bundle ; calcule en Rust la suite complète (heatmap, rolling, MAE/MFE, DD recovery, Hurst). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Badge Robustesse (IS/OOS) | Verdict global basé sur le PF OOS vs IS : OVERFITTING (PF OOS < 0.8), FRAGILE (PF OOS < 0.6×PF IS), BON (PF OOS ≥ 0.8×PF IS), sinon ACCEPTABLE. Affiche aussi nb trades IS/OOS et le split. |
| Métriques In-Sample / Out-of-Sample | Deux colonnes affichant trades, win_rate_%, profit_factor, expectancy_R, max_drawdown_%, sharpe_approx, score pour chaque bloc. L'OOS doit rester proche de l'IS. |
| Table Dégradation IS → OOS | Par métrique : valeur IS, valeur OOS, delta, % de variation et statut OK/×. Une bonne stratégie ne dégrade pas (le DD doit baisser ou rester stable). |
| Graphe Equity IS (bleu) + OOS (orange) | Courbe d'équité IS prolongée par l'OOS, séparées par une zone grisée. L'OOS doit prolonger la même pente sans cassure à la frontière. |
| Heatmap Surface | Matrice colorée param X × param Y de la métrique choisie (vert=meilleur, rouge=pire ; inversé pour le drawdown). Une large zone homogène = paramètres robustes ; un pic isolé = overfitting. |
| Table Stress (par scénario) | Colonnes Scénario, Trades, WR%, PF, EV R, DD%, PnL%, Score, Statut. 7 scénarios : Baseline (⭐), Spread ×2, Spread ×5, Slippage +50pts, Risk ×2, No Break-Even, Data gaps 10%. Statut RÉSISTE si PF ≥ 1, sinon FRAGILE. |
| Graphe Dégradation vs Baseline (Stress) | Barres montrant la variation % du Profit Factor de chaque scénario par rapport au Baseline. Vert si ≥ -5%, neutre si ≥ -20%, rouge en dessous. |
| Corrélation r | Coefficient de Pearson entre les 2 courbes d'équité. Rouge si > 0.5 (setups redondants), vert si < -0.3 (anti-corrélés, diversifiants). |
| Interprétation / Diversification (Corrélation) | Libellé textuel du niveau de corrélation et qualité de diversification (EXCELLENTE / BONNE en vert, sinon rouge). |
| Graphe Courbes equity normalisées (Corrélation) | Les 2 equities ramenées en base 100 pour comparaison visuelle de leur co-mouvement. |
| R² Score (Equity R²) | Coefficient de détermination de l'équité vs droite de régression (0 à 1). Label EXCELLENT (≥0.90), BON (≥0.75), ACCEPTABLE (≥0.55), FAIBLE (≥0.35), ALÉATOIRE (<0.35). Proche de 1 = edge consistante. |
| Pente / Sigma / Capital init. / Capital final (Equity R²) | Gain moyen par trade (pente de régression), écart-type des résidus (±1σ), capital de départ et capital final reconstruit. |
| Encart insight (Equity R²) | Phrase d'interprétation contextuelle selon le R² (de "Excellent" à "Aléatoire — ne pas trader ce setup"). |
| Graphe Equity + Regression Channel (Equity R²) | Équité réelle, droite de tendance et bandes ±1σ / ±2σ. Une équité qui sort souvent des bandes = irrégulière. |
| KPI WFA Score / Mean OOS Score / OOS Consistency / Mean Degradation | Synthèse WFA-Opt : score walk-forward global (vert ≥50, rouge <30), score OOS moyen, % de folds OOS positifs, dégradation IS→OOS moyenne. |
| Table Résultats par fold (WFA-Opt) | Par fold : nb trades IS/OOS, meilleurs paramètres trouvés, score IS, score OOS, PF IS, PF OOS, et dégradation % (vert ≥-15%, jaune ≥-30%, rouge en dessous). Mesure le vrai overfitting fold par fold. |
| Graphe Classement par influence (Sensibilité) | Barres horizontales classant les paramètres par amplitude de variation du score quand on les perturbe. Le plus influent (rouge) = le plus à risque d'overfitting. |
| Table Détail Score vs Variation (Sensibilité) | Par perturbation : Paramètre, Variation %, Valeur appliquée, Trades, Score, PF, Sharpe, DD%. Un paramètre robuste garde un score stable sur toutes ses variations. |
| Graphe Frontière Pareto | Nuage de points obj1 × obj2 colorés par obj3 (vert=DD bas, rouge=DD haut). Visualise le compromis entre objectifs. |
| Table Solutions non-dominées (Pareto) | Liste des solutions Pareto : valeurs des 3 objectifs, nb trades et paramètres. Le toast indique le ratio non-dominés/total. |
| Heatmap Hour-Of-Day × Day-Of-Week (Analytics+) | PnL moyen en R par heure (24) et jour de semaine (Lun→Dim). Repère les créneaux porteurs ou destructeurs ; cellules vides si aucun trade. |
| Graphe Rolling Sharpe / Sortino (Analytics+) | Sharpe et Sortino calculés sur fenêtre glissante (taille = Window). Détecte les périodes où l'edge s'est dégradée. |
| Histogramme MAE / MFE (Analytics+) | Distribution de l'excursion adverse max (MAE, rouge) et favorable max (MFE, vert) des trades. Aide à calibrer SL/TP. |
| Graphe Drawdown Recovery (Analytics+) | Nombre de barres pour récupérer chaque épisode de drawdown. |
| Exposant de Hurst H (Analytics+) | H > 0.55 = Trending (persistant), H < 0.45 = Mean-reverting, sinon Random walk. Indique le régime de marché de l'équité. |
| Max DD% / Mean recovery / P90 recovery (Analytics+) | Drawdown max, durée moyenne et 90e percentile de récupération (en barres). |
Comment faire
- Cherchez sur la heatmap Surface une large zone de couleur homogène autour de vos paramètres : un pic isolé entouré de rouge signale un sur-ajustement fragile.
- Un setup peut avoir un excellent score backtest mais un badge OVERFITTING en IS/OOS : c'est exactement ce que cette section sert à détecter avant de trader.
- Pour la Corrélation, une valeur négative ou faible entre 2 setups est souhaitable : ils se diversifient et lissent l'équité combinée.
- Un exposant de Hurst proche de 0.5 (Random walk) sur votre équité suggère une absence d'edge persistant, indépendamment du score affiché.
- IS/OOS, Equity R² et Analytics+ travaillent sur les trades du DERNIER backtest en mémoire : changer de symbole/config sans relancer fausse l'analyse.
- IS/OOS exige au moins 10 trades clôturés et Equity R² au moins 5, sinon ils renvoient un résultat vide.
- Le split IS/OOS est chronologique (les premiers trades = IS) : il n'y a pas de mélange aléatoire.
- L'onglet Corrélation lit les setups sauvegardés dans l'optimizer (localStorage) : sans au moins 2 setups sauvegardés, il échoue.
- L'onglet Pareto échoue si aucun optimizer/sweep n'a été lancé (il filtre optimizer_result, pas le backtest seul).
- WFA-Opt ré-optimise chaque fold : c'est volontairement long et ne sweepe que sl_atr_mult, tp_param, be_trig_pct.
- Surface, Stress et WFA-Opt se bloquent si un autre calcul tourne déjà (verrou running, erreur 409).
- Le stress test annoncé comme 7 scénarios n'inclut que des dégradations prédéfinies (spread ×2/×5, slippage +50pts, risk ×2, no break-even, gaps 10%) : ce n'est pas un Monte-Carlo paramétrable.
Audit
L'Audit lit les metriques de ton dernier backtest et produit un diagnostic automatique. Il calcule un Health Score sur 100 (moyenne de plusieurs criteres notes), une note (SOLIDE, CORRECT, FRAGILE, CRITIQUE), une checklist de problemes classes par gravite (Critiques, Alertes, Optimisations, Infos), des opportunites a exploiter, et une suggestion de regime de marche avec les modes/SL/TP conseilles. Il embarque aussi trois outils complementaires : Rolling Win Rate (stabilite de l'edge dans le temps), Benchmark vs Buy & Hold, et l'export Rapport PDF complet.
A consulter apres chaque backtest, avant de passer a l'optimisation ou au deploiement. C'est le point de controle qui te dit quoi corriger en priorite et dans quel ordre suivre le reste du workflow (backtest, optimizer, robustesse, walk-forward, live).
Un backtest doit avoir ete lance au prealable (il faut des trades en memoire). Sans backtest, l'audit affiche Lance un backtest d'abord. Le Benchmark recharge les donnees du symbole pour comparer.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Actualiser | Relance le calcul de l'audit sur le dernier backtest (appelle /api/audit). Le panneau se rafraichit aussi automatiquement a l'ouverture de l'onglet. |
| Workflow recommande (etapes 1 a 6) | 6 etapes cliquables (Qualifier le marche, Valider le setup, Optimiser SL/TP/BE, Valider la robustesse, Walk-Forward, Deploiement). Un clic ouvre la page correspondante (backtest, optimizer, robustesse, wfa, live). |
| Fenetre (Rolling Win Rate) | Taille de la fenetre glissante en nombre de trades pour le calcul du Win Rate roulant. Valeur 30 par defaut, min 5, max 100. |
| Analyser (Rolling Win Rate) | Lance le calcul du Win Rate sur fenetre glissante (appelle /api/rolling) et trace la courbe. |
| Comparer (Benchmark) | Compare la courbe equity de la strategie a un simple achat-conservation (Buy & Hold) du symbole sur la meme periode (appelle /api/benchmark). |
| Titre du rapport | Titre affiche en tete du rapport PDF/HTML. Defaut : PROTOS V8 — Rapport de strategie. |
| Auteur | Nom de l'auteur insere dans le rapport. Defaut : PROTOS Engine. |
| Generer PDF (impression) | Genere le rapport complet imprimable agregeant audit, verdict, quant, walk-forward, Monte Carlo, synthetic, stress, sensibilite, equity fit et optimizer. |
| Vue HTML detaillee | Affiche une version HTML detaillee du rapport directement dans la page. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Health Score | Note globale sur 100, moyenne des criteres evalues. Plus c'est haut, mieux c'est ; vise >= 60 avant d'optimiser, >= 80 pour un setup solide. |
| Note (grade) | Verdict texte derive du score : SOLIDE (>=80, vert), CORRECT (>=60, jaune), FRAGILE (>=40, orange), CRITIQUE (<40, rouge). |
| Critiques | Nombre de problemes graves a corriger imperativement avant tout deploiement (ex : PF < 1, Sharpe negatif, Expectancy negative, echantillon < 30 trades, DD > 50%). |
| Alertes | Nombre d'avertissements : setup acceptable pour explorer mais pas pour valider (ex : echantillon limite, PF fragile, DD non compense, Sharpe faible, Expectancy < 0.05R, Kelly negatif). |
| Optimisations | Nombre de pistes d'amelioration (ex : PF eleve sur petit echantillon a verifier en WFA, Kelly eleve sous-exploite, Calmar faible, top 3 optimizer instable). |
| Infos | Nombre de remarques informatives (ex : tous les top combos ont le Break-Even desactive). |
| Regime detecte | Categorie de marche deduite des metriques : POTENTIELLEMENT RANGING (DD eleve + WR faible), TRENDING / MOMENTUM (WR > 55% + PF > 1.5 + EV > 0.1R), ou MIXTE. |
| Basis (justification du regime) | Explication chiffree du regime detecte (les metriques qui ont mene a cette classification). |
| Modes conseilles | Core Modes recommandes pour le regime detecte (ex : VWAP_MEAN_REVERSION, RSI2_STOCH_SCALP pour ranging ; HFT, IMPULSE_CONTINUATION, TREND_PULLBACK_EMA pour trending). |
| SL conseille | Type de Stop Loss suggere selon le regime (ex : ATR_X mult 1.0-1.5, STRUCTURE). |
| TP conseille | Type de Take Profit suggere selon le regime (ex : R_MULTIPLE 1.5-2.0 ou 2.0+). |
| Checklist (items) | Liste detaillee de chaque probleme : icone, titre, detail explicatif et action recommandee (precede de la fleche). Triee par priorite, du plus grave au moins grave. |
| Opportunites | Pistes a gain rapide : Risk pct sous-utilise (Kelly > 5 et risk < 0.5), Auto-BE non active (WR > 50%), Walk-Forward disponible (> 150 trades), Monte Carlo recommande (Calmar faible). |
| % temps WR>50% (Rolling) | Pourcentage de fenetres glissantes ou le Win Rate depasse 50%. Plus c'est haut, plus l'edge est regulier dans le temps. |
| Plus longue mauvaise periode (Rolling) | Plus longue serie consecutive de fenetres avec WR < 45% (max_bad_streak). Mesure la pire traversee du desert. |
| WR moyen rolling | Win Rate moyen sur l'ensemble des fenetres glissantes. |
| Courbe Rolling Win Rate | Graphe du WR sur fenetre glissante avec ligne de reference 50% ; zones vertes au-dessus de 50%, rouges en dessous. |
| Strategie PnL% (Benchmark) | Rendement total de la strategie sur la periode. |
| B&H PnL% (Benchmark) | Rendement d'un simple achat-conservation du symbole sur la meme periode (bh_return_%). |
| Alpha genere | Surperformance de la strategie sur le Buy & Hold (PnL strategie - PnL B&H). Positif = la strategie ajoute de la valeur. |
| Strategie DD% / B&H DD% (Benchmark) | Drawdown maximal de la strategie vs celui du Buy & Hold. Un DD strategie plus faible justifie l'effort de trading. |
| Verdict (Benchmark) | Synthese : ALPHA + (alpha > 10% et DD plus faible que B&H), ALPHA (alpha > 0), NEUTRE (alpha > -5%), SOUS-PERF (sinon). |
| Courbe equity strategie vs Buy & Hold | Superposition des deux courbes de capital sur la meme periode pour comparer visuellement la trajectoire. |
| Rapport PDF / HTML | Document complet agregeant toutes les analyses disponibles (audit, verdict, quant, WFA, Monte Carlo, synthetic, stress, sensibilite, equity fit, optimizer), pour archivage ou partage. |
Comment faire
- Le score est une moyenne de criteres : un seul critere a 0 (ex : PF < 1) tire fortement la note vers le bas. Corrige le plus grave en premier.
- L'audit juge l'expectancy reelle (EV/R), pas le Win Rate brut : un WR faible avec un bon ratio gain/perte reste viable.
- Sur le Rolling Win Rate, une courbe qui oscille autour d'une valeur stable = edge regulier ; de longues plages sous 50% = perf dependante du regime, donc fragile.
- Si le Benchmark montre que tu ne bats pas le Buy & Hold en rendement ET en DD, l'edge n'est pas justifie.
- Le critere Min Track Record Length (Bailey-Lopez de Prado) te dit combien de trades il faut pour conclure que le Sharpe > 0 a 95% : plus rigoureux que les seuils 30/80.
- Sans backtest prealable, l'audit renvoie l'erreur
Lance un backtest d'abordet reste vide. - Le Rolling Win Rate exige au minimum 'window' trades clotures (defaut 30) ; en dessous il retourne un resultat vide.
- Un PF tres eleve sur un petit echantillon n'est PAS un bon signe : l'audit le signale comme piste a verifier en Walk-Forward (possible chance ou surapprentissage).
- Le Benchmark recharge les donnees du symbole : il depend de la disponibilite de la source de donnees pour la periode du backtest.
- Le Health Score juge le DD via le ratio rendement/DD (Calmar) et le Sharpe via la classe d'actif/timeframe (HFT exige Sharpe >= 1), pas en valeur absolue.
Walk-Forward
Le Walk-Forward Analysis (WFA) decoupe tout votre historique en N tranches (folds) successives. Dans chaque fold, PROTOS rejoue la strategie d'abord sur la partie In-Sample (IS, l'echantillon d'entrainement) puis sur la partie Out-of-Sample (OOS, une portion jamais vue placee juste apres). Il compare ensuite les performances IS et OOS pour detecter si la strategie generalise vraiment ou si elle est seulement sur-ajustee a l'historique. Un embargo de 20 barres est insere entre IS et OOS pour casser l'autocorrelation et eviter une fuite de signal.
A utiliser une fois qu'une strategie donne de bons resultats en backtest classique, juste avant Monte Carlo / sensibilite / demo live. Si l'OOS s'effondre alors que l'IS brille, la strategie est overfittee et ne doit pas passer en reel.
Une strategie configuree (CoreMode, parametres, SL/TP) dans l'onglet Strategie et un historique de donnees suffisamment long. Aucune connexion courtier requise.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Nombre de folds (input wfa-folds, defaut 3) | Nombre de fenetres de validation independantes. Plus il y en a, plus le test est solide mais plus chaque OOS devient court (moins de trades). Conseil du code: 3 a 5 folds avec au moins 50 trades OOS chacun; rester a 2 si moins de 200 trades au total. |
| % In-Sample (input wfa-is, defaut 70) | Part de chaque fold reservee a l'In-Sample (entrainement/observation des stats); le reste, moins l'embargo, devient l'Out-of-Sample (test aveugle). 70/30 est le standard; 50/50 est plus exigeant, 80/20 plus permissif. Envoye au serveur divise par 100 (is_pct=0.70). |
| Bouton Lancer (runWFA) | Collecte la config strategie courante puis appelle POST /api/wfa avec n_folds et is_pct; le calcul tourne en arriere-plan et le tableau se remplit a la fin. |
| Bouton Stop (stopAll) | Interrompt le calcul en cours (declenche l'evenement d'arret cote serveur, qui coupe la boucle entre deux folds). |
| Aide i (helpShow wfa_overview) | Ouvre l'aide detaillee de la section: a quoi sert le WFA, comment lire le tableau, seuils bon/acceptable/mauvais et actions a mener. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Fold | Numero de la fenetre temporelle (#1, #2...). Chaque ligne = un fold. |
| IS Trades | Nombre de trades generes sur la partie In-Sample du fold. Sert a verifier qu'il y a assez de volume pour que les stats aient un sens. |
| IS WR % | Win Rate (pourcentage de trades gagnants) sur l'In-Sample. |
| IS PF | Profit Factor sur l'In-Sample (gains bruts / pertes brutes). Au-dessus de 1 = rentable sur l'entrainement. |
| IS EV R | Esperance par trade en multiples de R (expectancy_R) sur l'In-Sample. Affiche en vert si positif, en rouge sinon. |
| OOS Trades | Nombre de trades sur la partie Out-of-Sample (jamais vue). A comparer a IS Trades: un volume tres different est suspect. |
| OOS WR % | Win Rate sur l'Out-of-Sample. Doit rester proche du WR In-Sample pour une strategie stable. |
| OOS PF | Profit Factor sur l'Out-of-Sample. C'est le chiffre cle: il doit tenir face au PF In-Sample (idealement au moins 70 a 85 % de l'IS PF). |
| OOS EV R | Esperance par trade en R sur l'Out-of-Sample. Vert si positif, rouge sinon. S'il bascule en negatif alors que l'IS est positif = signal d'overfitting. |
| Robustesse | Verdict calcule par fold cote interface a partir des PF: Bon (vert) si OOS PF >= 0,7 x IS PF; Faible (rouge) si OOS PF est positif mais en-dessous; Overfitting? (rouge) si OOS PF est nul ou negatif. Tout vert = strategie publiable; rouge = sur-ajustement. |
Comment faire
- Verifier d'abord le compte OOS Trades du premier fold: en dessous de ~30 trades par OOS, les ratios deviennent du bruit. Augmenter le % In-Sample (vers 60) ou reduire le nombre de folds.
- Demarrer a 3 folds / 70 % puis, si chaque OOS a au moins 80 trades, monter a 5 folds pour un test plus dur.
- Si un seul fold OOS s'effondre, verifier le regime de marche sur cette periode avant de jeter la strategie.
- Cette section ne reoptimise PAS les parametres: l'IS et l'OOS tournent avec exactement les memes reglages. Pour une vraie reoptimisation par fold, utiliser le panneau WFA-OPT separe (Folds / IS% / Combos par fold).
- Un embargo de 20 barres par defaut (cfg.wfa_embargo_bars) est retire au debut de chaque OOS pour casser l'autocorrelation; sur datasets courts, cela rogne encore l'OOS deja petit.
- Le verdict Robustesse de l'interface utilise un seuil simple (OOS PF >= 0,7 x IS PF) base uniquement sur le Profit Factor; l'aide cite des seuils plus exigeants (0,85 x IS PF, aucun fold OOS negatif) a confronter manuellement.
- Un seul calcul lourd tourne a la fois cote serveur (running): lancer le WFA pendant un autre calcul renvoie une erreur 409 Calcul en cours.
Historique
L'Historique conserve automatiquement les 20 derniers backtests que vous avez lancés, avec pour chacun les chiffres clés (trades, win rate, profit factor, espérance, drawdown, score). Un graphique trace l'évolution du score au fil de vos runs pour voir si vous progressez. Tout est stocké en local dans votre navigateur (clé protos_bt_history du localStorage) : aucune donnée n'est envoyée à un serveur.
Consultez cette page après plusieurs backtests pour comparer vos essais et retrouver la meilleure configuration. Le bouton Charger ré-injecte les réglages d'un ancien run dans le Backtest, ce qui en fait le moyen le plus rapide de reprendre une config gagnante sans tout re-saisir.
Avoir lancé au moins un backtest (l'entrée est ajoutée automatiquement à la fin du run, seulement si le backtest a produit au moins 1 trade).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Effacer | Vide entièrement l'historique (supprime la clé protos_bt_history du navigateur). Une confirmation est demandée avant suppression. |
| Charger (par ligne) | Recharge la configuration complète du backtest sélectionné dans la page Backtest et y bascule l'affichage. Permet de relancer ou modifier un ancien run sans re-saisir les paramètres. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| # | Rang de la ligne dans la liste (1 = backtest le plus récent, en haut). |
| Date | Date et heure du run au format français (heure locale du navigateur au moment du backtest). |
| Symbole | Instrument testé (ex. ES, NQ), tel que défini dans la config du backtest. |
| TF | Unité de temps (timeframe) utilisée pour le run. |
| Mode | CoreMode (mode de moteur) utilisé pour le backtest. |
| Trades | Nombre de trades générés par le backtest. Plus il y en a, plus les statistiques sont fiables. |
| WR% | Win rate (pourcentage de trades gagnants). Affiché en vert si ≥ 50%, en rouge sinon. |
| PF | Profit factor (gains bruts / pertes brutes). Vert si ≥ 1.2, rouge sinon. Au-dessus de 1 le système est gagnant. |
| EV R | Espérance par trade exprimée en R (expectancy_R). Vert si > 0, rouge sinon. C'est le gain moyen attendu par trade en multiples de risque. |
| DD% | Drawdown maximal (perte maximale depuis un sommet). Rouge si > 15%, vert sinon : plus c'est bas, mieux c'est. |
| Score | Note de synthèse du backtest (0 a 100). Code couleur : violet (accent) ≥ 75, vert ≥ 55, gris ≥ 40, orange ≥ 25, rouge en dessous. |
| Graphique Évolution du score | Courbe du score des runs présents en historique (du plus ancien au plus récent), avec zones colorées de fond aux seuils 70/45/25. Permet de voir d'un coup si vos backtests s'améliorent. N'apparaît qu'à partir de 2 runs. |
Comment faire
- Servez-vous de Charger comme d'un raccourci : c'est plus rapide que de re-saisir manuellement une config déjà testée.
- Le graphique est idéal pour vérifier qu'une série d'optimisations fait bien monter votre score au lieu de tourner en rond.
- Lisez les colonnes par paire : un Score élevé n'a de valeur que si Trades est suffisant et DD% raisonnable.
- Stockage 100% local dans le navigateur : changer de navigateur ou de machine, ou vider le cache / localStorage, fait disparaître tout l'historique. Rien n'est sauvegardé côté serveur.
- Limite stricte à 20 entrées : au-delà, les runs les plus anciens sont automatiquement supprimés (slice(0,20)).
- Effacer est irréversible : il n'y a pas de corbeille ni d'export depuis cette page.
- Une déduplication retire les runs consécutifs identiques (même symbole, TF, mode, trades, score, pnl, dd, pf) : c'est volontaire et corrige un ancien bug qui dupliquait les entrées.
- Un backtest sans aucun trade n'est jamais enregistré dans l'historique.
Propfirm Convexity
Ce module rejoue des milliers de parcours de challenge propfirm (Phase 1, Phase 2, compte funded, payout) en tirant au hasard, par block bootstrap, dans les trades de ton dernier backtest. Il applique les vraies regles d'une propfirm (objectif de profit, daily drawdown, trailing drawdown, frais) et estime ta probabilite de passer, le cout amorti jusqu'au payout, le drawdown attendu et le budget a prevoir. Tout est calcule cote serveur via /api/propfirm/simulate (moteur propfirm_convex.py).
A utiliser apres un backtest concluant, avant d'acheter un challenge propfirm, pour savoir si ta strategie est economiquement viable face aux regles d'une firme donnee et a quel niveau de risque la jouer.
Un backtest deja execute dans PROTOS avec au moins 5 trades (5 jours actifs). La simulation lit les trades du dernier backtest (variable _trades) et le capital initial (_cfg.initial_capital). Aucune connexion courtier ni flux live requis.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Propfirm (select #pfc-preset) | Choisit la firme et le compte simules. Liste chargee depuis /api/propfirm/presets (TopStep 50K/100K/150K, FTMO 10K/100K/200K, Apex 50K/100K) plus l'option Custom (mes regles) qui ouvre le formulaire de saisie. |
| Risk scale (#pfc-risk) | Multiplicateur d'exposition applique au P&L journalier (0.1 a 5, defaut 1.0). >1 augmente gains et drawdowns proportionnellement. |
| Paths (#pfc-npaths) | Nombre de parcours Monte-Carlo simules (500 a 20000, defaut 5000). Plus eleve = estimation plus precise mais plus lente. |
| Resets (#pfc-resets) | Nombre de resets (relances apres bust) autorises par challenge (0 a 5, defaut 1). |
| Block (#pfc-block) | Taille du block bootstrap : nombre de jours consecutifs tires en bloc pour preserver l'autocorrelation (1 a 20, defaut 5 ≈ 1 semaine). 1 = i.i.d. classique qui sous-estime les drawdowns ; 10 = tres conservateur. |
| Decay (#pfc-decay) | Decote in-sample : multiplie les gains positifs pour modeliser le decay des strategies overfittees (0.3 a 1.0, defaut 1.0 = brut). 0.7 retire 30% sur les gains (realiste), 0.5 est agressif ; les pertes restent intactes. |
| Conf% (select #pfc-confidence) | Seuil de confiance servant au calcul du Budget (50/75/90/95/99%, defaut 90%). 90% = budget pour avoir 90% de chances de passer au moins 1 challenge. |
| Focus challenge (checkbox #pfc-focus) | Mode qui ne simule QUE jusqu'a la fin du challenge (P1 + P2 si applicable), sans dependre du timing funded->payout. Change les libelles des KPI (P(pass), Cost-to-pass, Budget P90, Time-to-pass). |
| Run simulation (#pfc-run-btn -> pfcRun) | Lance la simulation Monte-Carlo principale : appelle /api/propfirm/simulate et remplit KPI, sample paths, recommandations et diagnostic. |
| Calculer (sensitivity -> pfcSensitivity) | Trace la courbe Sensitivity risk scale -> P(payout) : appelle /api/propfirm/sensitivity sur la grille [0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0] avec 1000 paths chacun. |
| Reset par defaut (#pfcCustomReset) | Reinitialise le formulaire Custom aux valeurs par defaut (type TopStep 50K) et efface la sauvegarde localStorage. |
| Custom - Nom propfirm (#pfc-cust-name) | Nom libre de la propfirm personnalisee. |
| Custom - Capital $ (#pfc-cust-cap) | Taille nominale du compte (defaut 50000). |
| Custom - Target P1 % (#pfc-cust-target1) | Objectif de profit phase 1 en % du capital (defaut 6). |
| Custom - Daily DD $ (#pfc-cust-daily) | Drawdown journalier maximum en $ ; 0 = aucun (converti en 999999 cote backend). |
| Custom - Trailing DD $ (#pfc-cust-trail) | Trailing drawdown maximum en $ depuis le high-water-mark (defaut 2000). |
| Custom - Mode trailing (#pfc-cust-mode) | Methode du trailing DD : Intraday (HWM au peak), EOD (HWM en cloture, plus permissif) ou Static (Max Loss fixe au capital initial). |
| Custom - Lock at $ (#pfc-cust-lock) | Niveau de HWM qui verrouille le trailing au breakeven ; 0 = pas de lock. |
| Custom - Min trading days (#pfc-cust-mindays) | Nombre minimum de jours d'activite exiges en phase 1 (defaut 5). |
| Custom - Max days P1 (#pfc-cust-maxdays) | Nombre max de jours pour passer P1 ; 0 = illimite (TopStep / Apex). |
| Custom - Has Phase 2 ? (#pfc-cust-hasp2) | Active ou non une 2e phase de verification (style FTMO). |
| Custom - Target P2 % (#pfc-cust-target2) | Objectif de profit phase 2 en % du capital (defaut 5). |
| Custom - Entry fee $ (#pfc-cust-entry) | Cout d'inscription au challenge (defaut 165). |
| Custom - Reset fee $ (#pfc-cust-reset) | Cout d'un reset apres bust (defaut 80). |
| Custom - Funded fee / mois $ (#pfc-cust-monthly) | Frais mensuels en compte funded (defaut 0). |
| Custom - Payout share % (#pfc-cust-share) | Part du profit qui revient au trader (defaut 90). |
| Custom - Payout floor $ (#pfc-cust-floor) | Profit minimum a atteindre avant qu'un payout soit possible (defaut 500). |
| Custom - Payout freq jours (#pfc-cust-freq) | Cadence minimale en jours entre deux payouts (defaut 14). |
| Custom - Entry refund @ payout (#pfc-cust-refund) | Indique si l'entry fee est remboursee au 1er payout (Oui = FTMO, Non = TopStep/Apex). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| KPI P(payout) / P(pass challenge) | Probabilite d'atteindre le 1er payout (ou de passer le challenge en mode Focus). Affiche l'IC95% bootstrap et P(P1). Vert si >=40%, rouge si <15%. |
| KPI E[# challenges] | Nombre moyen de challenges a acheter avant le 1er payout, et frais totaux estimes. ∞ si non viable ; bon si <2, mauvais si >=4. |
| KPI Cost-to-payout / Cost-to-pass | Frais cumules rapportes au payout net (en %). En mode Focus : frais moyens en $ avec split win vs bust et IC. Bon si <30% (ou < 1.5x entry fee). |
| KPI Convex ratio / Budget P90 | Ratio gain attendu / perte attendue (multiple, bon si >3). En mode Focus, remplace par le Budget : cout total a prevoir pour le seuil de confiance choisi et le nombre de challenges associe. |
| KPI Time-to-payout P50 / Time-to-pass P50 | Nombre de jours median avant payout/pass, avec P90 en sous-titre. Bon si <30j, mauvais si >=60j. |
| KPI DD P95 | Drawdown maximum au 95e percentile en $, compare a la limite trailing DD de la firme. Bon si <70% de la limite, mauvais si depasse la limite. |
| Sample paths (canvas, 100 parcours) | Trace 100 courbes d'equite Monte-Carlo avec lignes de reference target (vert), DD floor (rouge) et capital. Courbes vertes = ont touche le target, rouges = ont buste. Compteur PASS x/100 en haut a droite. |
| Recommandations (#pfc-recos) | Liste de conseils textuels generes par build_recommendations, classes par niveau (good / warn / bad / info) avec titre et corps. Compteur du nombre de recos. |
| Sensitivity (canvas) | Courbe P(pass P1) (vert) et P(payout) (noir) en fonction du risk scale, avec marqueur OPTIMAL (risk scale maximisant P(payout)). |
| Diagnostic - Bust phase breakdown (canvas) | Barres de repartition des busts par phase : Phase 1, Phase 2, Funded, et la part atteignant Payout (en %). |
| Diagnostic - Equite finale (canvas) | Distribution de l'equite finale P10 / P50 / P90 avec ligne du capital initial ; plage verte si P50 >= capital, rouge sinon. |
| Recap regles (#pfc-rules-line) | Resume de la firme selectionnee : Account, Target P1, Daily DD, Trailing DD avec badge de mode (INTRADAY/EOD/STATIC), Target P2 si applicable, Entry fee, Reset fee, Payout share. |
| Disclaimer in-sample (#pfc-disclaimer) | Avertissement permanent rappelant que les resultats sont bases sur un bootstrap in-sample et que le P(pass) live sera typiquement 20-40% plus faible si la strategie est overfittee. |
Comment faire
- Active Decay 0.70 pour une estimation plus conservatrice qui modelise le decay des strategies overfittees.
- Garde Block >= 5 : le bootstrap i.i.d. (Block 1) sous-estime systematiquement les drawdowns extremes.
- En mode Focus challenge, le KPI Budget te dit directement combien de $ prevoir pour avoir 90% de chances de passer.
- Les regles Custom sont sauvegardees automatiquement dans le localStorage du navigateur ; tu peux relancer Run sans tout ressaisir.
- Le marqueur OPTIMAL de la courbe Sensitivity indique le risk scale qui maximise P(payout).
- Tout repose sur un bootstrap in-sample du backtest : sans walk-forward, le P(pass) reel sera typiquement 20-40% plus bas.
- Sans backtest prealable d'au moins 5 trades (5 jours actifs), Run et Calculer refusent de s'executer.
- Pour les instruments futures, le scaling lineaire par account_size est une approximation (le nombre reel de contrats peut differer) ; un avertissement scaling_warning est emis cote moteur.
- Le mode trailing EOD est nettement plus permissif que Intraday : ne compare pas deux firmes sans verifier ce parametre.
- Le Convex ratio est remplace par le Budget en mode Focus challenge ; les libelles des KPI changent selon le mode.
Trading
L'exécution et la surveillance en temps réel. La plupart de ces écrans nécessitent la licence PROTOS Trading Live.
La plupart des écrans de cette catégorie nécessitent la licence PROTOS Trading Live. Ils sont signalés par un badge violet.
Chart Live
PROTOS Trading LiveChart Live est un terminal de trading complet en temps réel, affiché dans une fenêtre embarquée (iframe) servie par le serveur de données Databento sur le port 5055. Il combine un graphique en chandeliers multi-timeframe, un carnet d'ordres (DOM) live, une bande Time & Sales, des indicateurs d'order-flow (delta, footprint, absorption, iceberg, big trades), le moteur de signaux multi-stratégies de PROTOS, des overlays d'options (niveaux GEX gamma) et un ticket de passage d'ordres réel ou simulé. Le tout se met à jour en continu via WebSocket.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
À utiliser pour observer le marché en direct, comprendre l'order-flow, surveiller les signaux du moteur en live et exécuter (ou laisser le moteur exécuter) des trades. C'est le cockpit final une fois qu'une stratégie a été optimisée/validée ailleurs dans PROTOS et qu'on veut la suivre ou la trader en réel.
Le serveur le serveur de données Databento (port 5055) doit tourner — sinon l'overlay Serveur Chart Live hors-ligne s'affiche (lancer LAUNCH_CHART_LIVE.bat ou python le serveur de données Databento). Pour le flux CME Futures il faut une clé API Databento. Les autres sources (MT5 CFD via EA, Binance, Coinbase, Hyperliquid, LSE stocks/FX/indices) ont leurs propres prérequis. Les overlays GEX appellent yfinance (equities/futures) ou Deribit (crypto).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Démarrer le Chart Live (chartLiveStart) | Charge l'iframe et active le live (WebSocket + process databento). Tant que c'est arrêté, aucun process ne tourne et aucune RAM n'est consommée. |
| Arrêter (chartLiveStop, bouton stop topbar) | Décharge l'iframe (src=about:blank) pour couper WS, polling et libérer toutes les ressources. |
| Démarrer automatiquement à l'ouverture (chart-live-autostart) | Case à cocher mémorisée en localStorage : relance le chart live automatiquement à chaque ouverture de la page. |
| Réessayer (initChartLive) | Re-sonde le le serveur de données Databento quand l'overlay hors-ligne est affiché. |
| Source du flux (broker-select) | Choisit la venue : CME Futures (Databento), CFD (MT5), Crypto (Binance), Crypto L2 (Coinbase), Perp (Hyperliquid), Consolidated (B+C+HL mergés), Stocks/FX/Indices (LSE). |
| Symbole (symbol-select / symbol-input) | Sélectionne l'instrument : dropdown court en CME, champ recherche/typeahead en MT5 et autres. |
| Timeframe (groupe tf) | Unité de temps des bougies : 1s, 5s, 15s, 1m, 5m, 15m, H1, H4, D1. |
| Compte (trade-account) | Compte actif pour exécuter les ordres en mode Paper (exécution simulée). |
| $ CAP (paper-capital) + Reset (paper-reset) | Capital initial du compte simulé (défaut 100000 $, persisté localStorage). Reset = ferme les positions, remet le réalisé à 0 et le capital à la valeur saisie. Modifiable seulement sans position ouverte. |
| QTY (trade-qty) | Nombre de contrats (CME) ou lot size (CFD MT5) pour le ticket d'ordre. |
| BUY (btn-buy) / SELL (btn-sell) | Envoie un ordre Market acheteur / vendeur (SL/TP inclus si remplis). |
| SL (trade-sl) / TP (trade-tp) | Prix absolus de stop-loss et take-profit attachés à l'ordre (vides autorisés). |
| BE ALL (btn-be-all) | BreakEven sur toutes les positions MT5 (déplace le SL à l'entrée). Visible en mode CFD MT5 uniquement. |
| CLOSE ALL (btn-close-all) | Ferme toutes les positions MT5 ouvertes (tous symboles). Visible en mode CFD MT5 uniquement. |
| L3 CHART (btn-l3mode) | Remplace le chart par la vue DOM Layer3 in-place (panneaux DOM/spread et moteur de signaux restent actifs). |
| L3 (btn-layer3) | Ouvre la vue order-flow microstructure Layer3 en pop-up (heatmap + ladder, détection BIG / ICEBERG / ABSORPTION). |
| DOM ↕ (btn-vladder) | Affiche/masque le DOM Ladder vertical (style Tradovate/Bookmap) : bid bleu / ask rouge, walls surlignés, profite des 200 niveaux Binance/Coinbase. |
| SE (btn-sigengine) | Ouvre la vue Signal Engine : conditions internes live de chaque core_mode coché pour comprendre pourquoi un signal se déclenche ou non. |
| SE LINK (btn-se-link) | Auto-allume les indicateurs sous-jacents (EMA/VWAP/BB/KC) sur le chart selon les core_modes armés ou actifs (score ≥ 20). |
| COCKPIT (btn-cockpit) | Overlay plein écran avec jauges, grille des modes cochés, timeline 60s, heatmap conditions et live feed du moteur de signaux. |
| Popout (btn-popout) | Ouvre le chart dans un onglet dédié (60fps garanti). |
| Signaux ON/OFF (sig-toggle) | Active / désactive le moteur de signaux live. |
| Sélecteur de stratégies (sig-strat-toggle) | Plug jusqu'à 5 stratégies sauvegardées (/api/strategies) en parallèle, chacune avec ses propres modes/direction ; ou mode strat manuelle. |
| MODES (sig-modes-row) | Rangée de chips core_mode (alignée 1:1 sur CoreMode de protos_v8.py) : 0 STRUCT, 2 IMPULS, 3 VWAP, 4 BBKC, 5 TREND, 6 RANGE, 7 SQZ, 8 RSI2, 9 SPRD, 10 DOM, 16 OB, 17 FBO, 18 NR7, 19 ORB, 20 TURTL, 21 SWEEP, 22 FVG, 23 CDD, 24 ADX, 25 VOLp, 26 HURST, 27 POC, 28 VPOC, 29 KALM, 31 GB, 32 KMNS, 33 ANOM, 34 PCA, 35 BNDT, 36 STK, 37 GRCH. ALL = tout cocher, × = tout décocher. Le mode 10 DOM requiert Databento (order book MBP-10). |
| Direction (sig-direction) | Filtre directionnel des signaux : LONG / BOTH / SHORT. |
| MANUAL / AUTO (sig-auto) | AUTO = prise de position automatique sur chaque signal déclenché ; MANUAL = clic requis. |
| MAX 1 / MAX 2 (sig-maxtrades) | Nombre maximum de positions ouvertes simultanément sur le compte actif. |
| BRACKET / NAKED (sig-bracket) | BRACKET = envoie le SL/TP du signal au broker ; NAKED = pas de SL/TP broker, exit gérée par les kill-switch PnL. |
| SCORE ≥ (sig-score-threshold) | Seuil de scoring 0-100 ; filtre serveur-side les signaux faibles en mode manuel (65 = défaut, 80 = très sélectif, 0 = désactivé). |
| Alertes sonores (sig-sound) | Beep sur chaque nouveau signal / touch / exécution. |
| TP $ / SL $ (sig-tp / sig-sl) | Kill-switch de session : gain max / perte max atteint = signaux OFF auto. |
| MAX TP $ / MAX SL $ par trade (sig-max-tp-per-trade / sig-max-sl-per-trade) | Cap par trade : resserre le TP/SL du signal s'il calcule plus loin que ce niveau (0 = pas de cap). |
| GAIN $ / LOSS $ (sig-max-gain / sig-max-loss) | Kill-switch session sur PnL total (réalisé + flottant) : atteint = signaux OFF auto. |
| BT 1Y (sig-bt1y) | Backtest 1 an avec les core_modes et réglages courants de la toolbar (sl_atr_mult, tp_param, direction, seuil). Popup avec PnL/WR/PF/MDD par mode et combiné. |
| Chips indicateurs (ind-bar) | Toggle ON/OFF (persisté localStorage) : EMA 20/50/100/200, VWAP, VO (volume oscillator), VP (volume profile session POC/VA), CDEL (cumulative delta), DLT (delta per bar), σ (VWAP std bands), FP (footprint), pVA (prev session value area), BIG (large trades), ABS (absorption), ICE (iceberg), READ (live market read), SLTP (smart SL/TP read), ALRT (alertes), MS (market structure HH/HL/LH/LL), RPLY (bar replay). |
| DRIFT (drift-widget) | Mesure l'écart entre la stratégie pluggée et son baseline FAO ; clic = panneau détails. |
| GEX overlay (gex-on / gex-symbol / horizons S·I·W·M / gex-scoring-mode / γ-side) | Active les niveaux d'options gamma sur le chart. Symbole source (SPY→ES, QQQ→NQ, IWM→RTY, DIA→YM, GLD→GC, SLV→SI, USO→CL, BTC/ETH Deribit). Horizons cochables Scalp(0-2DTE)/Intraday(2-7)/Swing(7-30)/Macro(30-365). gex-scoring-mode = horizon consommé par le moteur de score (auto/scalp/intraday/swing/macro/all). γ-side = panneau latéral profil gamma par strike. |
| Alertes prix (ap-price-input / ap-add-btn / ap-add-mid-btn) | Ajoute une ligne d'alerte de prix (son au croisement) ; Mid = alerte au mid actuel. Cases Confluence (ABS+BIG+pVA), Divergence CDEL/prix, Volume spike (>3×). |
| Barre de replay (rp-back-fast / rp-back / rp-play / rp-fwd / rp-fwd-fast / rp-speed / rp-slider / rp-live) | Mode Bar Replay : rewind/play bougie par bougie (-10/-1/play/+1/+10), vitesse 0.5×→20×, slider de position, retour LIVE. Visible quand la chip RPLY est ON. |
| DOM ladder zoom (vl-zoom-slider) | Densité du DOM ladder vertical : 0 = AUTO, glisser pour zoomer. |
| Onglets panneau bas (Time & Sales / Signaux / Trades) | Bascule la colonne droite entre la bande Time & Sales, le log des signaux et l'historique des trades fermés. |
| Vider trades (trades-clear-btn) | Vide la liste des trades affichés ici (n'affecte pas la page Performance). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Chandeliers + prix (last-px) | Graphique OHLC live au timeframe choisi avec dernier prix. |
| Timer de bougie (candle-timer) | Temps restant avant clôture de la bougie courante (vert >30%, ambre 10-30%, rouge <10%). |
| Session badge (sess-badge) | État de session CME (issu du schema status de Databento). |
| Stats strip (OI, Vol Day, Day High, Day Low, Settle, Prev Close, Open, VWAP) | Statistiques de session CME (schema statistics) : open interest, volume du jour, extrêmes, settlement, clôture précédente, ouverture, VWAP. |
| Crypto context strip (Funding 8h, OI, Vol 24h, Basis) | Snapshot cross-CEX consolidé en mode crypto : funding moyen 4 venues + spread, OI notional, volume 24h 3 sources, basis perp Hyperliquid vs spot. |
| Carnet d'ordres DOM (asks / mid / spread / bids) | Profondeur live du book avec taille (SZ) et compteur (CT) par niveau, mid, spread en valeur et ticks, last. |
| Imbalance resting bid/ask (imb-bid / imb-ask) | Rapport des tailles au meilleur bid vs meilleur ask (top-of-book L1). |
| Dominance flux (dom-gauge, 15s/1min/5min) | Qui traverse le spread (acheteur lève l'ask / vendeur frappe le bid) sur 3 fenêtres ; verdict directionnel. |
| Time & Sales (tape) | Flux des transactions, côté acheteur/vendeur. |
| PnL flottant (trade-pnl / chart-pnl-float) | P&L des positions ouvertes, mis à jour en continu. |
| Positions ouvertes (pos-list / pos-count) | Liste rétractable des positions avec PnL par ligne et bouton close. |
| PnL Session (sig-session-val) | PnL depuis le dernier toggle ON du moteur (réalisé + flottant). |
| Signal Engine barometre + grid + matrix + log | Force directionnelle pondérée par score (armés ×2), score = % conditions internes passantes, ARMED ≥ 80%, FIRED = tir réel validé ; matrice modes × conditions, top 5 par score, live feed d'événements. |
| Log signaux (siglog) | MODE · DIR · ENTRY · ÉTAT de chaque signal émis. |
| Historique trades (tradeshist) | Trades fermés (entry/exit, PnL, raison, durée), persistés localStorage clé protos_trade_history_v1, cap 500 ; clic = highlight des marqueurs sur le chart. |
| Live Market Read (chip READ) | Synthèse agrégeant tous les indicateurs : Bull Trap, Bear Trap, Continuation, Range, Climax… avec action prioritaire et score Bull/Bear sur 10. |
| Smart SL/TP Read (chip SLTP) | Breakdown du dernier signal armé : couches actives, multiplicateurs cumulés, snap-to-wall, R/R final, stats Shadow A/B (smart vs base). |
| Niveaux GEX (γ Profile side / gex-regime / flip / call wall / put wall) | Niveaux options gamma sur le chart : flip (jaune), top 3 résistances (rouge), top 3 supports (vert), régime gamma (= bon côté du flip, × mauvais côté), profil gamma par strike. |
| Drift score (drift-widget-score) | Écart de la stratégie pluggée vs son baseline FAO. |
| Footer métriques (Trades, Vol, Δ buy−sell, EPS, WS lag) | Compteurs live : nombre de trades, volume, delta net, events par seconde, latence WebSocket. |
| Badge nav Chart Live (chart-live-nav-badge) | Compteur de signaux non lus poussé par l'iframe (postMessage sig_alert) quand on n'est pas sur la page. |
Comment faire
LAUNCH_CHART_LIVE.bat ou python le serveur de données Databento (port 5055).- Garde le chart Arrêté quand tu ne l'utilises pas : tant qu'il l'est, aucun process databento ni WebSocket ne tourne et la RAM est libérée.
- Active SE LINK pour que les indicateurs (EMA/VWAP/BB/KC) s'allument automatiquement selon les modes armés — tu vois directement le contexte du signal.
- Utilise les kill-switch TP $ / SL $ / GAIN $ / LOSS $ pour couper le moteur automatiquement et borner ton risque de session.
- Le bouton BT 1Y permet de valider rapidement les modes/réglages courants sur 1 an sans quitter le chart.
- Le mode RPLY (Bar Replay) recalcule BIG/ABS/CDEL/FP en rejouant l'historique : idéal pour t'entraîner à lire l'order-flow sans pression.
- Le moteur de signaux et le passage d'ordres réels (MT5) sont du trading live : AUTO exécute de vrais ordres sur le compte sur lequel l'EA tourne.
- Le mode 10 DOM (microstructure) exige Databento (order book MBP-10) — il ne fonctionne pas sur toutes les sources.
- Les overlays GEX dépendent de yfinance (peut traîner >10s, timeout côté front) ou Deribit pour la crypto ; un échec laisse la liste de niveaux vide.
- BE ALL et CLOSE ALL agissent sur TOUTES les positions MT5, tous symboles confondus — pas seulement le symbole affiché.
- Le compte Paper et l'historique des trades du chart sont stockés en localStorage (cap 500 trades) et indépendants de la page Performance.
- Si le serveur de données Databento n'est pas lancé, la page reste sur l'overlay hors-ligne et rien ne s'affiche.
Performance (dashboard)
Tableau de bord qui affiche l'historique de performance d'un compte de trading : les trades fermes (avec PnL en dollars et en R) et les signaux emis par le moteur PROTOS. Les KPI (PnL jour / 7 jours / 30 jours / total, win rate, R moyen, meilleur/pire trade, signaux tires vs skippes), une equity curve (cumul du PnL) et deux tableaux detailles sont calcules a partir d'une base SQLite persistante. Les donnees survivent aux reloads de page et aux redemarrages du serveur ; seule une suppression manuelle les efface.
A consulter apres avoir laisse tourner des sessions de signaux (Chart Live / Cockpit) pour mesurer concretement ce que vos strategies ont produit sur un compte donne. Sert de bilan a posteriori, pas d'outil temps reel.
Aucune licence ni flux live n'est requis pour lire le dashboard. Pour qu'il y ait des donnees a afficher, des trades fermes et des signaux doivent avoir ete enregistres au prealable en base (via les sessions de signaux du Chart Live / databento_server, qui POSTent vers /api/perf/*).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Compte (select perf-account) | Choisit le compte affiche. Liste fusionnee (comptes du broker store accounts.json, compte MT5 connecte, comptes vus en historique DB). L'option — Tous comptes confondus — agrege tout. Le choix est memorise en localStorage. |
| Refresh (perf-refresh) | Recharge toutes les donnees (KPI, trades, signaux, equity curve) depuis la base SQLite. |
| Tout selectionner (trades-select-all) | Coche toutes les lignes du tableau des trades fermes. |
| Case a cocher en-tete trades (trades-check-all) | Coche/decoche toutes les lignes de trades en une fois. |
| Supprimer selection (trades-delete-sel) | Supprime definitivement les trades coches (confirmation demandee, action irreversible). |
| Tout effacer ce compte (trades-delete-all) | Efface TOUS les trades du compte selectionne (ou de tous les comptes si aucun n'est choisi). Confirmation, irreversible. |
| CSV trades (trades-export) | Exporte les trades affiches en fichier CSV (id, dates, compte, broker, symbole, side, lots, entry, exit, pnl_usd, pnl_r, duree, raison de sortie, signal_id). |
| Tout selectionner (signals-select-all) | Coche toutes les lignes du tableau des signaux emis. |
| Case a cocher en-tete signaux (signals-check-all) | Coche/decoche toutes les lignes de signaux en une fois. |
| Supprimer selection (signals-delete-sel) | Supprime definitivement les signaux coches (confirmation, irreversible). |
| Tout effacer ce compte (signals-delete-all) | Efface TOUS les signaux du compte selectionne (ou de tous les comptes). Confirmation, irreversible. |
| CSV signaux (signals-export) | Exporte les signaux affiches en CSV (id, ts, compte, broker, signal_id, symbole, direction, core_mode, entry, sl, tp, score moteur, triggered/executed/skipped, verdict, raisons). |
| Lien signal_id (colonne Signal des trades) | Clic sur l'id de signal d'un trade : surligne et fait defiler jusqu'a la ligne correspondante dans le tableau des signaux. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| PnL jour | Profit/perte cumule des trades fermes aujourd'hui + nombre de trades. Vert si positif, rouge si negatif. |
| PnL 7 jours | PnL des trades fermes sur les 7 derniers jours + nombre de trades. |
| PnL 30 jours | PnL des trades fermes sur les 30 derniers jours + nombre de trades. |
| PnL total | PnL cumule de tout l'historique du compte (all-time) + nombre de trades. |
| Win rate | Pourcentage de trades gagnants sur l'historique total. Sous-titre nW / nL = nombre de gagnants / perdants. Repere : > 50 % indique plus de gagnants que de perdants (mais ne garantit pas un PnL positif). |
| Avg R | R moyen de tous les trades (gain rapporte au risque initial). Lecture : > 1 R signifie qu'en moyenne le gain depasse le risque pris. |
| Best / Worst | Meilleur trade (valeur haute, en vert) et pire trade (sous-titre, en rouge) en dollars sur l'historique. |
| Signaux emis | Nombre total de signaux enregistres. Sous-titre n tires · n skippes = signaux declenches vs ignores par le moteur de decision. |
| Equity curve · cumul PnL | Courbe du PnL cumule trade apres trade (visible uniquement si un compte precis est selectionne). Ligne de zero en pointilles ; la courbe est verte si le PnL final est positif, rouge sinon. Meta : nombre de trades et PnL final. |
| Tableau Trades fermes — colonne Fermé | Horodatage de cloture du trade. |
| Tableau Trades — Symbole | Instrument trade. |
| Tableau Trades — Side | Sens : BUY (vert) ou SELL (rouge). |
| Tableau Trades — Lots | Taille de position en lots. |
| Tableau Trades — Entry | Prix d'entree. |
| Tableau Trades — Exit | Prix de sortie. |
| Tableau Trades — PnL $ | Resultat en dollars (vert si > 0, rouge si < 0). |
| Tableau Trades — PnL R | Resultat exprime en multiples de R (risque initial). |
| Tableau Trades — Sortie | Raison de cloture (exit_reason), ex. TP, SL, manuel. |
| Tableau Trades — Durée | Duree de detention de la position. |
| Tableau Trades — Signal | Identifiant du signal lie (cliquable pour aller au signal). « — » si aucun. |
| Tableau Signaux — Heure | Horodatage d'emission du signal. |
| Tableau Signaux — Symbole | Instrument du signal. |
| Tableau Signaux — Dir | Direction : BUY (vert) / SELL (rouge). |
| Tableau Signaux — Core mode | Nom du mode coeur du moteur (ex. VWAP_MEAN_REVERSION, HFT, KALMAN_TREND…), traduit depuis le numero core_mode. |
| Tableau Signaux — Entry | Prix d'entree propose par le signal. |
| Tableau Signaux — SL / TP | Stop-loss et take-profit proposes. |
| Tableau Signaux — Score | Score du moteur (engine_score) pour ce signal. |
| Tableau Signaux — Statut | Etat du signal : EXÉCUTÉ (vert), TIRÉ (accent), SKIP (gris) ou ARMÉ selon les flags executed/triggered/skipped. |
| Tableau Signaux — Verdict / Raison | Verdict du moteur de decision et/ou raison de tir (fire_reason) ou de skip (skip_reason). |
Comment faire
- L'equity curve ne s'affiche que si vous selectionnez UN compte precis ; en « Tous comptes confondus » elle reste vide.
- La liste de comptes fusionne le broker store (accounts.json), le compte MT5 connecte et les comptes vus en historique DB, donc un compte ayant deja trade apparait meme sans import manuel.
- Le compte selectionne est memorise (localStorage) et reproposé au prochain chargement.
- Les exports CSV nomment le fichier avec le compte et la date du jour (ex. perf_trades_<compte>_AAAA-MM-JJ.csv) pour archivage.
- Toutes les suppressions (selection, « Tout effacer ce compte », « tous comptes ») sont DEFINITIVES et irreversibles ; sans compte selectionne, « Tout effacer » vise TOUS les comptes.
- Le dashboard ne fait que LIRE l'historique : il ne genere ni signal ni trade. Si rien n'apparait, c'est qu'aucune session n'a encore ecrit en base via /api/perf/*.
- Win rate, Avg R, Best/Worst portent sur l'historique total du compte, pas sur la fenetre jour/semaine/mois.
- Les donnees sont persistees en SQLite locale : un win rate > 50 % n'implique pas un PnL positif (taille des pertes vs gains).
Live TV
PROTOS Trading LiveLive TV est un mur de télévision intégré à PROTOS qui affiche des flux YouTube en direct de chaînes financières et d'information (Bloomberg, Yahoo Finance, Reuters, DW News, France 24, BBC, etc.). Tu peux les regarder en grille de 4 ou en grand plein écran, et chaque tuile permet de choisir la chaîne. C'est purement de l'affichage vidéo embarqué : il n'y a aucun calcul, aucune analyse ni aucune connexion à un courtier. Une version popup flottante (petite fenêtre déplaçable en bas à droite) reste visible même quand tu navigues sur d'autres pages.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
Utilise-le pendant tes sessions de trading ou de backtest pour garder un œil sur l'actualité macro, les annonces de banques centrales ou les news qui font bouger les marchés, sans basculer vers un navigateur séparé. La popup flottante est pratique pour suivre une chaîne en fond pendant que tu travailles sur le Chart Live ou le Cockpit.
Une connexion Internet et un accès à YouTube. Aucune licence de données de marché ni clé courtier n'est requise. Certaines chaînes (CNBC USA, FOX Business) bloquent l'intégration iframe et ne sont pas dans la liste ; utilise le bouton d'ouverture sur YouTube pour celles-là.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Grid 4 | Affiche 4 tuiles vidéo simultanées en grille 2x2 (mode par défaut). |
| Single | Bascule en affichage d'une seule chaîne en grand, sur toute la zone. |
| Popup (⤴) | Ouvre/ferme la mini-fenêtre flottante en bas à droite, déplaçable et redimensionnable, qui reste visible sur les autres pages. |
| Sélecteur de chaîne (par tuile) | Liste déroulante pour choisir quelle chaîne joue dans chaque tuile parmi les 14 disponibles (Bloomberg TV, Bloomberg Technology, Yahoo Finance, CNBC TV18, CNBC Awaaz, Reuters, DW News, France 24 EN, France 24 FR, Al Jazeera English, Sky News, GB News, BBC News, Forbes). |
| Reload (↻, par tuile) | Recharge le flux de la tuile (relance le live_stream YouTube de la chaîne). |
| Ouvrir sur YouTube (⧉, par tuile) | Ouvre la chaîne directement sur YouTube dans un nouvel onglet (utile pour les chaînes qui bloquent l'intégration). |
| Sélecteur de chaîne (popup) | Dans la fenêtre flottante : choisit la chaîne affichée. |
| Reload popup (↻) | Recharge le flux de la fenêtre flottante. |
| Ouvrir sur YouTube popup (⧉) | Ouvre la chaîne de la popup dans un nouvel onglet. |
| Fermer popup (×) | Ferme la fenêtre flottante et coupe le flux pour libérer CPU et bande passante. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Tuiles vidéo (iframes YouTube) | Le ou les flux vidéo en direct des chaînes choisies. C'est la seule sortie : une lecture vidéo, pas de métrique ni de donnée chiffrée. |
Comment faire
- Ton choix de chaînes, le mode (grille/single) et la position/taille de la popup sont sauvegardés dans le navigateur (localStorage) et restaurés à la prochaine ouverture.
- La popup flottante se déplace en attrapant sa barre de titre et se redimensionne par le coin ; pratique pour suivre une chaîne pendant que tu surveilles le Chart Live.
- Pour une chaîne bloquée à l'intégration (ex. CNBC USA, FOX Business), passe par le bouton ⧉ qui l'ouvre directement sur YouTube.
- Aucun lien avec tes données de marché : ce n'est qu'un lecteur vidéo, il n'alimente aucun signal, backtest ni Cockpit.
- Quand tu quittes la page Live TV, les flux des tuiles sont coupés (src remis à vide) pour économiser CPU et réseau ; seule la popup flottante persiste entre les pages.
- Si YouTube est inaccessible (réseau, géo-blocage, chaîne hors-ligne ou qui interdit l'embed), la tuile reste noire ou vide ; ouvre alors la chaîne sur YouTube via ⧉.
- Les identifiants de chaînes YouTube ont été vérifiés à une date donnée dans le code ; si une chaîne change d'ID ou arrête son live, sa tuile peut ne plus charger.
Cockpit
PROTOS Trading LiveLe Trade Cockpit affiche en cartes les derniers signaux décidés par le moteur de décision de PROTOS. Pour chaque signal il consolide trois choses : le signal brut (direction, entrée, SL, TP), les vetos contextuels (news imminente, drift, régime, mur gamma) et la modulation de taille (score ML edge). Le résultat est un verdict unique TAKE / REDUCE / SKIP avec un multiplicateur de taille et le détail explicable de chaque facteur. C'est une vue d'ensemble en lecture seule : aucun ordre n'est envoyé, l'exécution reste manuelle.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
À garder ouvert pendant une session live armée sur le Chart Live : dès qu'un signal est émis et décidé sur le serveur le serveur de données Databento (), sa carte apparaît ici. Sert de check-list avant d'exécuter manuellement un trade ou de comprendre pourquoi un signal a été bloqué.
Le serveur le serveur de données Databento doit tourner (port 5055) et une session de signaux doit être armée sur le Chart Live. Sans session armée, aucun signal n'est décidé et la grille reste vide. Le veto news lit le calendrier économique ForexFactory ; le veto gamma nécessite un snapshot GEX ; la modulation ML et le veto drift ne sont actifs que pour une stratégie pluggée backtestée.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Rafraîchir (bouton ↻) | Force un appel immédiat à /api/cockpit/signals via cockpitRefresh() ; la page se rafraîchit aussi automatiquement toutes les 5 secondes tant qu'elle est ouverte. |
| Réessayer | Bouton du bandeau hors-ligne : relance cockpitRefresh() pour retenter la connexion au serveur Cockpit. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Serveur | État de la liaison au le serveur de données Databento. en ligne (vert) si l'API répond, hors-ligne (rouge) sinon, ce qui affiche le bandeau d'erreur. |
| Signaux décidés | Nombre de signaux actuellement dans le ring buffer (compteur cockpit-count). Le buffer serveur garde au maximum les 60 derniers signaux. |
| Dernière MAJ | Heure du dernier rafraîchissement réussi de la page. |
| Verdict | Décision finale du moteur. TAKE (vert) = prendre, REDUCE (orange) = prendre en taille réduite, SKIP (rouge) = au moins un veto actif, ne pas prendre. |
| Direction | Sens du trade : BUY (vert) ou SELL (rouge). Une barre colorée à gauche de la carte reprend cette couleur. |
| Symbol | Instrument du signal (ex. NQ). |
| Nom de stratégie (strat_name) | Nom de la stratégie pluggée à l'origine du signal, affiché si présent ; absent pour un signal manuel. |
| Âge (il y a …) | Ancienneté du signal calculée depuis son horodatage : en secondes sous 90s, sinon en minutes. |
| Résumé (summary) | Phrase générée par le moteur : TAKE — score X, taille ×N, REDUCE — taille ×N (modulation contexte), ou SKIP — suivi de la ou des raisons de veto. |
| Entry | Prix d'entrée du signal. |
| SL | Stop loss (peut être ajusté par le pipeline smart SL/TP / DOM micro). |
| TP | Take profit. |
| R/R | Ratio risque/récompense calculé côté UI = |TP−Entry| / |Entry−SL|. Plus c'est haut, mieux c'est ; — si le risque est nul. |
| Taille | Multiplicateur de taille size_mult (ex. ×1.00), borné entre 0.30 et 1.50. <1 = position réduite, >1 = position renforcée. Aujourd'hui piloté par le seul modulateur ML edge. |
| Rationale (lignes de facteurs) | Détail facteur par facteur. Chaque ligne porte un marqueur : ✕/rouge = BLOCK (veto actif), ▲/vert = boost (taille augmentée), ▼/orange = reduce (taille réduite), · = neutre. Facteurs affichés : veto:news, veto:drift, veto:regime, veto:gamma et size:ml_edge, chacun avec son texte d'explication. |
Comment faire
python le serveur de données Databento (port 5055) et arme une session de signaux sur le Chart Live./api/cockpit/signals toutes les 5 secondes.- Un verdict SKIP n'annule pas le signal en manuel : le moteur étiquette mais ne bloque pas, tu restes maître de la décision.
- La couleur de la barre de gauche (vert/rouge) donne la direction d'un coup d'oeil, indépendamment du verdict.
- Le bouton ↻ est utile pour ne pas attendre le cycle de 5s, par exemple juste après avoir armé une session.
- La page n'évalue rien elle-même : tout le calcul du verdict se fait sur le le serveur de données Databento. Si le serveur est hors-ligne ou aucune session n'est armée, la grille reste vide.
- Le buffer serveur est volatile (deque de 60 max en mémoire) : il se vide au redémarrage du serveur et ne conserve pas l'historique au-delà des 60 derniers signaux.
- Les vetos drift et la modulation ML edge ne s'appliquent réellement qu'aux stratégies pluggées backtestées ; en manuel ils restent neutres (pas de baseline FAO, pas forcément d'état ML).
- Le veto gamma est neutre si aucun snapshot GEX n'est disponible, et le veto news est neutre si le calendrier ForexFactory n'est pas joignable : l'absence de données ne déclenche jamais de blocage.
- Le multiplicateur de taille est seulement informatif ici : c'est à toi de l'appliquer en dimensionnant manuellement ta position.
Master Cockpit
PROTOS Trading LiveLe Master Cockpit est un tableau de bord qui charge en parallele 3 vues live de PROTOS dans une seule page : le L3 DOM Chart (heatmap + ladder + detections), la Microstructure Live (OBI, Kyle's lambda, profondeur) et le Signal Engine (telemetry, matrix, log + indicateurs sous-jacents). En plus des 3 vues, il ouvre un driver WebSocket invisible vers /ws/signals (port 5055) qui maintient une session de signaux active cote serveur : c'est ce driver qui produit les evaluations de modes et alimente les 3 panneaux, sans qu'il soit necessaire d'afficher un Chart Live separe. Tout fonctionne par chargement/dechargement d'iframes pour economiser les ressources.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
Utilisez-le quand vous voulez surveiller le marche en direct sur une seule fenetre pendant une session de trading, en croisant le carnet d'ordres L3, la microstructure et les signaux. C'est la vue de pilotage centrale quand le flux temps reel tourne.
Connexion temps reel active : le serveur databento_server doit tourner sur le port 5055 et le flux live (Databento / order-flow) doit etre disponible. Symbole par defaut du driver : NQ, timeframe 60s.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| ● LANCER / ● ARRETER (mcockpit-toggle) | Bouton principal marche/arret. LANCER charge les 3 iframes en parallele (avec un decalage de 300 ms et 600 ms pour lisser le pic CPU) et ouvre le driver WS ; ARRETER decharge les iframes (src=about:blank) et ferme le driver pour liberer les ressources. |
| ↻ Recharge les iframes (mcockpit-reload) | Recharge les 3 iframes : decharge tout puis recharge apres 100 ms. Ne fait rien si le cockpit est a l'arret. |
| ↓ SE / Scroll vers Signal Engine (mcockpit-scroll-sigeng) | Fait defiler la page en douceur jusqu'au panneau Signal Engine (section 2 du bas). Ne fonctionne que si le cockpit est lance. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Indicateur de statut (mcockpit-status) | Etat global du cockpit : — off a l'arret, — live · 3 iframes + driver au lancement, — live · 4 iframes · driver ● quand le driver WS est connecte, — erreur driver en cas d'echec WS. |
| L3 DOM Chart (pane L3) | Iframe servie par databento_server sur /layer3 (port 5055). Vue order-flow : heatmap defilante, ladder DOM temps reel, tape, SIG ENG et indicateurs, avec detections BIG / ICEBERG / ABSORPTION. Pastille de statut ● en haut a droite du pane. |
| Microstructure Live (pane micro) | Iframe chargeant la page microstructure_live en mode master. Affiche OBI (order-book imbalance), Kyle's lambda et la profondeur du carnet. Alimentee par les signaux POST vers /api/microstructure/pnl_register emis par le driver. Pastille de statut ●. |
| Signal Engine (pane sigeng) | Iframe pleine largeur chargeant la page signal_engine en mode master. Affiche le mode telemetry, la matrix, le log et les indicateurs sous-jacents, consommant les mode_eval produits par la session du driver. Pastille de statut ●. |
| Driver WS invisible | Connexion WebSocket vers /ws/signals (port 5055) sur le symbole NQ, tf 60s, core_modes 0 a 10, direction BOTH. Ne consomme aucun message : son seul role est de garder une LiveSignalSession vivante cote serveur, ce qui produit les mode_eval et alimente les 3 panneaux. Reconnexion automatique avec backoff exponentiel plafonne a 30s tant que le cockpit est ON. |
Comment faire
- Quand vous quittez la page sans cliquer ARRETER, les iframes et le driver restent charges volontairement : revenir a la page est instantane, rien n'est rechargé.
- Le L3 DOM Chart et la Microstructure consomment le meme flux WS que le Chart Live : pas besoin d'ouvrir un Chart Live separe, le driver invisible suffit a tout alimenter.
- Si une vue ne se met plus a jour, ↻ recharge proprement les 3 iframes sans avoir a tout arreter.
- C'est une vue 100% temps reel : sans serveur sur le port 5055 ni flux live, les 3 panneaux restent vides ou en erreur.
- Le symbole, le timeframe (60s) et les core_modes (0-10) du driver sont fixes dans le code (drvSymbol=NQ) — ils ne sont pas reglables depuis l'interface du cockpit.
- 3 iframes + 1 driver WS tournant en parallele consomment du CPU et de la bande passante : pensez a cliquer ARRETER quand vous n'utilisez plus la vue, sinon tout continue de tourner meme apres avoir change de page.
- Tant que master est ON, le driver tente de se reconnecter en boucle (backoff jusqu'a 30s) : un statut 'erreur driver' rouge signale un probleme de connexion au le serveur de données Databento.
VP Footprint
PROTOS Trading LiveVP Footprint est un terminal d'analyse de flux d'ordres (order-flow) en temps reel. Il se connecte a un flux de marche en direct (WebSocket sur le port 5055) et construit en live trois choses: un Volume Profile (histogramme du volume echange a chaque prix, avec POC et Value Area), un Footprint (volume acheteur/vendeur detaille a chaque tick a l'interieur de chaque bougie, avec detection des desequilibres 3:1) et le Cumulative Delta (pression acheteuse moins vendeuse cumulee). Une bande haute affiche aussi le carnet (best bid/ask, spread, profondeur 5 niveaux) toujours en direct.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A utiliser pendant les heures de marche ouvert pour lire l'agressivite reelle des acheteurs et vendeurs autour de niveaux cles, reperer absorption et desequilibres, et confirmer ou invalider une zone avant d'entrer. C'est l'outil d'observation live qui alimente aussi le module Behavior Tracker (rebonds/cassures sur POC/VAH/VAL).
Connexion live obligatoire via le serveur de feed sur le port 5055 (databento_server). Pour les futures CME il faut une cle Databento valide (renseignee dans la section Donnees). Les modes crypto (Binance, Coinbase L2, Hyperliquid, Consolidated) utilisent des flux publics et ne necessitent pas la cle Databento. Sans flux, tous les indicateurs restent a tiret.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Source (vpf-broker) | Choisit le venue du flux WebSocket: vide = CME Futures (Databento), Crypto (Binance) = book 200 niveaux, Crypto L2 (Coinbase) = 300 niveaux, Perp (Hyperliquid) = perp on-chain semi-L3, Consolidated = 3 venues fusionnes (Binance+Coinbase+Hyperliquid). Change la source recharge la connexion. |
| Symbol (vpf-symbol) | Selectionne l'instrument. En mode CME: NQ, MNQ, ES, MES, YM, RTY, GC, MGC, SI, CL, NG, ZN, ZB, 6E, 6J, BTC. La liste s'adapte au broker choisi. |
| Ticker libre (vpf-symbol-free) | Visible uniquement en mode crypto: permet de taper n'importe quel ticker Binance (PEPE, WIF, INJ...) hors des majors listees. |
| TF (vpf-tf) | Periode d'agregation des bougies du footprint: 1s, 5s, 15s, 30s, 1m (defaut), 5m, 15m. |
| Tick (vpf-tick) | Taille du pas de prix (defaut 0.25) servant a quantifier le prix en niveaux pour le Volume Profile et le footprint. A regler selon l'instrument. |
| Delay (s) (vpf-delay) | Decale l'application des trades et du book au footprint/VP (0 a 30s) via un buffer. Le top-of-book de la bande bid/ask reste toujours en direct, sans delai. Un compteur 'buf' montre la taille du buffer. |
| PRICE LINE (vpf-priceline) | Affiche/masque le trait du prix mid lisse tick par tick, defilant en continu a 60 FPS sur l'axe temps (style L3 DOM). |
| Lissage (vpf-smooth) | Niveau de lissage EMA de la price line: brut (1), leger (3, defaut), moyen (8), fort (20). |
| LANCER / ARRETER (vpf-toggle) | Demarre ou stoppe la connexion live et le rendu. En cours, le bouton devient ARRETER. |
| Pause (vpf-pause) | Met en pause l'ingestion des messages WS (le flux reste connecte). Le bouton bascule entre Pause et Resume. |
| Reset (vpf-reset) | Vide tout l'etat de session: Volume Profile, bougies footprint, cumulative delta, imbalances et fenetre tape, sans couper la connexion. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Speed t/s (vpf-tape-speed) | Vitesse du tape: nombre de trades par seconde sur la fenetre glissante de 5s. Indique l'activite/agressivite du marche. |
| Vol/sec (vpf-vol-sec) | Volume echange par seconde sur la fenetre 5s. Pics = afflux de volume. |
| Delta bar (vpf-bar-delta) | Delta de la bougie en cours = volume agressif acheteur moins vendeur. Vert si positif (acheteurs dominent), rouge si negatif. |
| Cum delta (vpf-cum-delta) | Cumulative delta de toute la session: somme des delta. Monte = pression acheteuse cumulee, descend = pression vendeuse. Divergence avec le prix = signal d'epuisement. |
| POC (vpf-poc) | Point of Control = prix ayant echange le plus de volume sur la session (niveau d'equilibre/aimant de prix). |
| VAH (vpf-vah) | Value Area High = borne haute de la zone contenant 70% du volume autour du POC. Resistance de la zone de valeur. |
| VAL (vpf-val) | Value Area Low = borne basse de la zone 70% du volume. Support de la zone de valeur. |
| Buy/Sell % (vpf-bs-ratio) | Repartition acheteur/vendeur sur la fenetre 5s, en pourcentages (ex: 62% / 38%). Au-dessus de 50% cote acheteur = agressivite haussiere. |
| Best BID (vpf-best-bid + sz) | Meilleur prix acheteur du carnet et sa taille. Toujours en direct (ignore le Delay). |
| Best ASK (vpf-best-ask + sz) | Meilleur prix vendeur du carnet et sa taille. Toujours en direct. |
| Spread (vpf-spread-px + tk) | Ecart ask - bid, en prix et en nombre de ticks. Spread large = faible liquidite. |
| Mid (vpf-mid-px + trend) | Prix milieu (bid+ask)/2, avec fleche de tendance: vert montant, rouge descendant. |
| Book imbal (vpf-book-imb + ratio) | Desequilibre du carnet sur les 5 premiers niveaux: BID si >60% cote acheteur, ASK si >60% cote vendeur, sinon BAL (equilibre). Affiche aussi le ratio bid%/ask%. |
| Bid 5lvl (vpf-bid-5lvl) | Profondeur cumulee (volume) des 5 meilleurs niveaux cote acheteur. |
| Ask 5lvl (vpf-ask-5lvl) | Profondeur cumulee des 5 meilleurs niveaux cote vendeur. |
| last / spread (topbar) | Dernier prix echange et spread courant affiches en haut a droite, avec un point d'etat (off / connexion / live / erreur). |
| Graphe principal (vpf-main-canvas) | Bougies avec, a droite, l'histogramme Volume Profile (vert = volume cote ask/acheteur agressif, rouge = bid/vendeur agressif), la ligne POC (orange) et les lignes VAH/VAL (violet pointille). Le footprint montre le volume bid/ask par tick dans chaque barre. |
| Cumulative Delta (vpf-cd-canvas) | Courbe du delta cumule sur la session (sous-echantillonnee a 1 point/seconde, ~10 min de profondeur). |
| Imbalances (vpf-imb-feed + count) | Flux des desequilibres detectes a ratio >= 3:1 sur un meme niveau de prix (et volume >= 3). Vert = buy (ask domine), rouge = sell (bid domine). Les imbalances empilees (stacked, >=3 niveaux voisins meme sens) sont surlignees: signal d'absorption/agressivite forte. |
| Delay buffer (vpf-delay-bufsz) | Nombre d'evenements en attente dans le buffer de delai (visible quand Delay > 0). |
Comment faire
- Le top-of-book (Best BID/ASK, spread, mid, profondeur) reste toujours en direct meme avec un Delay configure: utile pour garder le pouls du marche tout en lissant le footprint.
- Une divergence entre Cumulative Delta et prix (prix monte mais delta baisse) signale souvent un essoufflement de la tendance.
- Les imbalances 'stacked' (surlignees) sont les plus significatives: elles marquent une absorption ou une poussee agressive concentree sur plusieurs niveaux voisins.
- Tu peux laisser tourner VP Footprint en arriere-plan: si le Behavior Tracker est actif, le WebSocket reste alimente meme quand tu changes de page.
- Section 100% live: sans connexion au serveur de feed (port 5055) tous les indicateurs restent a tiret. La reconnexion est automatique avec backoff exponentiel (jusqu'a 30s).
- Pour les futures CME une cle Databento valide et active est indispensable; une cle absente/expiree empeche tout affichage.
- Le Tick doit correspondre a l'instrument: un Tick errone fausse la quantification des niveaux, donc POC, Value Area et footprint.
- Le Volume Profile et la Value Area (70% du volume autour du POC) sont calcules sur la session courante uniquement (depuis le dernier Reset ou changement de symbol/TF/tick), pas sur un historique long.
- La detection d'imbalance exige min/max au meme niveau avec ratio >= 3 et volume max >= 3; sur les marches tres peu liquides peu d'imbalances apparaitront.
Behavior Tracker
PROTOS Trading LiveBehavior Tracker observe en direct comment le prix interagit avec les 3 niveaux cles du profil de volume : POC (Point of Control), VAH (haut de la zone de valeur) et VAL (bas de la zone de valeur). A chaque instant il classe le comportement via une machine a etats : touch (le prix arrive sur la zone), rebond (il repart du meme cote), cassure (il traverse la zone) et return (il revient apres une cassure). Il compte ces evenements par zone, mesure leur amplitude en ticks et le temps passe au niveau, affiche un graphique live avec marqueurs, et exporte tout en CSV pour un backtest hors-ligne.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A utiliser en session live, une fois le VP Footprint lance, pour mesurer statistiquement si les zones de valeur tiennent (rebonds) ou cedent (cassures) sur l'instrument suivi. Sert a calibrer une strategie de mean-reversion ou de breakout et a recolter des donnees CSV horodatees pour la rejouer ensuite.
Necessite que le module VP Footprint soit lance (il fournit POC/VAH/VAL/mid/bid/ask) ; celui-ci s'appuie sur le flux live Databento. Sans data VP, le tracker propose de lancer automatiquement le VP Footprint en arriere-plan et ne produit rien tant qu'aucun tick n'arrive.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| prox. (ticks) — btr-cfg-prox | Distance en ticks sous laquelle le prix est considere au niveau (touch). Defaut 2, min 0.5, max 20, pas 0.5. Memorise dans le navigateur. |
| reb.Δ (ticks) — btr-cfg-rebticks | Amplitude minimale en ticks, du meme cote, pour valider un rebond. Defaut 3, min 1, max 40. |
| cassure (ticks) — btr-cfg-brkticks | Amplitude minimale en ticks, du cote oppose (traversee), pour valider une cassure. Defaut 4, min 1, max 40. |
| conf. (ms) — btr-cfg-confms | Champ de confirmation en millisecondes (defaut 1500, min 200, max 10000). Lu et sauvegarde dans les preferences mais non utilise par la machine a etats actuelle (la validation se fait par amplitude en ticks, pas par duree). |
| ● START — btr-start | Demarre l'enregistrement (verifie que le VP Footprint tourne) ou reprend apres une pause. Reinitialise events/samples au cold start et lance la boucle de capture a 20 Hz (50 ms). |
| ‖ PAUSE — btr-pause | Suspend la capture sans effacer les donnees ; le chrono de duree est gele jusqu'a la reprise. |
| ■ STOP — btr-stop | Arrete la capture et fige les compteurs ; l'export CSV reste disponible. |
| ↻ Reset — btr-reset | Apres confirmation, efface tous les evenements, samples et statistiques et remet l'etat des zones a IDLE. |
| ⬇ EXPORT CSV — btr-export | Telecharge 3 fichiers CSV (events, samples, stats) nommes btr_SYMBOLE_DATE ; alerte si aucune donnee. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| STATUS (btr-status-dot / txt) | Etat du tracker : IDLE, REC (enregistrement), PAUSED, STOPPED. |
| DURATION | Duree d'enregistrement effective hh:mm:ss (pauses deduites). |
| SAMPLES | Nombre d'echantillons periodiques captures (un toutes les 250 ms) pour le CSV samples. |
| EVENTS | Total des evenements de comportement detectes (touch + rebond + cassure + return). |
| TOUCHES | Total des contacts du prix avec les zones, toutes zones confondues. |
| REBONDS | Total des rebonds (le prix repart du meme cote apres contact). |
| CASSURES | Total des cassures (le prix traverse la zone). |
| REB·RATE | Taux de rebond global = rebonds / (rebonds + cassures) en %. Eleve = zones qui tiennent ; bas = zones franchies. |
| MID·LIVE | Prix milieu (mid) live courant issu du VP Footprint. |
| Cartes POC / VAH / VAL — px | Prix actuel de chaque zone (indice x tick). |
| Cartes — state | Etat de la machine pour la zone : IDLE, APPROACHING, AT_LEVEL, BROKEN. |
| Cartes — dist | Distance absolue actuelle du prix a la zone, en ticks. |
| Cartes — side | Cote du prix par rapport a la zone : above (au-dessus) ou below (en-dessous). |
| Cartes — T / ↻ / ✕ | Compteurs par zone : T = touches, ↻ = rebonds, ✕ = cassures. |
| Cartes — rate | Taux de rebond de cette zone = rebonds / (rebonds + cassures) en %. |
| BEHAVIOR CHART (canvas) | Graphique live : ligne de prix (mid), lignes POC/VAH/VAL et marqueurs d'evenements (▲ touch jaune, ↻ rebond vert, ✕ cassure rouge, point return violet). |
| EVENT FEED (btr-log) | Journal defilant des derniers evenements horodates (heure, type, zone, prix, detail) ; compteur 'N events'. Limite a 500 lignes affichees. |
| Avg rebond Δ | Amplitude moyenne des rebonds en ticks (somme des amplitudes / nombre de rebonds). |
| Avg cassure Δ | Amplitude moyenne des cassures en ticks. |
| Time at zone | Temps cumule passe au niveau des zones (en secondes) avant de repartir/casser. |
| Best zone | Zone au meilleur taux de rebond (calculee seulement si au moins 3 evenements rebond+cassure sur la zone), affichee avec son pourcentage. |
| CSV events (btr_..._events.csv) | Un evenement par ligne : ts_iso, ts_ms, type, zone, zone_px, mid_px, dist_ticks, side, bid, ask, spread, cum_delta, book_imbal, speed_tps, vol_session, bar_open/high/low/close, bar_delta, from_side, dwell_ms, magnitude_ticks. |
| CSV samples (btr_..._samples.csv) | Snapshot toutes les 250 ms : ts_iso, ts_ms, mid, bid, ask, spread, poc, vah, val, distances en ticks (d_poc/d_vah/d_val), cum_delta, book_imbal, speed_tps, vol_session, bar_delta. |
| CSV stats (btr_..._stats.csv) | Resume par zone : touches, rebounds, breaks, returns, reb_rate_pct, avg_reb_ticks, avg_brk_ticks, time_at_ms. |
Comment faire
- REB·RATE eleve signale des zones qui repoussent le prix (jouer la mean-reversion) ; REB·RATE bas signale des zones franchies (jouer le breakout).
- Les 3 CSV partagent le meme prefixe btr_SYMBOLE_DATE : croisez events et samples par ts_ms pour reconstruire le contexte (delta, imbalance, vitesse) au moment de chaque evenement.
- Le tracker continue d'enregistrer la data meme quand vous quittez la page : seul le rendu du graphique s'arrete, la capture (dataInterval) tourne tant que le statut est REC.
- La carte 'Best zone' n'apparait qu'a partir de 3 evenements rebond+cassure sur une zone : laissez tourner assez longtemps pour des stats fiables.
- Aucune logique serveur : tout est calcule dans le navigateur a partir de l'objet _VPF du VP Footprint. Si le VP n'est pas lance ou si le flux live est coupe, le tracker ne produit rien (affiche 'en attente de data VP').
- Le champ conf. (ms) est sauvegarde mais n'est pas applique par la machine a etats actuelle : la confirmation d'un rebond ou d'une cassure se fait par amplitude en ticks (reb.Δ / cassure), pas par une duree minimale.
- Le buffer du graphique est limite a 4000 points (~10 min a 250 ms) ; au-dela les points les plus anciens sont supprimes de l'affichage (mais pas du CSV samples).
- L'EVENT FEED n'affiche que les 500 dernieres lignes ; le CSV events contient lui l'integralite des evenements de la session.
- Le Reset demande confirmation et efface tout de maniere irreversible (events, samples, stats) : exportez avant si besoin.
- Les prix de zones sont reconstruits comme indice x tick depuis le VP : ils dependent de la justesse du profil de volume en amont.
Spread Compare
PROTOS Trading LiveSpread Compare est un traqueur temps reel qui branche en parallele un contrat Future (flux Databento CME) et son equivalent CFD (flux MT5 Bridge via votre Expert Advisor) et compare leurs spreads bid/ask seconde par seconde. Il convertit chaque spread dans la meme unite comparable (le bps notionnel, c'est-a-dire le cout du spread rapporte a la valeur notionnelle de la position) pour neutraliser les differences de taille de contrat. Il accumule des statistiques (moyenne, P50, P95, max), detecte les ecartements anormaux de spread (widening), ventile par session de marche et simule le cout cumule sur 1 a 500 trades. Tout peut etre exporte en CSV.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
Utilisez-le avant de choisir sur quel instrument router une strategie : si vous hesitez entre trader le Nasdaq en Future (NQ) ou en CFD (NAS100), laissez tourner le tracker quelques minutes a quelques heures pour voir lequel offre le spread le moins cher selon la session, et chiffrer l'economie reelle sur votre cadence de trades.
Necessite le serveur de données Databento lance sur le port 5055. Cote Future : une cle/abonnement Databento (CME) actif. Cote CFD : le MT5 Bridge connecte avec votre Expert Advisor MT5 en ligne (badge EA OK). Sans ces deux flux, les panneaux restent disconnected et aucune donnee n'est echantillonnee.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| FUT (scmp-fut-sym) | Choisit le contrat Future a tracker (NQ, ES, YM, RTY, GC, SI, CL, NG, BTC, MBT, ETH, MET, 6E, 6B, 6J). Determine les specs tick/tickValue/pointValue utilisees pour les calculs. |
| CFD (scmp-cfd-sym) | Choisit le symbole CFD broker a comparer (NAS100, US100, SP500, US500, US30, US2000, XAUUSD, XAGUSD, WTI, NATGAS, BTCUSD, ETHUSD, EURUSD, GBPUSD, USDJPY). Determine point et pointValuePerLot. |
| ↔ Auto-pair (scmp-autopair) | Selectionne automatiquement le CFD correspondant au Future choisi via le mapping interne (ex. NQ → NAS100, GC → XAUUSD, 6E → EURUSD). |
| size sim. (scmp-sim-size) | Nombre de contrats/lots simules (0.1 a 100). Multiplie les couts dans le simulateur de slippage et le KPI SAVE/100tr. |
| ● START (scmp-start) | Ouvre les deux WebSockets (Future + CFD), demarre l'echantillonnage toutes les 250 ms et le chrono de session. |
| ■ STOP (scmp-stop) | Ferme les deux flux et arrete l'echantillonnage, en conservant les donnees deja collectees. |
| ↻ Reset (scmp-reset) | Apres confirmation, efface tout : samples, stats, histogrammes, ventilation par session, evenements de widening et diagnostics. |
| ⬇ CSV (scmp-export) | Telecharge trois fichiers CSV : samples (toutes les mesures horodatees), widening (evenements d'ecartement) et stats (resume avg/max/P50/P95 par instrument). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| DURATION (scmp-duration) | Duree d'enregistrement depuis le START (format HH:MM:SS). |
| SAMPLES (scmp-samples) | Nombre d'echantillons collectes (un toutes les 250 ms, plafonne a 20000 ≈ 80 min de fenetre glissante). |
| SESSION (scmp-session) | Session de marche en cours selon l'heure UTC : ASIA (0-7h), EU (7-13h), OVERLAP/EU+US (13-16h), US (16-21h), OFF (reste). |
| RATIO·NOW (scmp-ratio-now) | Ratio instantane CFD/FUT en bps. < 1× = le CFD est moins cher que le Future, > 1× = plus cher. |
| CHEAPER (scmp-cheaper) | Indique qui a le spread le plus bas a l'instant T : FUTURE ou CFD. |
| SAVE/100tr (scmp-save100) | Economie estimee en USD sur 100 trades en choisissant l'instrument le moins cher (basee sur la difference de cout par trade x taille x 100). |
| WIDEN (scmp-widens) | Compteur d'evenements d'ecartement detectes (spread instantane > 3x la moyenne glissante 60s). |
| BASIS (scmp-basis) | Difference de prix mid CFD - Future. Mesure l'ecart de cotation entre les deux marches (base). |
| BEST BID / BEST ASK (scmp-fut-bid/ask, scmp-cfd-bid/ask) | Meilleur prix achat/vente en direct sur chaque cote, decimales adaptees a l'instrument. |
| SPREAD (scmp-fut-spd, scmp-cfd-spd) | Spread brut ask - bid en prix natif de l'instrument. |
| TICKS / POINTS (scmp-fut-tk, scmp-cfd-pt) | Spread exprime en ticks (Future) ou en points broker (CFD). |
| USD/contract et USD/lot (scmp-fut-usd, scmp-cfd-usd) | Cout du spread en USD pour 1 contrat Future ou 1 lot CFD (spread x pointValue / pointValuePerLot). |
| BPS notional (scmp-fut-bps, scmp-cfd-bps) | Cout du spread rapporte a la valeur notionnelle, en points de base. C'est la metrique comparable cle entre les deux instruments (plus bas = moins cher). |
| AVG / P50 / P95 / MAX (scmp-fut-avg/p50/p95/max, idem cfd) | Statistiques du spread en bps sur la session : moyenne, median, 95e percentile (pire cas frequent), maximum observe. |
| books (scmp-fut-books, scmp-cfd-books) | Diagnostic : nombre de mises a jour de carnet recues depuis le start. |
| rate/s (scmp-fut-rate, scmp-cfd-rate) | Diagnostic : cadence de reception des books par seconde (qualite/densite du flux). |
| spd min (scmp-fut-min, scmp-cfd-min) | Diagnostic : plus petit spread brut observe sur ce cote. |
| distinct (scmp-fut-dist, scmp-cfd-dist) | Diagnostic : nombre de valeurs de spread distinctes vues (un seul niveau distinct trahit un flux fige ou pauvre). |
| Statut + latence (scmp-fut-dot/stat/lat, scmp-cfd-dot/stat/lat) | Pastille verte/rouge, etat texte (connected/closed/error/disconnected) et latence en ms depuis le dernier tick recu. |
| SPREAD · TIME SERIES (scmp-chart-ts) | Graphe des 5 dernieres minutes : courbe orange = Future bps, courbe violette = CFD bps, pointille cyan = ratio CFD/FUT (axe droite, max 4x). |
| SPREAD · DISTRIBUTION (scmp-chart-hist) | Histogramme de la distribution des spreads en bps pour visualiser leur dispersion. |
| SESSION BREAKDOWN (scmp-sess-tbody) | Tableau par session : FUT bps moyen, CFD bps moyen, ratio (vert si < 1, rouge si >= 1), N echantillons. La session courante est surlignee. |
| SLIPPAGE SIMULATOR (scmp-sim-tbody) | Tableau pour 1/10/50/100/500 trades : cout FUT, cout CFD et diff (vert = CFD moins cher), base sur le spread moyen courant et la taille simulee. |
| WIDENING EVENTS (scmp-widen-list) | Journal des ecartements (spread > 3x moyenne 60s, cooldown 10s) : heure, cote FUT/CFD, bps au moment de l'evenement et multiple de la moyenne. |
| FUT contract / CFD spec (scmp-fut-spec, scmp-cfd-spec) | Rappel des specs utilisees : tick, $/tick, $/point cote Future ; point et $/point-lot cote CFD. |
| Total trades sim. (scmp-total-cost) | Cout d'un aller-retour : FUT vs CFD en USD pour la taille courante. |
| Notional ratio (scmp-notional) | Valeur notionnelle approximative d'1 unite cote FUT et cote CFD (en milliers d'USD). |
Comment faire
- Comparez toujours via la colonne BPS notional et le ratio, pas via le spread brut : seul le bps neutralise les differences de taille de contrat Future vs lot CFD.
- Surveillez la ligne SESSION BREAKDOWN : un instrument peut etre moins cher en US mais plus cher en ASIA ; routez votre strategie selon l'heure ou vous tradez.
- Verifiez distinct et rate/s avant de croire les stats : un distinct fige ou un rate/s nul signale un flux mort, pas un spread reellement stable.
- Pour une comparaison robuste, laissez accumuler des milliers de samples (jusqu'a 20000 ≈ 80 min) afin que P95 et MAX soient representatifs des pires moments.
- Section 100% live : sans Databento actif ET MT5 Bridge/EA connecte, les panneaux restent disconnected et rien n'est echantillonne (pas de mode historique).
- Les specs (tick, pointValue, pointValuePerLot) sont codees cote front : si votre broker CFD utilise une taille de lot differente de la convention retenue (ex. crypto 1 lot = 1 unite, FX 1 lot = 100k), les USD/lot et bps CFD seront fausses.
- Le buffer de samples est plafonne a 20000 (~80 min) : au-dela, les plus anciens echantillons sont supprimes, mais les agregats AVG/MAX/sessions continuent de cumuler depuis le START.
- Le widening se declenche sur > 3x la moyenne glissante 60s avec un cooldown de 10s par cote : sur un marche tres calme, un ecart modeste peut suffire a flaguer un evenement.
- Tout est en memoire navigateur (et prefs dans localStorage) : un Reset, un changement de page sans STOP ou un rechargement perd les donnees non exportees en CSV.
HMM Regime
PROTOS Trading LiveHMM Regime fait tourner un Gaussian Hidden Markov Model (hmmlearn) qui apprend tout seul les etats caches du marche a partir de 5 features de prix, puis decode a chaque barre le regime courant parmi TRENDING UP, TRENDING DOWN, RANGING, CHOPPY et VOL EXPANSION. Le panneau affiche l'etat live avec ses probabilites et un niveau de confiance, la carte historique des regimes sur le prix, la matrice de transition entre etats, les drivers de features, les statistiques par regime et un journal d'evenements. Une bande Multi-TF agrege le verdict sur 4 timeframes simultanement.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A utiliser en seance pour savoir dans quel type de marche tu te trouves avant d'entrer en position : aligner ta strategie (suivi de tendance vs mean-reversion) sur le regime detecte, et anticiper les retournements quand le consensus Multi-TF bascule (BULL/BEAR FORMING).
Necessite le serveur le serveur de données Databento en marche (port 5055) et une source de donnees live : Databento (futures CME, abonnement requis), MT5 Bridge (CFD), ou une source crypto (Binance, Coinbase, Hyperliquid). La librairie Python hmmlearn doit etre installee, sinon aucun fit n'est possible.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Source | Choisit le fournisseur de donnees : Databento (futures CME), MT5 Bridge (CFD), Crypto (Binance), Coinbase, ou Hyperliquid Perp. Change aussi la liste des symbols disponibles. |
| Symbol | Selectionne l'instrument a analyser. La liste depend de la source choisie. |
| TF | Timeframe des barres pour le modele principal : 1m (60s), 5m (300s, defaut), 15m (900s), 30m (1800s) ou H1 (3600s). |
| States | Nombre d'etats caches que le HMM doit apprendre : 2, 3 (defaut), 4 ou 5. Plus d'etats = decoupage plus fin mais besoin de plus de barres pour fitter. |
| Window | Nombre de barres d'historique chargees et utilisees pour le fit (defaut 500, min 100, pas de 50). |
| LANCER / ARRETER | Demarre ou stoppe le moteur : seed multi-TF depuis l'historique, connexion WebSocket live, polling 0.5 Hz et boucle d'animation. Au stop, ferme la WS et masque les panneaux. |
| Refit | Force un re-entrainement immediat du modele sur la fenetre courante (sinon refit automatique tous les 100 nouvelles barres). Visible seulement quand le moteur tourne. |
| Reset | Reinitialise completement le moteur pour ce symbol/TF (vide barres, modele, historique) puis re-seed. Visible seulement quand le moteur tourne. |
| reset (matrice de transition) | Remet a zero la matrice de transition et son journal pour repartir d'un comptage propre des transitions. |
| clear (Live Metrics Log) | Vide le journal d'evenements affiche (transitions, refits, confiance, milestones, spikes). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| bars / fit / status (topbar) | bars = nombre de barres ingerees ; fit = compteur de re-entrainements ; pastille + libelle de statut : vert=live, jaune=connexion/fitting, gris=off, rouge=erreur. |
| Multi-TF · verdict | Verdict consolide sur 4 TFs (1m/5m/15m/H1) : BULL ALIGNED, BEAR ALIGNED, RANGING ALIGNED, BULL FORMING, BEAR FORMING, CONFLICT ou UNFITTED. ALIGNED = forte coherence (alignment >= 75%), FORMING = retournement en cours sur les TFs courts. |
| Multi-TF · consensus | Score de consensus directionnel pondere par sqrt(TF), de -1 (baissier) a +1 (haussier). La barre se remplit a partir du centre vers la droite (vert) ou la gauche (rouge). |
| Multi-TF · alignment | Pourcentage de timeframes partageant le meme signe de direction. Plus c'est haut, plus les TFs sont d'accord. |
| Multi-TF · conf avg | Confiance moyenne du modele sur les 4 timeframes (en %). |
| Multi-TF · cartes par TF | Une carte par timeframe : label du regime courant, couleur du regime et confiance en %. |
| Live Tick · Price | Dernier prix tradé (ou mid bid/ask si pas de trade recent), issu du flux WebSocket live. |
| Live Tick · Spread | Ecart bid/ask courant calcule depuis le carnet d'ordres live. |
| Live Tick · Tape t/s | Vitesse du tape : nombre de trades par seconde sur une fenetre glissante de 5 secondes. |
| Live Tick · Vol/sec | Volume echange par seconde sur les 5 dernieres secondes. |
| Live Tick · Cum Δ | Delta cumule global (volume acheteur - volume vendeur) depuis le debut de la session live. |
| Live Tick · B/S % | Ratio volume acheteur sur volume total (buy/sell) sur la fenetre 5s. |
| Live Tick · In state | Nombre de barres consecutives passees dans le regime courant. |
| Live Tick · Confidence | Confiance du modele sur l'etat courant (1 - entropie normalisee). |
| Live State · icone + label | Regime courant affiche avec son icone et sa couleur (flecha haut/bas, etc.) ; — OFF — ou — FITTING — tant que le modele n'est pas fitté. |
| Live State · in state bars | Duree (en barres) passee dans le regime actuel. |
| Live State · Probabilities | Barres de probabilite lissee (smoothed) pour chaque etat : montre a quel point le modele penche vers chaque regime. |
| Live State · Confidence | Indicateur de confiance global avec barre degradee rouge-orange-vert. Au-dessus de 80% = regime tres sur, en-dessous de 40% = regime incertain. |
| Regime Map (canvas) | Courbe de prix des 500 dernieres barres avec fonds colorises par regime decode, plus markers de trades live. Permet de lire visuellement l'enchainement des regimes. |
| Transition Matrix (canvas + n transitions) | Heatmap des probabilites de passer d'un regime a un autre, avec le total de transitions comptees. Une diagonale forte = regimes persistants. |
| Feature Drivers (radar canvas) | Compare les valeurs courantes des features aux centres (centroides) de l'etat decode, pour voir ce qui pilote le regime actuel. |
| Live Metrics Log | Journal des evenements detectes : TR (transition de regime), FIT (refit du modele), ↑C/↓C (franchissement haute/basse confiance), ★ (milestone 25/50/100/200/500 barres dans l'etat), Δ (feature spike vs centre du regime). |
| Statistics (cartes par regime) | Par regime : % du temps passé, n_periods (nombre de sequences), avg dur (duree moyenne en barres), max dur (duree max), total bars. Sert a juger la stabilite de chaque regime. |
Comment faire
- Garde 3 etats par defaut : c'est le meilleur compromis lisibilite/robustesse ; passe a 4-5 etats seulement avec une Window large (le fit exige au moins 50 features valides).
- Le verdict Multi-TF BULL FORMING ou BEAR FORMING signale un retournement naissant sur les TFs courts avant les TFs longs : utile pour anticiper.
- Une confiance qui chute sous 40% (badge ↓C) indique un regime ambigu : prudence sur les entrees pendant ces phases.
- Une diagonale forte dans la Transition Matrix = regimes persistants donc plus exploitables ; une matrice diffuse = marche instable.
- Section 100% live : sans le serveur de données Databento (port 5055) et sans source connectee, rien ne s'affiche et le statut reste en erreur.
- Si la librairie hmmlearn n'est pas installee, aucun fit ne se produit (HMM_AVAILABLE=False) et l'etat reste — FITTING — indefiniment.
- Le modele a besoin d'un warmup : les 20 premieres barres ne produisent pas de features, et il faut au moins 50 features accumulees avant le premier fit.
- Le refit automatique n'a lieu que tous les 100 nouvelles barres : sur un TF eleve (H1) ca peut etre lent ; utilise Refit pour forcer.
- La source MT5 ne fournit pas de flux WebSocket chart-style : le suivi live tick (price/spread/tape) est saute, seul le decode par barre fonctionne.
- Changer Source, TF, States ou Window pendant que le moteur tourne declenche un re-seed complet (et une reconnexion live si le symbol change).
Stratégies (bibliothèque)
Cette page est la bibliothèque des stratégies sauvegardées. Une stratégie est un snapshot complet d'une configuration PROTOS (les réglages d'un backtest, d'un FAO ou d'un import) accompagné de ses statistiques de performance. Chaque stratégie s'affiche sous forme de carte avec ses chiffres clés (PnL, PF, Sharpe, Trades, Win Rate, MaxDD). Depuis ici vous pouvez la brancher (Plug Live) sur le Chart Live, l'exporter en JSON, la renommer, la supprimer, ou en importer de nouvelles depuis des fichiers.
Utilisez-la dès qu'un backtest ou un FAO vous donne une config intéressante : sauvez-la pour la réutiliser plus tard sans tout reconfigurer. C'est le point de passage entre la phase de recherche (backtest/optimisation) et l'exécution sur le Chart Live.
Aucune licence ni source de données spécifique pour gérer la bibliothèque. Pour créer une stratégie, il faut au préalable avoir une config côté serveur (un backtest lancé, un rank FAO, ou un fichier JSON à importer). Le bouton Plug Live ouvre le Chart Live, qui lui peut nécessiter un flux temps réel selon votre usage.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Importer JSON | Ouvre le sélecteur de fichiers pour importer un ou plusieurs JSON. Accepte un record natif de stratégie OU une config brute de type config_rankN_*.json (le serveur détecte la forme et l'enrobe avec des valeurs par défaut). Plusieurs fichiers à la fois sont acceptés. |
| ↻ Refresh | Recharge la liste des stratégies depuis le serveur (appelle stratRefreshList → GET /api/strategies). |
| Nom de la stratégie (strat-save-name) | Champ texte pour nommer la config courante du serveur avant de la sauver (ex: ES_M5_HFT_v1). Obligatoire. |
| Note (optionnel) (strat-save-note) | Champ texte libre pour annoter la stratégie (ex: contexte, raison du save). Facultatif. |
| Sauver | Sauvegarde la config actuelle du serveur sous le nom saisi (POST /api/strategies sans champ config → snapshot du _state[cfg] serveur + dernières métriques du backtest comme stats). |
| Plug Live (par carte) | Mémorise l'id de la stratégie dans le sessionStorage puis ouvre le Chart Live, qui auto-branche la config dans le moteur live au démarrage. Tente aussi de poser une baseline de drift à partir des stats du backtest sauvegardé. |
| ⬇ Export (par carte) | Télécharge le record complet de la stratégie en fichier JSON (GET /api/strategies/<id>/export, déclenche un download natif du navigateur). |
| Renommer (par carte) | Demande un nouveau nom via une boîte de dialogue puis ré-enregistre la stratégie en place avec le même id (POST /api/strategies avec id existant). |
| × Supprimer (par carte) | Demande confirmation puis supprime définitivement la stratégie (DELETE /api/strategies/<id>). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Nom | Titre de la stratégie tel que saisi à la sauvegarde. |
| Symbole · TF · mode | Sous-titre de la carte : symbole source, timeframe source et, si présent dans la config, le core_mode (mode du moteur). Affiche ? si l'info manque. |
| PnL | Profit net de la stratégie au backtest, en dollars. Vert si positif, rouge si négatif. Repli sur total_pnl si pnl absent du save. |
| PF (Profit Factor) | Gains bruts / pertes brutes. Au-dessus de 1 = profitable ; plus c'est élevé, mieux c'est (>1.5 souvent considéré solide). |
| Sharpe | Ratio rendement/risque. Plus il est haut, meilleur est le rendement ajusté du risque. |
| Trades | Nombre de trades du backtest. Un échantillon plus grand rend les autres stats plus fiables. |
| WR (Win Rate) | Pourcentage de trades gagnants. L'affichage auto-détecte si la valeur stockée est un ratio (0.37) ou déjà un pourcentage (37). |
| MaxDD | Drawdown maximal (perte maximale depuis un pic), affiché en pourcentage. Plus c'est bas, mieux c'est. |
| Note | Annotation libre saisie à la sauvegarde, affichée sous les chiffres si présente. |
| Fichier JSON exporté | Record complet téléchargé : id, name, source_symbol, source_tf, note, created_at, updated_at, stats, pnl_snapshot (contexte P&L figé au moment du save) et config intégrale. |
Comment faire
- Donnez des noms parlants (ex: ES_M5_HFT_v1) : le symbole et le TF apparaissent déjà en sous-titre, servez-vous du nom pour la version ou l'intention.
- Le record exporté contient un pnl_snapshot : il fige le contexte P&L (specs futures) au moment du save, ce qui permet de reproduire le backtest exact même si les tables de specs changent plus tard.
- Vous pouvez glisser plusieurs config_rankN_*.json d'un coup via Importer JSON : chaque fichier devient une stratégie distincte.
- Le bouton Plug Live tente aussi de poser une baseline de drift à partir des stats sauvegardées, ce qui prépare le suivi de dérive côté Chart Live.
- Au branchement (live_payload), le serveur retire les clés non-live de la config (n_bars, dates, slippage, commissions, symbole/TF) : le Chart Live garde son propre symbole et son propre timeframe, la stratégie ne les impose pas.
- Renommer ré-enregistre en place (même id) : ce n'est pas une copie, l'ancien nom est écrasé.
- La suppression est définitive et sans corbeille (le fichier JSON est retiré du disque).
- Sauver la config actuelle prend un snapshot de l'état serveur (_state[cfg]) au moment du clic et y attache les dernières métriques de backtest : si aucun backtest récent n'a tourné, les stats peuvent être vides ou périmées.
- Un import est rejeté si le JSON n'est ni un record natif {name, config, …} ni une config brute contenant au moins core_mode ou symbol.
- Si la config porte un pnl_mode_override incompatible avec le symbole courant, le Chart Live peut signaler un mismatch de mode (futures vs cfd) au branchement.
Orchestrateur
PROTOS Trading LiveL'Orchestrateur multi-strategies prend des strategies que vous avez deja sauvegardees (depuis Backtest, FAO ou un import JSON) et les execute en continu, sans intervention (headless), sur des donnees temps reel. Chaque strategie deployee tourne dans une session par couple Actif|Timeframe, genere des signaux, et un arbitre de portefeuille (PortfolioArbiter) decide d'accepter ou rejeter chaque signal selon un plafond de positions simultanees. Les ordres partent ensuite vers un routeur d'execution (ExecutionRouter) en mode Paper (simule) ou MT5 (CFD reel). Le panneau interroge /api/orchestrator/status sur le serveur databento (port 5055) toutes les 2,5 s et affiche equity, P&L, positions, sessions, rejets et signaux.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A utiliser quand vos strategies sont validees et que vous voulez les laisser tourner ensemble en continu, en simule ou en reel, plutot que de lancer un backtest ponctuel. C'est l'etape de mise en production / paper-trading d'un portefeuille de strategies.
Le serveur databento (port 5055) doit etre demarre et joignable, et l'orchestrateur lance avec lui. Au moins une strategie doit etre sauvegardee (page Strategies / via Backtest / FAO / import JSON) pour pouvoir etre deployee. Le timeframe doit faire partie des valeurs supportees (M1, M5, M15, M30, H1, H4, D1). Le mode MT5 suppose une connexion courtier MT5 reelle pour router les ordres CFD.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Mode d'execution (orch-exec-mode) | Bascule le routeur d'execution entre Paper (simule) et MT5 (CFD reel). POST /api/orchestrator/exec_mode ; toute autre valeur est rejetee. |
| Cap d'exposition (orch-cap, min 1, max 50) | Plafond du nombre de positions simultanees autorisees par l'arbitre de portefeuille. Le bouton Appliquer envoie POST /api/orchestrator/exposure_cap. Au-dela du cap, les nouveaux signaux sont rejetes. |
| Appliquer | Valide la nouvelle valeur du cap d'exposition saisie a cote. |
| Tout fermer | Flatten d'urgence : ferme TOUTES les positions ouvertes de l'orchestrateur (POST /api/orchestrator/close_all, reason=manual). Demande une confirmation. |
| Strategie (orch-dep-strat) | Liste deroulante des strategies sauvegardees disponibles au deploiement (chargee via /api/strategies). Selectionner une strategie pre-remplit automatiquement Actif et Timeframe depuis sa source. |
| Actif (orch-dep-asset, ex: ES) | Symbole sur lequel deployer la strategie. Pre-rempli avec le symbole source de la strategie ; modifiable. |
| Timeframe (orch-dep-tf, ex: M5) | Unite de temps de la session. Pre-rempli avec le TF source. Doit etre M1, M5, M15, M30, H1, H4 ou D1, sinon le deploiement echoue. |
| Poids (orch-dep-weight, defaut 1, pas 0.1, min 0.1) | Poids de la strategie dans le sizing de portefeuille : la taille de position vaut equity x risk_pct% x poids / distance au SL. |
| Deployer | Ajoute la strategie selectionnee au registre de l'orchestrateur et (re)construit les sessions (POST /api/orchestrator/deploy). Le statut apparait sous le formulaire (orch-dep-msg). |
| Activee (case a cocher, par ligne de deploiement) | Active ou desactive une strategie deployee sans la retirer (POST /api/orchestrator/enable). Desactivee, elle ne genere plus de signaux mais reste dans la liste. |
| x (retirer, par ligne de deploiement) | Retire definitivement la strategie de l'orchestrateur (POST /api/orchestrator/undeploy). Demande une confirmation, puis reconstruit les sessions. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Badge d'etat (orch-status-badge) | ACTIF si l'orchestrateur tourne, ARRETE sinon. Affiche le serveur de données Databento injoignable si le serveur databento ne repond pas. |
| KPI Equity | Capital courant = capital initial + P&L realise + P&L latent (champ execution.equity), arrondi a l'unite. |
| KPI P&L realise | Somme des gains/pertes des trades fermes (execution.realized_pnl). Vert si positif, rouge si negatif. |
| KPI P&L latent | Gain/perte non realise des positions encore ouvertes (execution.unrealized_pnl). Vert/rouge selon le signe. |
| KPI Positions | Nombre de positions ouvertes sur le cap d'exposition, format n_open / cap (execution.n_open / arbiter.exposure_cap). |
| KPI Sessions | Nombre de sessions headless actives et nombre de strategies deployees, format n_sessions . n_deployments strat. |
| Tableau Deploiements | Une ligne par strategie deployee. Colonnes : Strategie (nom), Actif . TF, Poids, Activee (toggle), Session (etat de la session du groupe : nombre de barres en buffer si en cours, arretee sinon), et bouton de retrait. |
| Tableau Positions ouvertes | Une ligne par position vivante. Colonnes : Strategie, Sens (BUY/SELL), Actif, Qte, Entree, SL / TP, P&L latent (upnl, colore selon le signe). |
| Sessions headless (orch-sessions) | Liste des sessions par cle Actif|TF : nombre de strategies du groupe, nombre de barres en buffer, nombre de signaux emis (n_signals), et la derniere erreur eventuelle (last_error) en rouge. |
| Arbitrage - rejets recents (orch-rejections) | Jusqu'a 12 signaux refuses par l'arbitre : strategie, actif, sens, et la raison du rejet (reason). Permet de comprendre pourquoi un signal n'a pas ete execute (ex: cap d'exposition atteint). |
| Signaux recents (orch-signals) | Jusqu'a 25 derniers signaux generes : heure, strategie, sens (BUY/SELL colore), groupe Actif|TF et prix d'entree. Vue brute du flux de signaux, avant arbitrage. |
Comment faire
- Selectionner une strategie pre-remplit automatiquement Actif et Timeframe depuis sa source : pas besoin de les ressaisir si vous gardez le meme couple.
- Le poids agit directement sur la taille de position (sizing risk_pct x poids) : utilisez-le pour surponderer/sousponderer une strategie sans toucher son risk_pct.
- Commencez en mode Paper pour valider le comportement du portefeuille avant de basculer en MT5.
- La case Activee permet de mettre une strategie en pause sans perdre son deploiement, contrairement au bouton x qui la retire definitivement.
- Le panneau se connecte à le serveur de données Databento : si le serveur databento n'est pas lance ou injoignable, le badge affiche le serveur de données Databento injoignable et rien ne se met a jour.
- Seuls les timeframes M1, M5, M15, M30, H1, H4 et D1 sont acceptes ; tout autre TF fait echouer le deploiement.
- Au-dela du cap d'exposition, les nouveaux signaux sont rejetes (visibles dans Rejets recents) : ce n'est pas un bug mais l'arbitre de portefeuille qui protege contre la surexposition.
- Le mode MT5 route des ordres CFD reels via une connexion courtier MT5 : a n'activer qu'en connaissance de cause. Tout fermer ferme reellement les positions.
- Deployer / retirer / activer reconstruit toutes les sessions (stop all puis start all), ce qui peut brievement interrompre les sessions en cours.
- Le sizing retombe sur une taille fixe de repli si equity, risk_pct ou la distance au SL sont manquants ou nuls.
Signaux
PROTOS Trading LiveLa page Signaux est un centre de surveillance live des opportunités de trading. Tu y crées des scanners qui tournent un moteur de signaux (CoreMode) sur un couple symbole + timeframe via ta connexion MetaTrader 5, et qui te lèvent une alerte BUY/SELL à chaque bougie clôturée — sans gérer d'ordre, de stop ni de take-profit (alerte pure, comme un indicateur). La page regroupe aussi les signaux en attente de validation (issus d'un bot en mode alerte), tes positions ouvertes avec PnL live, les trades récemment fermés, et l'historique des détections des scanners.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
Utilise-la quand tu veux surveiller un ou plusieurs marchés en direct et être notifié dès qu'un setup déclenche, sans automatiser l'exécution. C'est l'étape finale du flux : une fois qu'un edge a été trouvé et validé (THANOS/FAO), tu le mets en veille active ici pour décider toi-même quand entrer.
MetaTrader 5 installé et son terminal ouvert/connecté (les scanners ne démarrent pas sans MT5). Pour le bandeau de régime, il faut avoir lancé le Tracker dans Analyse Quant. Les signaux Pending nécessitent un bot lancé en mode alerte.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| + Ajouter un scanner | Ouvre la fenêtre de création d'un scanner de signaux |
| Symbole (champ texte + datalist) | Le marché à surveiller (ex : XAUUSD, BTCUSD, EURUSD, MGC). La liste se remplit avec les symboles MT5 disponibles ; pré-rempli avec le symbole courant |
| Timeframe (select) | Unité de temps des bougies surveillées : M1, M5, M15 (défaut), M30, H1, H4, D1 |
| CoreMode (select) | Le moteur de signaux à exécuter (Structure, VWAP Mean Reversion défaut, Trend Pullback EMA, Squeeze Breakout, ALL_MODES combiné, etc.). Peuplé depuis l'enum CoreMode du backend |
| Tout (bouton, panneau ALL_MODES) | Coche ou décoche tous les sous-moteurs d'un coup |
| Sous-moteurs ALL_MODES (cases à cocher) | Visible seulement si CoreMode = ALL_MODES. Choisit quelles sous-stratégies participent au vote (STRUCTURE, IMPULSE_CONTINUATION, VWAP_MEAN_REVERSION, BBKC_MEAN_REVERSION, TREND_PULLBACK_EMA, SESSION_RANGE_BREAKOUT, SQUEEZE_BREAKOUT, RSI2_STOCH_SCALP) |
| Min. moteurs d'accord (slider) | ALL_MODES uniquement : nombre minimum de sous-moteurs qui doivent voter dans le même sens pour valider un signal. 1 = sensible (plus de signaux) ; 3+ = consensus plus fort (moins de signaux, plus fiables). Le max suit le nombre de moteurs cochés |
| Annuler | Ferme la fenêtre sans créer le scanner |
| ▶ Démarrer le scanner | Lance le scanner avec la config choisie (appel /api/scanner/add) ; anti-doublon sur la même config |
| ■ Stop (par scanner) | Arrête le scanner correspondant dans la liste |
| Aller au Tracker → | Bandeau régime : ouvre la page Analyse Quant pour démarrer la surveillance de régime |
| Filtre force : TOUT / MOYEN+ / FORT+ / TRÈS FORT | Historique Scanner : filtre les détections par score de force (TOUT ; MOYEN+ ≥ 40 ; FORT+ ≥ 60 ; TRÈS FORT ≥ 75) |
| Effacer (historique) | Vide tout l'historique des signaux détectés par les scanners (appel /api/scanner/history/clear) |
| Exec (carte Pending) | Valide/exécute le signal en attente côté bot |
| × Skip / Dismiss (carte Pending) | Ignore et écarte le signal en attente |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Scanners de signaux (compteur + liste) | Liste des scanners actifs : symbole, timeframe, CoreMode (avec, pour ALL_MODES, nombre de moteurs et min d'accord) et statut Actif/Inactif |
| Bandeau régime global | État du régime issu du Tracker Quant : Régime aligné (vert), Vol en mouvement / Alpha Decay (jaune, prudence), Régime changé / Vol extrême (rouge, alerte). Affiche le régime, la vol et l'heure du dernier check |
| Pending (carte signal) | Signal en attente de validation : symbole, timeframe, n° de bot, direction BUY/SELL, Entry, Liquidation (estimée), Stop Loss et Take Profit (avec %), Lots, R:R, ATR |
| Confiance (barre %, carte Pending) | Indice 0-100 calculé côté UI : base 80, pénalisé par l'état du régime, bonifié si R:R ≥ 2, ajusté selon la distance SL/ATR. Plus haut = plus favorable |
| Badge régime (carte Pending) | Reprend l'état du Tracker (Régime aligné / Vol en mouvement / Régime changé…) pour contextualiser le signal |
| Timer (carte Pending) | Temps restant avant expiration du signal ; passe en rouge sous 15 s |
| Carte scanner (alerte pure) | Variante alerte : Prix signal et ATR (info) uniquement, badge CoreMode, n° de scanner ; pas de SL/TP/Lots ni d'ordre |
| Déclenché par N moteurs (chips, ALL_MODES) | Liste des sous-stratégies qui ont voté pour le signal ; sinon mention fallback si non identifiées |
| Force du signal (score /100 + grade) | Score 0-100 et grade : FAIBLE (<40), MOYEN (≥40), FORT (≥60), TRÈS FORT (≥75). Repère les marques à 40/60/75 sur la barre |
| Détail du scoring (composants) | Décomposition du score : Consensus (max 25, ALL_MODES), Tendance/alignement EMA200 (max 12), RSI (max 12), Volatilité/ratio ATR (max 6), Volume relatif (max 10), chacun avec valeur et explication |
| Positions ouvertes (compteur + PnL + cartes) | Positions actives MT5 : direction LONG/SHORT, PnL en $ et pips, Entry/Current/SL/TP, barre de progression vers le TP. Le PnL total agrégé est affiché en tête de section |
| Récents (10 derniers fermés) | Trades clôturés de la session : symbole, direction, PnL gagnant/perdant, raison de sortie, heure |
| Historique Scanner (50 derniers) | Détections passées des scanners : date/heure, symbole, timeframe, direction, prix d'entrée, badge de force (score), CoreMode ; survol = détail des composants du score |
Comment faire
ALL_MODES, coche les sous-moteurs voulus et règle Min. moteurs d'accord.- Lance le Tracker dans Analyse Quant : le bandeau de régime te dit si le contexte est aligné (vert) ou à éviter (rouge) avant d'agir sur un signal.
- Pour des alertes plus fiables avec ALL_MODES, monte le Min. moteurs d'accord à 3+ pour exiger un consensus.
- Utilise le filtre FORT+ ou TRÈS FORT de l'historique pour ne garder que les détections au score élevé.
- Survole le badge de force (carte ou historique) pour voir le détail du scoring (consensus, tendance, RSI, vol, volume).
- Sans MT5 disponible et connecté, le scanner s'arrête immédiatement (aucune alerte).
- Les scanners sont des alertes pures : pas de SL/TP/lots, aucun ordre n'est envoyé — l'exécution reste manuelle.
- Une seule alerte est émise par bougie clôturée (déduplication) ; la bougie en cours n'est pas prise en compte (signal confirmé).
- Le bandeau de régime reste Tracker inactif tant que tu n'as pas démarré le Tracker dans Analyse Quant.
- La Liquidation des cartes Pending est une estimation (basée sur la marge libre et les infos symbole), pas la valeur exacte du broker.
- La section Pending ne se remplit que si un bot tourne en mode alerte ; elle est distincte des scanners.
Signal Engine
PROTOS Trading LiveSignal Engine est un tableau de bord live qui evalue en parallele les 34 modes (core_mode) du moteur de signaux PROTOS et affiche, condition par condition, l'etat de chacun a chaque barre. Il se connecte par WebSocket (/ws/signals et /ws sur le port 5055) a un flux de marche reel : CME Futures via Databento, ou CFD via le pont MT5. Pour chaque mode tu vois un score 0-100, le biais (BUY/SELL), s'il est arme (score ≥ 80), un timeline des scores, une pile d'indicateurs sous-jacents, une matrice des conditions et un journal d'evenements (arm / fire / disarm / changement de biais).
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A utiliser quand tu veux comprendre en direct le comportement des modes de signaux sur un symbole : voir lesquels s'arment, lesquels tirent, dans quel sens penche le marche, et quelles conditions bloquent un setup. C'est un outil d'observation et de diagnostic, pas un panneau d'execution d'ordres.
Un flux de marche temps reel actif sur le backend : cle/feed Databento pour les futures CME, ou pont MT5 lance pour les CFD. Le backend (le serveur de données Databento port 5055) doit tourner avec le module de telemetrie. Sans feed pour le symbole choisi, le panneau reste a 0 mode_eval (statut live . 0 data).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Selecteur de symbole (se2-symbol) | Choisit l'instrument suivi. Deux groupes : CME Futures (Databento) (ES, NQ, YM, RTY, MES, MNQ, MYM, M2K, CL, GC, SI, NG, HG, PL, PA, ZN, ZB, ZF, ZT, 6E, 6J, 6B, 6A, 6C, BTC, ETH) et CFD (MT5 bridge) (BTCUSD, ETHUSD, XAUUSD, XAGUSD, EURUSD, GBPUSD, USDJPY, AUDUSD, USDCAD, USDCHF, NZDUSD, EURJPY, GBPJPY, EURGBP, NAS100, SPX500, US30, GER40, UK100, FRA40, JPN225, HK50, AUS200, USOIL, UKOIL, NATGAS). Le groupe determine la source du flux WS. |
| Selecteur de timeframe (se2-tf) | Unite de temps des barres evaluees : M1 (60), M5 (300, par defaut), M15 (900), H1 (3600), H4 (14400). |
| Bouton ON/OFF (se2-toggle) | Ouvre ou coupe la session WebSocket. OFF par defaut pour ne pas surcharger le backend ; clic = active le flux live (le bouton devient ON). |
| Barre MODES — All | Coche les 34 modes d'un coup (souscrit tout au flux). |
| Barre MODES — None | Decoche tous les modes. |
| Chips de modes (se2-modes-chips) | Un bouton par core mode (id + nom court) ; clic = abonne/desabonne ce mode. La selection est persistee en localStorage (cle protos_se2_modes). |
| Boutons fenetre timeline (TICK, 2s, 5s, 10s, 30s, 1m, 3m, 5m) | Regle la largeur temporelle du graphe Mode Scores. TICK reagit a chaque mode_eval (~20 Hz) ; les autres montrent 2 s a 5 min de scores. 10s par defaut. |
| All (graphe scores) | Affiche les courbes de score de tous les modes souscrits. |
| Armed only (graphe scores) | N'affiche que les modes armes (score ≥ 80). |
| Reset (statistiques) | Remet a zero les stats de session : compteurs arms/fires, % du temps arme, journal d'evenements. |
| Filtre Arm | Affiche/masque les evenements d'armement dans le journal. |
| Filtre Fire | Affiche/masque les evenements de declenchement (signal tire) dans le journal. |
| Filtre Disarm | Affiche/masque les evenements de desarmement dans le journal. |
| Filtre Bias | Affiche/masque les changements de biais (BUY/SELL) dans le journal. |
| Filtre Score | Affiche/masque les franchissements de seuil de score (passage ≥ 70%) dans le journal. |
| Recherche (se2-flt-search) | Filtre le journal par nom de mode ou texte libre. |
| Bouton CSV (se2ExportCSV) | Exporte le journal d'evenements de la session en fichier CSV (ts, type, mode, message). |
| Bouton plein ecran par panneau (⛶) | Injecte sur chaque panneau (Mode Scores, Underlying indicators, Mode statistics, Conditions matrix) ; passe le panneau en plein ecran. Esc pour quitter. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| modes (compteur entete) | Nombre de modes vus dans le dernier message mode_eval. |
| armed (compteur entete) | Nombre de modes armes (score ≥ 80) = proches de declencher. |
| price (entete) | Dernier prix recu pour le symbole. |
| events (entete) | Total d'evenements enregistres dans le journal de la session. |
| fires (entete) | Total de signaux reellement tires (signal_new) sur la session. |
| Statut (se2-status) | Etat de la connexion WS : OFF, connecting, live, live . 0 data (connecte mais aucun mode_eval), deconnecte, erreur. |
| compteur modes coches (X / 34) | Nombre de modes souscrits sur les 34 disponibles. |
| Barometre BUY / SELL | Repartition du sentiment directionnel pondere : poids = (arme 1.0 sinon 0.5) x (score/100), additionne par cote. Plus la barre penche cote BUY, plus les modes armes/forts sont haussiers (et inversement pour SELL). |
| Mode Scores . timeline (graphe) | Courbe de score (0-100) de chaque mode dans le temps. Au-dessus de 80 le mode est arme. |
| Underlying indicators (pile) | Indicateurs calcules cote client a partir du prix : Price + EMA 20/50/200, VWAP dev (sigma), ATR(14), ATR %ile, RSI(2), RSI(14), BB %B, BB Width, MACD hist, Stoch K/D, Realized vol, Price Z-score. Ce sont des proxys de lisibilite, pas la logique exacte du moteur. |
| Mode statistics — colonne Mode | Tag court du mode (ex. HFT, VWAP, TREND). |
| Mode statistics — colonne Cat | Categorie du mode : scalp, trend, reversion ou breakout. |
| Mode statistics — colonne Score | Score courant 0-100 (% de conditions passantes, pondere uniforme). |
| Mode statistics — colonne Bias | Verdict directionnel global du mode : BUY, SELL ou neutre (—). |
| Mode statistics — colonne % armed | Part du temps de session ou le mode a ete arme (score ≥ 80). |
| Mode statistics — colonne Arms | Nombre de fois ou le mode est passe a l'etat arme. |
| Mode statistics — colonne Fires | Nombre de signaux reellement tires par ce mode. |
| Mode statistics — colonne Last fire | Temps ecoule depuis le dernier tir du mode (s / m / h), sinon —. |
| Conditions matrix . live snapshot | Heatmap instantanee des conditions par mode : etat de chaque condition (pass / close / fail / block / na) selon sa progression vers son seuil. |
| Journal d'evenements (se2-log-feed) | Flux horodate des evenements : ARMED (score + biais), FIRED (direction + prix d'entree), disarmed, changement de biais (X -> Y), franchissement de score (passage 70%). |
Comment faire
- Utilise Armed only sur le graphe pour ne garder que les modes proches de declencher (score ≥ 80) et reduire le bruit.
- Le mode TICK montre la reactivite maximale (~20 Hz) ; les fenetres plus larges (1m, 3m, 5m) servent a voir la tendance des scores.
- Le barometre pondere les modes armes 2x plus que les non-armes : il reflete ou penche reellement le consensus directionnel.
- Le bouton plein ecran (⛶) sur un panneau est pratique pour scruter la matrice de conditions ou le timeline en detail.
- Le panneau est OFF par defaut et n'ouvre rien tant que tu ne cliques pas ON, pour ne pas surcharger le backend.
- Sans feed actif pour le symbole (Databento non connecte ou pont MT5 arrete), tu restes a 0 mode_eval : statut live . 0 data apres 5 s.
- Les Underlying indicators sont des proxys recalcules cote client depuis le prix — pas la logique exacte du moteur PROTOS V8. De meme, les conditions de telemetrie sont representatives/pedagogiques, pas un fork 1:1 du moteur.
- Si aucun mode n'est coche, le WS souscrit un mode seed (id 1) juste pour valider le handshake, mais tu ne verras rien tant que tu n'en coches pas reellement.
- C'est un panneau d'observation : il n'envoie aucun ordre et ne declenche aucune execution.
- La telemetrie est throttle a ~150 ms cote backend (~7 Hz) ; le rendu 60 fps cote client est interpole.
Exec Quality
PROTOS Trading LiveL'Execution Quality Analyzer compare, pour chaque trade live cloture, le prix theorique du signal (signal_price) au prix de remplissage reel chez le broker (fill_price) pour en deduire le slippage en points et en dollars. Il agrege ensuite ces ecarts par session de marche, par direction (BUY/SELL) et par jour de semaine, puis calcule l'edge retention : la part de votre profit brut moyen qui survit a la friction d'execution. Les donnees sont collectees automatiquement par le bot live a chaque cloture de trade ; aucune saisie manuelle.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A consulter pendant et apres une periode de trading live pour verifier que votre broker / vos conditions d'execution ne detruisent pas l'edge valide en backtest. Utile pour reperer les sessions ou directions ou le slippage devient cher et adapter ses horaires d'execution.
Bot live connecte au broker (MetaTrader 5) et ayant cloture au moins un trade avec signal_price et fill_price renseignes. Sans trade live exploitable, le panneau affiche Pas encore de donnees. Les stats sont calculees sur les trades de la session courante en memoire (_session_closed_trades).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Actualiser (eqFetch) | Recharge l'analyse en appelant /api/live/execution_quality et redessine cartes, tableaux et stats. Le panneau s'actualise aussi automatiquement a l'ouverture de la page. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Trades analyses (n_with_slippage) | Nombre de trades clotures retenus pour l'analyse (ceux qui ont a la fois un signal_price > 0 et un fill_price > 0). |
| Slip. moyen (avg_slippage_pts) | Slippage moyen en points sur tous les trades. Affiche en rouge si > 0 (defavorable), en couleur accent sinon. Plus c'est proche de 0, mieux c'est. |
| Cout friction total (total_cost_usd) | Somme en dollars de tout le slippage subi sur la periode. Repere de cout cumule de l'execution. |
| Edge retention (edge_analysis.edge_retention) | Pourcentage du profit brut moyen qui reste apres deduction de la friction (net_ev / gross_ev x100). Vert si > 80% (edge bien preserve), jaune sinon. |
| Slippage par session — Session | Nom de la session de marche detectee a l'heure de cloture (London/NY, London, NY, Tokyo, Sydney, Unknown). |
| Slippage par session — Trades (n_trades) | Nombre de trades clotures dans cette session. |
| Slippage par session — Slip. moy. (pts) (avg_slippage_pts) | Slippage moyen en points pour la session. Rouge si positif (defavorable). |
| Slippage par session — Cout total ($) (total_cost_usd) | Slippage cumule en dollars pour la session. Affiche avec signe negatif et en rouge quand c'est un cout. |
| Slippage par session — P&L moy. ($) (avg_profit_usd) | Profit moyen par trade dans cette session. Vert si positif, rouge si negatif. Permet de croiser cout d'execution et rentabilite. |
| Slippage par session — % slip positif (pct_positive_slip) | Part des trades de la session ayant subi un slippage defavorable (> 0). |
| Par direction — BUY / SELL | Pour chaque direction : nombre de trades (n) et slippage moyen en points (avg_slip_pts). Rouge si slippage positif/defavorable. Montre si les achats ou les ventes coutent plus cher a l'execution. |
| Par jour de semaine (by_weekday) | Pour chaque jour (Mon a Fri puis autres) : nombre de trades (n) et slippage moyen en points (avg_slip_pts). Rouge si defavorable. |
| Derniers trades — Date/Heure (closed_date / closed_at) | Horodatage de cloture du trade. |
| Derniers trades — Type | Sens du trade : BUY (couleur accent) ou SELL (rouge). |
| Derniers trades — Signal (signal_price) | Prix theorique du signal au moment de l'entree. |
| Derniers trades — Fill (fill_price) | Prix de remplissage reel obtenu chez le broker. |
| Derniers trades — Slip. (pts) (slippage_pts) | Ecart fill - signal en points. Rouge si > 0 (defavorable), accent si < 0 (favorable), gris si 0. |
| Derniers trades — Slip. ($) (slippage_usd) | Cout du slippage en dollars pour ce trade. Affiche -$ quand c'est un cout, +$ quand c'est un gain d'execution. |
| Derniers trades — P&L ($) (profit) | Profit/perte du trade en dollars. Vert si positif, rouge si negatif. |
| Derniers trades — Session | Session de marche detectee a la cloture du trade. |
Comment faire
- Visez une edge retention > 80% (carte verte) : en dessous, la friction d'execution mange une part importante de votre profit theorique.
- Croisez les colonnes Slip. moy. et P&L moy. par session : une session avec gros slippage mais P&L positif reste exploitable, l'inverse est un signal d'alerte.
- Un slippage moyen negatif (couleur accent) signifie que vos fills sont en moyenne meilleurs que le signal : execution favorable.
- Les stats portent uniquement sur les trades de la SESSION live courante gardes en memoire (_session_closed_trades) : un redemarrage / reset du serveur efface ces donnees.
- Seuls les trades avec signal_price > 0 ET fill_price > 0 sont comptes ; un trade dont le signal n'a pas pu etre apparie au fill est ignore.
- Aucun backtest n'alimente cet outil : sans bot live ayant deja cloture des trades, le panneau reste vide (Pas encore de donnees).
- Le tableau Derniers trades est plafonne aux 50 trades les plus recents.
Risk Calc
Risk Calc regroupe deux petits outils de calcul de risque qui tournent entierement dans le navigateur, sans backtest ni connexion. Le Simulateur de pertes consecutives montre ce que devient votre capital apres une serie de trades perdants d'affilee, et a quel trade vous atteignez votre seuil de ruine. Le Position Sizing Wizard calcule la taille de position theorique (Kelly), le risque suggere par trade, l'esperance de gain et le risque de ruine a partir de vos statistiques de strategie.
A utiliser avant de passer en reel ou de regler votre risque par trade, pour choisir un pourcentage de risque sain et verifier qu'une mauvaise serie ne videra pas votre compte. Ideal en complement de l'audit, une fois que vous connaissez le Win Rate et le ratio gain/perte de votre strategie.
Aucune donnee ni backtest requis. Les calculs sont 100% locaux dans le navigateur ; vous saisissez vous-meme les chiffres (capital, Win Rate, gain/perte moyens). Pour des resultats realistes, reprenez les statistiques d'un backtest reel.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Capital ($) (cls-cap) | Capital de depart du simulateur de pertes consecutives. Defaut 10000. |
| Risk % / trade (cls-risk) | Pourcentage du capital risque a chaque trade perdant. Defaut 1 (pas de 0.1). |
| Pertes consecutives max (cls-n) | Nombre de pertes consecutives a simuler. Defaut 20. Determine la longueur de la courbe. |
| Seuil ruine (%) (cls-ruin) | Perte cumulee (en % du capital) consideree comme une ruine. Defaut 50. Trace la ligne rouge et calcule le trade de ruine. |
| Bouton Calculer (Simulateur) | Lance runConsecLoss() : calcule la decroissance du capital et trace la courbe. |
| Capital ($) (psw-cap) | Capital de depart du Position Sizing Wizard. Defaut 10000. |
| Win Rate (%) (psw-wr) | Taux de trades gagnants de la strategie. Defaut 55. Sert au calcul Kelly, EV et risque de ruine. |
| Avg Win R (psw-aw) | Gain moyen exprime en multiples de R (risque). Defaut 1.5 (pas de 0.1). |
| Avg Loss R (psw-al) | Perte moyenne exprimee en multiples de R. Defaut 1.0 (pas de 0.1). Le ratio Avg Win R / Avg Loss R donne le risk-reward. |
| DD max tolere (%) (psw-dd) | Drawdown maximum que vous acceptez. Defaut 15. Plafonne le risque suggere (DD/3) et sert au risque de ruine. |
| Capital cible ($) (psw-tgt) | Objectif de capital a atteindre. Defaut 20000. Sert a estimer le nombre de trades necessaires. |
| Bouton Calculer (Wizard) | Lance runSizingWizard() : calcule Kelly, risque suggere, EV, trades vers objectif et risque de ruine. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Capital restant | Capital en dollars apres le nombre de pertes consecutives simulees. Plus il est bas, plus votre risque par trade est dangereux. |
| Perte totale | Pourcentage de capital perdu apres la serie complete de pertes. En rouge car toujours negatif. |
| Ruine a trade | Numero du trade ou le seuil de ruine est franchi (affiche en orange) ou Jamais si le seuil n'est pas atteint dans la serie simulee. Lecture cle : un numero bas = risque par trade trop eleve. |
| Graphique pertes consecutives (c-cls) | Courbe rouge de decroissance du capital trade par trade, avec une zone et une ligne pointillee rouge marquant le seuil de ruine. |
| Kelly Full % | Fraction de Kelly complete (en %), en jaune. Theoriquement optimale mais agressive et risquee : a ne pas appliquer telle quelle. |
| Kelly Half % (recommande) | Moitie du Kelly, en vert. Compromis croissance/securite recommande comme reference de risque. |
| Risk suggere | Pourcentage de risque par trade reellement conseille : le plus petit entre Kelly Half et DD/3, avec un plancher de 0.1%. C'est la valeur a retenir en pratique. |
| EV / trade (R) | Esperance de gain par trade en R = WinRate*AvgWin - (1-WinRate)*AvgLoss. Vert si positive, rouge si negative. Si negative, le setup perd a long terme. |
| Trades vers objectif | Nombre estime de trades pour passer du capital de depart au capital cible au risque suggere. Affiche l'infini si l'EV est nulle ou negative. |
| Risque de ruine | Probabilite estimee (formule simplifiee) d'atteindre le DD max tolere. Vert si <=5%, jaune si <=20%, rouge au-dela. Vise le plus bas possible. |
| Verdict du Wizard | Phrase de synthese : EV negative - ne pas trader ce setup, ou un avertissement si Kelly Half depasse DD/2 (reduire au risque suggere), ou Setup viable avec le risque conseille, l'objectif et le nombre de trades estime. |
Comment faire
- Reprenez les valeurs Win Rate, Avg Win R et Avg Loss R d'un backtest reel plutot que des estimations : le Wizard ne vaut que ce que valent ses entrees.
- Le Risk suggere est deja plafonne a DD max / 3 : c'est un garde-fou volontairement prudent, suivez-le plutot que le Kelly Full.
- Utilisez le simulateur pour stress-tester : une bonne strategie doit survivre a 15-20 pertes d'affilee sans s'approcher du seuil de ruine.
- Le simulateur de pertes consecutives utilise un risque compose constant (capital * (1 - risk%)) ; il ne modelise pas les gains, c'est un scenario catastrophe pur, pas une projection de performance.
- Le risque de ruine est calcule par une formule simplifiee et vaut 99% si le Win Rate est <= 50% (p <= q) : a prendre comme indicateur d'alerte, pas comme valeur exacte.
- Tout est calcule cote navigateur sans verification : des entrees irrealistes donnent des resultats trompeurs (Kelly negatif, trades vers objectif infini).
- Avg Loss R a 0 provoquerait une division par zero ; gardez une valeur strictement positive (defaut 1.0).
- Aucune sauvegarde : les resultats disparaissent au changement d'onglet ou au rechargement de la page.
News React
News React est un interpreteur rapide post-news. Tu lui donnes un symbole (ex EURUSD), un type d'evenement macro (FOMC, CPI, NFP, ECB...) et le sens de la surprise (hawkish/dovish, higher/lower, inline), et il renvoie un verdict directionnel (LONG / SHORT / NEUTRE) avec une probabilite, une magnitude attendue a H+1 et H+4, un raisonnement detaille et une action concrete (entree, SL, TP suggeres). Le moteur combine trois sources : un mapping cross-asset deterministe (ex FOMC hawkish = USD fort = EURUSD baisse), la mesure des reactions historiques sur TES propres donnees OHLCV chargees, et le contexte courant (tendance, volatilite, session). En complement, le BLS Watcher integre interroge l'API publique du Bureau of Labor Statistics (US) pour detecter automatiquement les releases NFP / CPI / PPI / Unemployment et pre-remplir l'analyse.
A utiliser juste apres la publication d'un chiffre macro important pour decider en quelques secondes si et comment trader la reaction. Le BLS Watcher sert a etre alerte automatiquement quand un release US tombe (8:30 ET / fenetre 12-14h UTC) sans surveiller le calendrier manuellement.
Des donnees OHLCV chargees en cache pour le symbole analyse (lance d'abord un backtest sur ce symbole ; le moteur a besoin d'au moins 200 barres, ideal en M15). Pour le BLS Watcher : connexion internet ; l'API BLS est gratuite (25 requetes/jour sans cle, 500/jour avec une cle posee dans la variable d'environnement BLS_API_KEY).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Start watcher / Stop watcher (nw-toggle-btn) | Demarre ou arrete le polling background du BLS Watcher (POST /api/news_watch/start ou /stop). Frequence adaptative : 30s dans la fenetre 12-14h UTC, 5min a moins d'1h, 1h sinon. |
| Check now (nw-state) | Force un appel immediat a l'API BLS pour rafraichir les dernieres valeurs et detecter un eventuel nouveau release (POST /api/news_watch/check_now). |
| Appliquer au symbol courant (bouton du bandeau release) | Reprend le type d'evenement et le sens de surprise du dernier release detecte par le watcher, remplit les selecteurs et lance directement l'analyse (newsReactApplyLatest). |
| Symbol (nr-symbol) | Symbole a analyser (ex EURUSD, USDJPY, XAUUSD, US500, BTCUSD). Pre-rempli depuis la config active ou EURUSD par defaut. Determine le facteur cross-asset applique a la devise. |
| Type d'evenement (nr-event-type) | Choisit l'evenement macro parmi 12 catalogues (FOMC rate/minutes, NFP, CPI US, PPI US, Retail Sales, GDP, Unemployment claims, ECB, BoE, BoJ, ISM PMI). Les etoiles indiquent l'importance ; affiche la devise impactee et l'importance /5. |
| Direction de la surprise (nr-surprise) | Sens de la surprise, options dependantes de l'evenement (hawkish/dovish/inline pour les banques centrales ; higher/lower/inline pour CPI/PPI/NFP/GDP ; lower/higher/inline pour Unemployment). hawkish/higher = devise forte. |
| Analyser maintenant (nr-run-btn) | Lance la prediction (POST /api/news_react/predict) en envoyant symbole + evenement + surprise + config active, et affiche le verdict. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Valeurs courantes BLS (nw-current-grid) | Grille des dernieres valeurs polled pour NFP, CPI, PPI et Unemployment, avec annee/periode, valeur, fleche de variation vs prior (haut vert / bas rouge) et valeur prior. |
| Bandeau dernier release (nw-latest-banner) | Dernier release detecte automatiquement : label evenement, horodatage, periode, valeur actual, prior et surprise_pct, et sens de surprise (higher vert / lower rouge / inline). |
| Etat / poll info du watcher (nw-state-label, nw-poll-info) | Statut Running (avec nombre de polls) ou Stopped, date du dernier poll, compte a rebours next poll, et nombre d'erreurs API le cas echeant. |
| Direction (nr-direction-icon / label) | Verdict directionnel : LONG (hausse probable), SHORT (baisse probable) ou NEUTRE (impact incertain). Calcule comme surprise_strength x facteur_cross_asset du symbole. |
| Probabilite directionnelle (nr-prob) | Probabilite que la direction se realise, en %. Base sur le taux UP/DOWN historique a H+4, ajustee +/-5% selon l'alignement de la tendance. Bornee 5-95%. |
| Magnitude attendue H+1 (nr-mag-h1) | Amplitude de mouvement attendue 1 heure apres la news, en %. = moyenne des |variations| historiques a H+1 x ajustement volatilite (low 0.7, normal 1.0, high 1.3). |
| Magnitude attendue H+4 (nr-mag-h4) | Idem pour l'horizon 4 heures. Sert de base au TP suggere. |
| Action recommandee (nr-action) | WAIT (attendre, aucun signal net) si NEUTRE ou aucun historique ; sinon LONG/SHORT avec entry (market post-news), SL approx (= 0.5 x magnitude H+1, min 0.05%), TP approx (= 1.5 x magnitude H+4, min 0.10%) et le ratio R:R calcule. |
| Raisonnement (nr-reasoning) | Liste numerotee des etapes du verdict : impact devise de la surprise, polarite symbole<>devise, statistiques historiques (nombre d'events, |Delta| moyen H+1/H+4, taux UP H+4), contexte courant, et ajustement de probabilite par la tendance. |
| Historique events similaires (nr-n-hist) | Nombre d'occurrences passees de ce type d'evenement retrouvees dans tes donnees (dates generees par heuristique de calendrier : dates FOMC/ECB , 1er vendredi pour NFP, mi-mois pour CPI/PPI, etc.). 0 = magnitude estimee a 0 et action WAIT. |
| Trend courant (nr-trend) | Tendance detectee sur les 50 dernieres barres : uptrend / downtrend / ranging (pente de regression lineaire relative). |
| Volatilite (nr-vol) | Regime de volatilite : low / normal / high, avec le ratio ATR recent / ATR 200 barres affiche (xN). |
| Session (nr-session) | Session de marche UTC au moment de l'appel : asian / european / overlap_us_eu / us / after_hours. |
Comment faire
- Pose une cle BLS_API_KEY en variable d'environnement pour passer de 25 a 500 requetes/jour et eviter de saturer le quota du watcher.
- Le bouton Appliquer au symbol courant du bandeau release evite la double saisie : il pre-remplit evenement + surprise et lance l'analyse en un clic.
- Plus le nombre d'events historiques (nr-n-hist) est eleve, plus la probabilite et les magnitudes sont fiables ; un faible echantillon donne des estimations fragiles.
- Travaille de preference en M15 sur le symbole : les horizons H+1 et H+4 sont mesures en barres a partir de la frequence detectee.
- La surprise du BLS Watcher est calculee vs la valeur PRIOR (release precedent), pas vs un consensus forecast : BLS ne fournit pas le forecast, donc le sens hawkish/dovish est approximatif.
- Les dates d'events sont des heuristiques de calendrier (dates FOMC/ECB jusqu'a 2026, regles 1er vendredi / mi-mois / jeudi hebdo...), pas un vrai calendrier economique : certaines occurrences peuvent etre approximatives ou manquantes.
- Si le symbole n'est pas dans la table de mapping cross-asset, un fallback heuristique (devise en debut/fin du nom) s'applique et le verdict peut etre NEUTRE/incertain.
- Sans donnees OHLCV chargees (moins de 200 barres) la prediction renvoie une erreur Donnees insuffisantes.
- Le watcher cible uniquement 4 series BLS (NFP, CPI, PPI, Unemployment) ; les autres evenements du catalogue (FOMC, ECB, BoE, BoJ, PMI...) doivent etre saisis manuellement.
- La probabilite est bornee entre 5% et 95% et la magnitude vaut 0 si aucun historique n'est trouve : ce n'est pas un modele predictif entraine, mais une combinaison de regles et de statistiques descriptives.
Live Optim
PROTOS Trading LiveLive Optim est un hub unifie qui surveille en continu tes strategies branchees sur Chart Live (et celles que tu pin manuellement). Il croise trois systemes de controle : le Drift (la perf live colle-t-elle encore au backtest de reference ?), le ML Adaptif (un modele qui apprend de tes trades passes et module la taille des positions) et le Quant Tracker (analyse periodique des trades live pour detecter l'alpha decay). De chaque diagnostic il deduit un Verdict global (DEPLOY / MONITOR / REWORK) et propose, en Mode B, des ajustements de parametres backtestes automatiquement que tu valides a la main.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
Utilise cette page une fois qu'une strategie tourne en live (branchee sur Chart Live) ou des que tu veux surveiller une candidate sauvegardee. C'est l'ecran de suivi quotidien apres deploiement : il te previent quand une strat decroche et te propose quoi corriger.
Au moins une strategie sauvegardee (depuis Backtest ou FAO) avec des stats backtest valides (Sharpe ou Profit Factor), pour servir de baseline. Le suivi reel et l'alpha decay exigent des trades live fermes (collectes via Chart Live / connexion courtier). Le ML Adaptif demande au moins 30 trades fermes par symbole avant le premier entrainement.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Bouton Refresh (en-tete) | Force un rafraichissement immediat (loRefresh) ; la page se rafraichit aussi automatiquement toutes les 8 secondes. |
| Onglet Overview | Affiche le tableau d'agregation de toutes les strats surveillees + les KPI globaux. |
| Onglet Drift | Detail de la derive par strategie avec gestion des baselines. |
| Onglet ML Adaptif | Reglages et etat du modele ML qui module la taille des positions. |
| Onglet Quant Tracker | Controle du tracker periodique, logs et calcul de l'alpha decay. |
| Onglet Actions (badge) | Liste les actions Mode B en attente (propositions Quant + reoptim drift) ; le badge rouge compte les actions a traiter. |
| Strats pinned — bouton + Ajouter | Ouvre le selecteur pour surveiller une strat candidate en plus des strats live (loToggleAddPinned). |
| Selecteur Choisis une strat + bouton Ajouter | Pin une strategie sauvegardee pour la suivre (loAddPinned) ; la liste exclut les strats deja live ou deja pinned. |
| Croix sur une strat pinned | Retire la strat du suivi (loRemovePinned). |
| Bouton Plug (ligne du tableau) | Branche la strategie sur Chart Live (stratPlugLive). |
| Bouton Drift (ligne du tableau) | Ouvre la page Live Monitor pour le detail derive (loOpenDrift). |
| Bouton Reset toutes les baselines (onglet Drift) | Efface toutes les baselines de derive enregistrees (loDriftResetAll, POST /api/live/drift/reset_all). |
| Bouton Set baseline (carte Drift) | Enregistre la baseline de derive d'une strat a partir des stats de son dernier backtest : Sharpe, Profit Factor, expectancy_r, max drawdown, win rate, nombre de trades (loDriftSetBaseline). |
| Bouton Reset (carte Drift) | Supprime la baseline de derive d'une seule strat (loDriftReset, DELETE /api/live/drift/strat/<id>). |
| Bouton Force refit (ML) | Lance un re-entrainement immediat du modele ML (loMlForceRefit, POST /api/ml/overlay/refit). |
| Bouton Reset (ML) | Efface l'historique et le modele ML, on perd l'apprentissage (loMlReset, POST /api/ml/overlay/reset). |
| Case Activer ML Adaptif (master switch) | Active d'un coup l'overlay d'apprentissage, la modulation de taille (score 0 -> 0.5x, score 1 -> 1.5x) et l'online refit (loMlToggleMaster ; ecrit ml_overlay_enabled, ml_score_modulate_size, ml_online_refit dans /api/config). |
| Champ Min trades (ML avance) | Nombre minimum de trades avant le premier entrainement (ml_overlay_min_train, defaut 30). |
| Champ Refit every (trades) (ML avance) | Frequence de re-entrainement en nombre de trades (ml_overlay_refit_every, defaut 20). |
| Champ Lot multiplier (ML avance) | Amplitude de modulation de la taille selon le score ML (ml_score_lot_multiplier, defaut 0.5). |
| Champ Lot min (ML avance) | Plancher du multiplicateur de lot applique (ml_score_lot_min, defaut 0.5). |
| Champ Intervalle d'analyse (min) (Quant Tracker) | Periode entre deux analyses du tracker, de 5 a 240 min (defaut 30). |
| Bouton Demarrer (Quant Tracker) | Lance le tracker avec auto-baseline depuis la 1re strat live/sauvegardee (loTrackerStart, POST /api/quant/tracker/start). |
| Bouton Arreter (Quant Tracker) | Stoppe le tracker (loTrackerStop, POST /api/quant/tracker/stop). |
| Bouton Appliquer (carte Proposition Quant) | Accepte la proposition et active la nouvelle config (loApplyProposal, POST /api/quant/tracker/validate accepted=true) ; desactive tant que le backtest avant/apres n'est pas pret. |
| Bouton Decliner (carte Proposition Quant) | Rejette la proposition et la masque (loDeclineProposal, POST /api/quant/tracker/validate accepted=false). |
| Bouton Lancer Auto-Reoptim (carte strat en ALERT) | Declenche une re-optimisation Post-FAO pour une strat en derive ALERT (loTriggerReoptim, POST /api/live/drift/strat/<id>/auto_reoptim, mode fast, target composite, 100 trials). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| KPI Strats surveillees | Nombre total de strats dans le tableau (live + pinned). |
| KPI DEPLOY | Nombre de strats au verdict DEPLOY (vert) : drift OK, ML accuracy >= 55% et decay OK. |
| KPI MONITOR | Nombre de strats en MONITOR (orange) : au moins une metrique en WARN, a surveiller. |
| KPI REWORK | Nombre de strats en REWORK (rouge) : drift ALERT, ML accuracy < 45% ou decay ALERT, a retravailler. |
| KPI Actions en attente | Nombre total d'actions Mode B a traiter (propositions Quant actives + strats en ALERT) ; aussi affiche en badge rouge sur l'onglet Actions. |
| Tableau colonne Strat | Nom de la strategie (pastille de couleur si live). |
| Tableau colonne Symbol/TF | Symbole et timeframe source de la strat. |
| Tableau colonne Source | Badge LIVE (branchee sur Chart Live) ou PIN (candidate epinglee manuellement). |
| Tableau colonne Drift | Score de derive 0-100 + statut (OK/WARN/ALERT) + n = nombre de trades dans la fenetre rolling. Repere : >= 80 vert, 60-80 orange, < 60 rouge. |
| Tableau colonne ML | Accuracy du modele ML du symbole + nombre de fits. Repere : >= 55% vert, 45-55% orange, < 45% rouge. |
| Tableau colonne Quant | Niveau d'alpha decay (OK/WARN/ALERT) + nombre de propositions pour ce symbole. |
| Tableau colonne Verdict | Verdict global combine = le pire des trois (DEPLOY / MONITOR / REWORK / N/A). |
| Carte Drift — score + statut + n | Score de derive de la strat, statut (OK/WARN/ALERT/NO_BASELINE) et taille de l'echantillon ; un point de couleur synthetise l'etat. Pondere Sharpe 0.30, PF 0.25, expectancy_r 0.25, max drawdown 0.20 (inverse). |
| Carte Drift — composants (ratios) | Decomposition du score par metrique (chaque composant en pourcentage de contribution). |
| ML — Modeles actifs (par symbol) | Pour chaque symbole : type de modele, Accuracy (avec code couleur), nombre de Fits et date du dernier entrainement. |
| Quant Tracker — statut | Etat actif/inactif, heure du dernier check, nombre de propositions et de trades live collectes. |
| Quant Tracker — Logs recents | Journal monospace des operations du tracker (defile automatiquement vers le bas). |
| Alpha Decay — Niveau | OK / WATCH / WARNING / CRITICAL selon le pourcentage de degradation (< 10% OK, 10-25% WATCH, 25-40% WARNING, >= 40% CRITICAL). |
| Alpha Decay — Score | Score de degradation calcule a partir des ratios live/backtest (WR 0.35, PF 0.35, Sharpe 0.30). |
| Alpha Decay — Win rate ratio | Ratio win rate live / backtest (1.0 = identique, < 1.0 = degradation). |
| Alpha Decay — PF ratio | Ratio profit factor live / backtest. |
| Alpha Decay — EV ratio | Ratio d'esperance (Sharpe) live / backtest. |
| Carte Proposition Quant | Titre, severite (INFO/MEDIUM/HIGH ou WARNING/CRITICAL), rationale, parametres proposes (ex. risk_pct reduit) et comparatif backtest avant -> apres : Win rate, PF, Score, Max DD avec delta colore. |
| Carte Auto-Reoptim Drift | Strat passee en ALERT avec son symbole/TF et son score de derive ; bouton pour lancer la reoptim, etat Reoptim en cours apres declenchement. |
Comment faire
- La page se rafraichit toute seule toutes les 8s : laisse-la ouverte comme ecran de monitoring.
- Le Quant Tracker peut demarrer automatiquement quand tu branches une strat sur Chart Live (auto-baseline), inutile de toujours cliquer Demarrer.
- La baseline de derive est re-synchronisee automatiquement quand tu refais un backtest (workflow FAO -> Post-FAO) : pas besoin de la reset a la main.
- Le bouton Appliquer d'une proposition reste grise tant que le backtest avant/apres n'est pas calcule : attends que les chiffres apparaissent.
- Sans stats backtest (ni Sharpe ni Profit Factor), Set baseline echoue : refais un backtest avant de surveiller la derive.
- Le Drift exige au moins 10 trades fermes (MIN_TRADES_FOR_DRIFT) et le ML au moins 30 trades par symbole : tant que l'echantillon est trop petit, les colonnes restent vides ou en N/A.
- Reset (ML) efface l'apprentissage du modele : irreversible, le modele repart de zero.
- Le ML est indexe par SYMBOLE (pas par strat) : la colonne ML affiche le modele du symbole le plus entraine, partage entre strats du meme symbole.
- Le verdict global prend le PIRE des trois diagnostics : une seule metrique en alerte fait basculer toute la strat en REWORK.
- L'alpha decay et les propositions n'apparaissent que si le tracker est actif ET a collecte assez de trades live (minimum 5 pour le decay).
Optimisation
Trouver les meilleurs réglages sans surapprendre, découvrir de l'alpha, et obtenir un verdict — y compris THANOS, l'auto-discovery en 1 clic.
THANOS — Auto-Discovery 1 clic
THANOS est le chercheur d'edge automatique de PROTOS. Tu donnes un (ou plusieurs) actif et des core modes de départ, il lance toute la batterie PROTOS en entonnoir à 5 étages (Résolution, Scan Rust, FAO multi-TF, Batterie par survivant, Synthèse) et te classe les meilleurs setups dans un leaderboard. Chaque candidat reçoit un verdict (DEPLOY / PAPER / REWORK / KILL), des métriques in-sample ET out-of-sample, et un méta-score déflaté qui pénalise le nombre de configs testées pour bloquer l'overfitting.
Utilise-le quand tu veux découvrir de zéro un edge sur un actif sans tout tester à la main, ou pour balayer une watchlist en une nuit. C'est le point de départ avant d'affiner un setup précis au FAO ou de l'envoyer au backtest.
Une source de données : LSE (auto-download + cache, recommandé), London Strategic Edge direct, Databento (futures CME — clé API requise) ou MT5 (terminal ouvert requis). La jauge Propfirm est peuplée depuis propfirm_convex.PRESETS. Aucune connexion live courtier n'est requise.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Actif(s) — watchlist (champ thanos-symbol) | Un ou plusieurs actifs séparés par virgule (ex: BTC USD ou BTCUSD, ETHUSD, XAUUSD, ES). |
| Profil (thanos-profile) | Profondeur de l'entonnoir : Max (le plus complet, overnight, 12 survivants), Standard (~3-6h, 5 survivants), Express (~1-2h, 2 survivants). |
| Budget temps (minutes) — 0 = auto | Temps MAX accordé à la phase batterie. 0 = nombre fixe de survivants selon le profil. Sinon THANOS traite les survivants par ordre de promesse et s'arrête au budget. |
| Spread $ (thanos-spread / sim_spread_usd) | Coût de spread $ soustrait à chaque trade. 0 = pas de spread ajouté (le slippage 20pts est déjà appliqué). |
| Frais $ (thanos-cost / sim_fees_usd) | Frais broker $ soustraits à chaque trade fermé. 0 = défaut réaliste par actif (crypto ~8$, métaux ~6$, futures/forex ~4$). |
| Source de données (thanos-datasource) | Choix du flux : auto/LSE (recommandé, cache), LSE direct, Databento (futures CME, clé API), ou MT5 (terminal ouvert). |
| Importer mes données (CSV / tick) | Bouton pour importer tes propres données (CSV / tick / trades) avec détection auto des colonnes. |
| Jauge Propfirm pass-rate (thanos-propfirm-enable, optionnel) | Active l'évaluation Monte-Carlo de la probabilité de passer un challenge propfirm ; ne donne le label DEPLOY qu'aux setups atteignant la cible. |
| Challenge propfirm (thanos-propfirm-preset) | Challenge visé (règles daily DD / trailing DD / objectif), peuplé depuis propfirm_convex.PRESETS. |
| Cible de pass-rate % (thanos-propfirm-target) | Taux de réussite visé (défaut 55%) ; un candidat sous la cible perd son label DEPLOY mais reste classé. |
| Optimiseur de confluence (thanos-confluence-enable, opt-in) | Après avoir figé la base, teste l'ajout de filtres HTF/régime/session, gardés seulement s'ils améliorent l'OOS en conservant ≥70% du volume ; ne dégrade jamais la base, produit une variante à comparer. |
| Mode PnL (thanos-pnl-mode) | Force le calcul P&L : Auto (THANOS décide selon l'actif), CFD/Forex (lots × risque%), ou Futures (contrats × tick value). |
| Capital $ (thanos-capital) | Capital initial du backtest ; sert aussi de base au sizing réel de la jauge propfirm. |
| Risque %/trade (thanos-risk) | Risque par trade en % du capital (mode risque%). |
| Sizing (thanos-lot-mode) | Risque % (défaut), Contrats fixes (futures) ou Lot fixe. |
| Contrats / Max contrats (thanos-fixed-contracts / thanos-max-contracts) | Nombre de contrats par trade et plafond de sécurité, visibles en mode Contrats fixes. |
| Min Win Rate % (thanos-min-wr) | Garde-fou : un candidat sous ce Win Rate est marqué hors-critère (défaut 35). |
| Max Drawdown % (thanos-max-dd) | Garde-fou : un candidat au-dessus de ce drawdown est marqué hors-critère (défaut 40). |
| Mode strict (thanos-strict) | Si coché, aucun relâchement des garde-fous : THANOS peut ne remonter aucun candidat si rien ne passe. |
| Core modes de départ (thanos-modes-grid + presets Recommandés / Tous / Mes modes / Aucun) | Sélection des stratégies de base à explorer ; les modes custom importés (👤) sont inclus. Défaut = recommandés. |
| Timeframes (thanos-tf-body : M1, M5, M15, M30, H1, H4, D1) | Override des timeframes testés ; défaut = auto/gating (THANOS choisit). |
| LANCER THANOS (thanosStart) | Démarre le run via POST /api/thanos/start avec tous les réglages. |
| Stop (thanosStop) | Coupe l'étape en cours via POST /api/thanos/stop. |
| Historique des runs & bibliothèque d'edges (thanosShowLibrary) | Rouvre n'importe quel run THANOS passé (leaderboard + synthèse + certificats) sans relancer, et consulte la bibliothèque d'edges cumulée et dédupliquée. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Barre de progression + pipeline 5 étages | Résolution → Scan Rust → FAO multi-TF → Batterie → Leaderboard, avec % et étape courante. |
| source / rust / TF (bandeau) | Source de données effective, moteur Rust ON/OFF (backtests 50-100× plus rapides), et timeframes retenus pour le FAO. |
| configs testées (n_total_configs) | Nombre TOTAL de configurations testées ; sert à déflater le score (anti-overfit par sélection). |
| survivants (worklist_done/total) | Candidats passant la batterie complète sur le total à traiter. |
| Survivant en cours (cell_steps) | Stepper live des sous-étapes batterie : Post-FAO, Quant+CPCV, Validator, Sensitivity, Cross-TF/Symbol, Feature Mining, Symbolic GP, Reco finale. |
| Carte récap (meilleur candidat) | Actif · TF · Mode/Combo, verdict, méta-score brut et déflaté, label DEPLOY-grade (★). |
| Verdict | DEPLOY (capital réel) / PAPER (simu) / REWORK (à retravailler) / KILL (à jeter). |
| Méta / Défl. | Méta-score brut (0-100, agrégat des 11 gates de la Reco) et méta-score déflaté (pénalisé pour le nb de configs = classement honnête). |
| Sharpe / Sortino / Calmar / Profit Factor / Win rate / Expectancy R / Max DD / Trades / PnL total / Kelly ½ | Métriques in-sample du candidat ; PF >1.5 et Sharpe >1 sont colorés vert, DD>30% et PnL<0 en rouge. |
| DSR (Deflated Sharpe Ratio) | Probabilité 0-1 que le vrai Sharpe soit >0 après correction du biais multi-test : ≥0.95 réel, 0.5-0.95 marginal, <0.5 probablement overfit. |
| PBO k-fold (CPCV) | Taux d'échec hors-échantillon du candidat : fraction des folds où l'edge ne tient pas. 0 = tient partout, >0.5 = rouge. |
| Bloc Out-of-sample (Walk-Forward + IS/OOS) | Sharpe et Profit Factor entraîné sur 70% du passé puis testé sur 30% jamais vu, + dégradation PF. Verdict allant de tient ✓ à l'edge s'inverse ✗. |
| Walk-forward de déploiement | Sharpe moyen et pire période sur les trades réels, période par période, avec consistance (n périodes positives). |
| PBO CSCV (biais de sélection FAO) | Probabilité Bailey-López de Prado que le candidat soit un artefact de sélection sur le pool FAO. <0.5 = probablement réel. |
| Alpha / Beta | Alpha annualisé (perf au-delà du marché = skill) et Beta (exposition au sous-jacent), avec corrélation et interprétation selon le type de stratégie. |
| Propfirm pass-rate (gauge) | Probabilité Monte-Carlo (1500 chemins, gains in-sample décotés ×0.7) de passer le challenge, vs cible. Affiché en référence si la jauge n'est pas activée, sinon avec filtre/classement priorisé. Inclut P(payout) et convexité. |
| Gates chips (Validator / Sensitivity / Cross-TF / Régime) | Validator GO/NO-GO (marchés synthétiques), Sensitivity PLATEAU(robuste)/PIC(overfit), Cross-TF STABLE/DEAD/TF_SPECIFIC, Régime dominant (HMM) avec ★ si universel. |
| Leaderboard (tableau) | Tous les candidats classés par méta-score déflaté (puis pass-rate propfirm si filtre actif) ; colonnes #, Actif, TF, Mode/Combo, Méta, Défl., Verdict, Valid., Sensi, X-TF, Régime, α/β, Prop%, Sharpe, Sort., PF, WR%, EV-R, DD%, Trades, PnL%. |
| Marqueurs de ligne | ★ DEPLOY-grade, 🆕 nouvel edge jamais découvert, 🌱 warm-start re-validé, ⬥ Pareto-optimal, ⚠ métriques in-sample suspectes. |
| Variante confluence (#Nb) | Sous-ligne quand un filtre HTF/régime/session a été retenu : améliore le PF OOS en gardant ≥70% du volume ; testable/applicable séparément. |
| Synthèse multi-candidat | Portefeuille décorrélé (Sharpe combiné > meilleur seul + uplift), Playbook par régime (quel edge en tendance/range), Ensemble méta-vote (ALL_MODES). |
| Boutons par candidat | Tester au backtest, Appliquer la config, Certificat (preuve de robustesse anti-overfit HTML). |
| Bibliothèque d'edges + Historique des runs | Edges cumulés et dédupliqués sur tous les runs (scores figés à la découverte) + historique rechargeable (rouvrir / exporter / supprimer / importer un run). |
Comment faire
- Laisse Budget temps à 0 pour un nombre fixe de survivants par profil, ou mets une valeur (ex: 60) pour un max de résultat par minute sur une watchlist.
- Ne touche aux Réglages FAO avancés que si nécessaire : laissés tels quels, THANOS garde ses défauts intelligents par profil et reste maître de l'entonnoir.
- Fie-toi au méta-score DÉFLATÉ et au bloc Out-of-sample plutôt qu'au Sharpe in-sample brut : c'est la vraie preuve que l'edge tient.
- Utilise l'Historique des runs pour rouvrir un leaderboard complet sans relancer le calcul, et la Bibliothèque pour repérer les 🆕 nouveaux edges.
- Le profil Max tourne en overnight et Standard en ~3-6h : prévois le temps machine, ou réduis via Express / Budget temps.
- Sans frais (0/0), THANOS applique quand même des frais auto par actif + slippage 20pts ; un backtest réellement sans coûts gonflerait les métriques.
- Databento exige une clé API et MT5 un terminal ouvert ; LSE plafonne l'historique (caps connus côté données).
- Mode strict peut remonter 0 candidat si rien ne passe les garde-fous (Min WR / Max DD).
- Un drapeau ⚠ métriques in-sample suspectes ou un OOS qui s'inverse signale un setup overfitté malgré un bon Sharpe brut — à ne pas déployer.
- La jauge Propfirm est purement optionnelle : décochée elle n'interfère pas, mais cochée sans cible/challenge le lancement est bloqué.
Confluence Checker
Le Confluence Checker rejoue un trade concret de ton dernier backtest (entrée, SL, TP, sortie sur ~30 barres) et le confronte aux frictions réelles d'exécution : spread, fees et slippage. Il calcule le multiplicateur de break-even (jusqu'à combien l'exécution peut empirer avant que l'expectancy passe sous zéro) et rend un verdict de viabilité (VIABLE / FRAGILE / LIMITE / NON-VIABLE). C'est un stress-test interactif au niveau du trade unique, pas un nouveau balayage de paramètres.
À utiliser juste après un backtest prometteur, avant de déployer une stratégie : pour vérifier qu'un edge aux belles statistiques brutes n'est pas tué par les coûts réels de ton courtier. Sert de garde-fou final dans le flux d'optimisation.
Un backtest doit avoir été lancé au préalable : la config (symbole, timeframe, core_mode, SL/TP, spread/fees) est reprise du dernier backtest courant du serveur. Les données du symbole doivent être chargées (le module recharge les données et régénère les signaux). Il faut au moins 5 trades fermés sinon le check renvoie une erreur.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| SPREAD ($/unité prix) — id cchk-spread | Spread du courtier en dollars par unité de prix. Auto-rempli depuis sim_spread_usd du dernier backtest, ou depuis la table de coûts broker si un profil existe pour le symbole. Valeur par défaut 17. |
| FEES ($/trade) — id cchk-fees | Commission fixe par trade en dollars (round-turn). Auto-rempli depuis sim_fees_usd ou la table de coûts broker. Note : fees auto = estimation par actif (crypto 8$ / métaux 6$ / futures-forex 4$). Valeur par défaut 0. |
| SLIPPAGE ($/trade) — id cchk-slippage | Friction d'exécution additionnelle par trade (entrée+sortie). Le broker slippe souvent en news / liquidité fine. Auto-rempli si profil broker. Valeur par défaut 0. |
| STRESS xN exéc. — id cchk-stress | Facteur du scénario pire-cas mis en avant : spread+slippage multipliés par ce facteur (ex. x2 = exécution doublée). Pas minimal 1, défaut 2. Utilisé pour le calcul net_stress du trade rejoué. |
| TRADE À REJOUER — id cchk-trigger | Choisit quel trade fermé est rejoué en détail : Représentatif (médian en R, défaut), Meilleur (meilleur pnl_r), Pire (pire pnl_r), Dernier. |
| Lancer le check (bouton) — runConfluenceChecker() | Envoie la config + paramètres à /api/confluence_checker : recharge les données, régénère les signaux, simule les trades, rejoue le trigger choisi et calcule le stress de coûts. n_replay_bars est fixé à 30. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| VERDICT VIABILITÉ | Verdict global : VIABLE (survit à 2.5x de pire exécution, break-even >= 2.5), FRAGILE (break-even >= 1.5), LIMITE (meurt juste au-dessus de la friction assumée) ou NON-VIABLE (expectancy déjà négative à x1). Vert = VIABLE, orange = FRAGILE/LIMITE, rouge = NON-VIABLE. |
| n_trades + symbole/timeframe | Nombre de trades fermés analysés, symbole et timeframe de la config testée. Affiché sous le verdict. |
| RÉSISTANCE À L'EXÉCUTION — break-even xN (breakeven_mult) | Multiplicateur de friction au-delà duquel l'edge passe sous zéro. Repère clé : >= 2.5 = solide, sous 1 = NON-VIABLE (mort dès la friction assumée). |
| Friction de base $ (base_friction_usd / base_spread_usd / base_slippage_usd) | Détail de la friction d'exécution de base = spread + slippage (les fees fixes sont à part). C'est ce qui est multiplié dans le stress. |
| Net x1 (avg_net_r_base) | Expectancy nette moyenne en R à la friction assumée (x1). Positif (vert) = edge rentable après coûts réels assumés. |
| Net x2 (avg_net_r_2x) + WR x2 (win_rate_2x) | Expectancy nette moyenne en R et win rate au scénario broker pire-cas (spread+slippage doublés). Test de robustesse : reste-t-il positif ? |
| Tableau STRESS EXÉCUTION (aggregate.stress) | Ligne par multiplicateur de friction (x0, x0.5, x1, x1.5, x2, x3, x5) : colonnes x exéc. (x1 = assumé surligné, x2 = broker pire-cas surligné orange), Friction $, Expectancy R (vert si >0, rouge sinon), Win Rate. Montre où l'edge bascule sous zéro. |
| REJEU DU TRADE — graphique chandelier (replay) | Mini-graphique en chandeliers du trade rejoué avec direction (LONG/SHORT), hold_bars (barres de tenue), lignes TP (vert), Entrée (cyan), SL (rouge), et marqueurs E (entrée) / X (sortie). |
| Décomposition du trade rejoué (cost_breakdown) | Cascade brut -> net : gross_r/gross_usd (P&L brut), moins spread_usd, slippage_usd, fees_usd = net x1 (net_r), puis net x(stress_mult) (net_stress_r). Montre concrètement quel coût mange le trade. |
| MFE R / MAE R (replay.mfe_r / mae_r) | Maximum Favorable Excursion (meilleur profit latent atteint, en R) et Maximum Adverse Excursion (pire perte latente, en R) du trade rejoué. Indique la marge prise pendant la tenue. |
Comment faire
- Crée un profil dans la section Coûts broker (cost_profiles) pour ton symbole : spread/fees/slippage seront auto-remplis avec tes vrais coûts (un lien apparaît si aucun profil n'existe).
- Vise un break-even >= 2.5 (verdict VIABLE) pour une marge confortable : l'edge survit même si ton broker double le spread/slippage en news.
- Teste plusieurs triggers (Pire, Dernier) en plus du Représentatif pour voir comment l'edge se comporte sur un trade défavorable.
- Aucune connexion live : tout est rejoué sur les données historiques du dernier backtest, pas en temps réel.
- Le check échoue s'il y a moins de 5 trades fermés (« trop peu de trades — confluence ne se déclenche pas / settings trop stricts ») ou moins de 100 barres de données.
- Les fees auto sont une estimation par actif (crypto 8$ / métaux 6$ / futures-forex 4$) : si tu ne les remplaces pas par tes vrais frais broker, le verdict peut être trop optimiste ou pessimiste.
- La friction stressée = spread + slippage (les fees fixes ne sont pas multipliés) : un edge dépendant de gros fees fixes peut paraître plus robuste qu'il ne l'est.
- Le rejeu détaille UN seul trade (le trigger choisi) alors que le verdict/stress agrège tous les trades fermés : ne juge pas la viabilité sur le seul graphique du trade rejoué.
Coûts broker
C'est la table centrale qui stocke tes coûts d'exécution réels (spread $, fees $, slippage $) pour chaque couple broker × instrument. Pour la crypto, elle gère le vrai modèle de frais qui scale avec la taille : fees = taker% × notional × 2 (round-turn). Une fois renseignée, elle est réutilisée automatiquement par le Backtest, le FAO et THANOS (quand tu laisses leurs coûts à 0) et elle auto-remplit le Confluence Checker.
À remplir une fois au début, quand tu connais les frais réels de ton/tes courtier(s), pour que tous tes backtests et optimisations facturent les vrais coûts au lieu de l'estimation par défaut. Évite le backtest sans frictions qui gonfle artificiellement les métriques.
Aucune donnée de marché ni licence. Il te faut juste connaître les coûts réels de ton broker (spread, commission round-turn, slippage typique, ou en crypto ton taker% et ton notional). La table est persistée dans le fichier cost_profiles.json à côté du serveur.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| BROKER ACTIF (défaut de résolution) — select cp-active | Choisit le broker utilisé par défaut quand un outil résout un coût sans préciser de broker (champ active_broker). Rempli automatiquement avec la liste des brokers existants. |
| AJOUTER UN BROKER (preset) — select cp-preset | Choisit le modèle de départ du nouveau broker : Crypto exchange (taker %), Forex CFD (spread), Indice CFD (spread), Equity CFD (spread), Futures contract (commission) ou Vide. Le preset pré-remplit les bons champs avec des valeurs d'exemple à ajuster. |
| + Ajouter (bouton, cpAddBroker) | Crée un nouveau broker selon le preset sélectionné, avec un nom unique et un premier instrument d'exemple (sauf preset Vide). |
| 💾 Sauvegarder (bouton, cpSave) | Lit toute la table à l'écran, la nettoie (sanitize) et l'enregistre sur le serveur via POST /api/cost_profiles. Affiche le nombre de brokers sauvés. |
| Nom du broker (input cp-bname, par carte) | Renomme le broker. Un nom vide fait ignorer le broker à la sauvegarde. |
| Supprimer broker (bouton, cpRemoveBroker) | Supprime le broker entier et tous ses instruments (avec confirmation). |
| Instrument (input cp-sym, par ligne) | Symbole couvert par la ligne (ex. BTCUSD, EURUSD, MNQ). La résolution matche par symbole exact normalisé, puis par préfixe-racine (BTC matche BTCUSD), puis par wildcard * (défaut du broker). |
| Spread $ (input cp-spread) | Coût de spread en $ par unité de prix pour cet instrument. |
| Fees $ (input cp-fees) | Commission round-turn fixe en $/trade. À laisser vide en crypto si tu utilises Taker % + Notional. |
| Slippage $ (input cp-slip) | Friction d'exécution additionnelle en $/trade (entrée + sortie). |
| Taker % (input cp-taker) | Crypto : pourcentage de frais taker (ex. 0.055). Sert à calculer fees = taker% × notional × 2, prioritaire sur Fees $ s'il est renseigné avec un Notional. |
| Notional $ (input cp-notional) | Crypto : notional de la position type en $, utilisé avec le Taker % pour calculer le frais round-turn qui scale avec la taille. |
| + Instrument (bouton, cpAddRow) | Ajoute une ligne instrument vide au broker (nommée SYMBOLn par défaut). |
| ✕ (bouton par ligne, cpRemoveRow) | Supprime cette ligne instrument du broker. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Statut (span cp-status) | Retour des actions : « broker ajouté (preset) », « ⏳ sauvegarde… », « ✓ sauvé (N broker(s)) » en vert, ou « ✗ erreur » en rouge. |
| spread_usd (résolu) | Spread $ retourné par la résolution pour un symbole donné (via /api/cost_profiles/resolve), réutilisé tel quel par les outils. |
| fees_usd (résolu) | Frais round-turn $/trade calculés : taker%/100 × notional × 2 si taker% et notional sont renseignés (modèle crypto), sinon le Fees $ fixe. Arrondi à 4 décimales. |
| slippage_usd (résolu) | Slippage $/trade retourné par la résolution pour le symbole. |
| via_taker | Vrai si le frais a été calculé par le modèle crypto (taker% × notional), faux si c'est le montant fixe Fees $. |
| broker / instrument_key | Broker et clé d'instrument effectivement matchés par la résolution (utile pour savoir d'où vient le coût). |
| auto_fees (filet par classe d'actif) | Frais $/trade par défaut quand AUCUN profil ne matche : crypto = 8$, métaux = 6$, futures/forex/CFD = 4$. C'est le filet anti-backtest-sans-frais qu'appliquent FAO et THANOS. |
| source (table / auto) | Indique si le coût vient d'un profil broker (table, on lui fait confiance même si fees=0) ou du filet heuristique par classe d'actif (auto). |
Comment faire
- Crypto : renseigne Taker % et Notional, laisse Fees $ vide — le frais scale alors correctement avec la taille de position (taker% × notional × 2).
- Tu peux créer une entrée wildcard
*dans les instruments d'un broker pour définir un coût par défaut appliqué à tous ses symboles non listés. - La résolution matche par préfixe-racine : une entrée BTC couvrira BTCUSD, et MNQ couvrira MNQH5 (contrats datés) sans avoir à lister chaque échéance.
- Une valeur saisie directement dans Backtest/FAO l'emporte (override manuel) ; mets 0 pour utiliser la table.
- Un broker sans nom ou un instrument sans symbole est ignoré silencieusement à la sauvegarde.
- Si tu n'as aucun profil pour un symbole, FAO/THANOS appliquent des frais auto par classe d'actif (crypto 8$ / métaux 6$ / futures-forex 4$), qui ne sont qu'une estimation — pas tes vrais frais.
- En crypto, Taker % + Notional ont priorité sur Fees $ : si les deux sont renseignés, le Fees $ fixe est ignoré.
- Spread $ s'exprime en $ par unité de prix, pas en pips ni en points — vérifie l'échelle de ton instrument.
- Si plusieurs brokers existent et qu'aucun broker n'est précisé, la résolution utilise le broker actif (ou l'unique broker s'il n'y en a qu'un) ; sinon elle ne matche rien.
Options Lab
Un laboratoire dédié au backtesting d'options. Il prend uniquement les prix du sous-jacent de ta config (ticker + source de données), les resample en daily (les options sont des instruments quotidiens, DTE en jours), puis price les options en synthétique (Black-76) par défaut ou en data réelle si tu importes un CSV de chaînes (mode real-else-synthetic). Tu peux backtester une structure mécanique (entrée tous les N jours) ou laisser une thèse directionnelle/de régime/de confluence déclencher les structures. Un bouton Optimiser balaie l'espace de paramètres et sort un leaderboard scoré comme THANOS (volume-gate + IS/OOS + PBO/DSR).
Quand tu veux tester une stratégie d'options (premium selling, spreads directionnels, condors neutres) sur un actif, indépendamment de ta stratégie directionnelle classique. C'est une section autonome qui ne modifie ni le FAO ni le THANOS.
Un ticker disponible dans une source de données (LSE ou Databento), ou un CSV de chaînes d'options (colonnes date,expiry,strike,right,bid,ask,settle,iv ; +colonne underlying/spot optionnelle). Pour le pricing réel, le CSV est obligatoire ; sinon le pricing est synthétique. Les modes Directionnel et Confluence (facteur core mode) nécessitent un core mode valide.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| TICKER (ol-symbol) | Symbole du sous-jacent à pricer (ex. EURUSD, NAS100USD, ES). Pré-rempli depuis ta config courante. |
| TF DATA (ol-timeframe) | Timeframe de chargement des données ; tout est resamplé en daily. D1 = aucun resample (recommandé) ; une TF plus fine charge juste plus de data pour le même résultat. |
| SOURCE (ol-data_source) | Source de données du sous-jacent (LSE / Databento). Liste peuplée dynamiquement. |
| PÉRIODE (ol-data_period) | Profondeur d'historique chargé : 24m, 3y, 5y (défaut), 10y. |
| CORE MODE (ol-core_mode) | Mode du moteur principal utilisé pour générer le signal en mode Directionnel/Confluence (signal sur barres daily). |
| STRUCTURE (ol-structure) | Structure d'options fixe utilisée en mode mécanique : iron_condor, strangle, vertical_put_credit, vertical_call_debit, short_put, straddle. Désactivée (grisée) hors mode mécanique. |
| SHORT Δ (ol-short_delta) | Delta cible de la jambe vendue ; sert à choisir le strike (condor/strangle/put credit/short put). Défaut 0.20. |
| LONG Δ (ol-long_delta) | Delta cible de la jambe achetée (call debit). Défaut 0.55. |
| AILES (ol-wing_strikes) | Largeur des ailes en nombre de strikes (condor / verticals). Défaut 2. |
| SENS (ol-side) | Sens de la position pour strangle/straddle : Short (vente, -1) ou Long (achat, 1). |
| DTE ENTRÉE (ol-dte_entry) | Jours jusqu'à expiration au moment de l'ouverture. Défaut 30. |
| DTE SORTIE (ol-dte_exit) | Ferme la position quand le DTE atteint ce seuil ; 0 = tenir jusqu'à l'expiry. Défaut 7. |
| PROFIT TGT (ol-profit_target_pct) | Cible de prise de profit en % du profit max ; 0 = désactivé. Défaut 0.5. |
| STOP (×R) (ol-stop_loss_pct) | Stop loss en % du risk_init (multiple de R) ; 0 = désactivé. Défaut 2.0. |
| FRÉQ ENTRÉE (ol-entry_every) | En mode mécanique, ouvre une nouvelle position tous les N jours. Défaut 7. |
| MODE (ol-entry_mode) | Comment la thèse déclenche les options : Mécanique (tous les N jours), Directionnel (signal du core mode), Régime range (premium selling), Confluence options (facteurs mixables). |
| FACTEURS DE CONFLUENCE (ol-cf-*) | Cases à cocher (mode Confluence) pour composer la thèse : Trend (vote), Momentum (vote), Range (vote→neutre), Core mode (vote ×2), IV rank (gate), RV/IV richesse (gate). Vote porte le biais, Gate autorise/bloque la barre. |
| HAUSSIER → (ol-bull_structure) | Structure jouée quand la thèse est haussière (Directionnel/Confluence) : call debit spread, put credit spread, short put, long call. |
| BAISSIER → (ol-bear_structure) | Structure jouée quand la thèse est baissière : put debit spread, call credit spread, long put. |
| NEUTRE → (ol-neutral_structure) | Structure jouée quand la thèse est neutre/range : iron condor, strangle short. |
| RANGE LOOKBACK (ol-regime_lookback) | Fenêtre (jours) du détecteur de range en mode Régime. Défaut 20. |
| RANGE % (ol-regime_range_pct) | Amplitude relative max pour considérer une zone comme 'range'. Défaut 0.06. |
| GAP MIN (j) (ol-min_gap_days) | Espacement minimum entre deux entrées en jours (Directionnel/Régime). Défaut 7. |
| IV (ol-iv) | Volatilité implicite forcée pour le pricing synthétique ; vide = auto (vol réalisée du sous-jacent). |
| MULT (ol-mult) | Multiplicateur de contrat ; vide = déduit automatiquement du symbole. |
| SPREAD % (ol-spread_pct) | Spread bid-ask synthétique appliqué au fill. Défaut 0.03. |
| CONTRATS (ol-contracts) | Nombre de contrats par position. Défaut 1. |
| MARGE $ (ol-margin_estimate) | Estimation de marge pour les structures à risque indéfini (sert au calcul de R). Défaut 8000. |
| CSV CHAÎNES (ol-csv / ol-csv-file) | Zone de texte ou import de fichier d'un CSV de chaînes d'options (colonnes date,expiry,strike,right,bid,ask,settle,iv). Vide = pricing synthétique ; rempli = pricing réel (real-else-synthetic). |
| Sous-jacent depuis le CSV (ol-csv_underlying) | Reconstitue le sous-jacent depuis la colonne underlying/spot du CSV et ignore le ticker (nécessite cette colonne). |
| Lancer le backtest (runOptionsLab) | Lance un backtest unique de la config courante via /api/options_lab/run et affiche KPI, équité et trades. |
| ESSAIS (ol-n_trials) | Nombre de variantes à tirer dans l'optimiseur. Défaut 60. |
| MIN TRADES (ol-min_trades) | Plancher de volume de trades pour le score (volume-gate) ; en dessous, le score est plafonné. Défaut 20. |
| Optimiser (PBO/DSR) (runOptionsOptimizer) | Balaie structures/deltas/DTE/sorties (+confluence) via /api/options_lab/optimize et produit un leaderboard scoré (volume-gate + IS/OOS + PBO/DSR). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| TRADES (s.trades) | Nombre total de positions d'options jouées sur la période. |
| WIN RATE (s.win_rate_pct) | Pourcentage de trades gagnants (P&L $ > 0). |
| EXPECTANCY (s.expectancy_R) | Gain moyen par trade exprimé en R (multiples de risque). Positif = vert (edge), négatif = rouge. |
| P&L TOTAL (s.total_pnl_usd) | Profit/perte cumulé en dollars sur tous les trades. Vert si positif. |
| MAX DD (MTM) (s.max_drawdown_usd) | Drawdown maximum en $ calculé sur la courbe d'équité mark-to-market quotidienne (peak-to-trough). Affiché en rouge. |
| SCORE OPTIM (s.objective) | Score scalaire = expectancy R × facteur de volume min(1, trades/20) ; même philosophie entonnoir-volume que le FAO. |
| Bandeau de contexte | Mode d'entrée, structure, symbole, nb de jours (et nb de barres intraday si resamplé), future/cash, multiplicateur, strike inc, IV utilisée (%), mode de pricing (synthétique/réel + couverture réelle %), et répartition des sorties (exit_mix). |
| COURBE D'EQUITY | SVG de l'équité mark-to-market quotidienne ; ligne verte si finale ≥ 0, rouge sinon, avec ligne zéro pointillée. |
| Table TRADES | Jusqu'à 200 trades : #, Entrée→Sortie (jours), Jambes (strikes, ex. +C100 −P95), P&L $, R, et raison de sortie (exit_reason). |
| VARIANTES (n_candidates/n_trials) | Optimiseur : nombre de variantes valides retenues sur le nombre d'essais tirés. |
| PBO overfit (pbo) | Probability of Backtest Overfitting (CSCV) : ≤ 0.5 sain (vert), > 0.5 sur-apprentissage probable (rouge). |
| IV (iv_used) | Volatilité implicite utilisée pour le pricing, en %. |
| JOURS (n_days) | Nombre de jours (barres daily) de la période backtestée. |
| Leaderboard optimiseur | Lignes triées par score : #, structure/mapping, Δ (short_delta), DTE, PT (profit_target_pct), trades, WR (win_rate_pct), expR (expectancy_R), OOS (exp_oos = expectancy out-of-sample), DSR (Deflated Sharpe), score (robust_score = expectancy × volume × OOS-positif × DSR). Clic d'une ligne = charge ses params et relance un backtest. |
Comment faire
- Garde TF DATA = D1 : les options sont des instruments daily, une TF plus fine ne change pas le résultat et charge juste plus de data.
- Laisse IV et MULT vides pour l'auto : l'IV prend la vol réalisée du sous-jacent et le MULT est déduit du symbole.
- Le CSV peut porter une colonne underlying/spot : coche 'Sous-jacent depuis le CSV' pour tout pricer depuis le fichier, sans même renseigner de ticker.
- Vise un PBO ≤ 0.5 et un OOS positif dans le leaderboard : un score élevé avec OOS négatif ou PBO > 0.5 sent l'overfit.
- Augmente MIN TRADES pour pénaliser les variantes à fort RR mais trop peu de trades (le score plafonne sous ce volume).
- Options Lab n'utilise PAS ta stratégie directionnelle / core mode pour pricer : il ne se sert que des PRIX du sous-jacent (le core mode ne sert qu'aux modes Directionnel/Confluence pour générer le signal).
- Tout est resamplé en daily : impossible d'avoir une granularité intraday sur les options ici (DTE en jours).
- Sans CSV, le pricing est entièrement synthétique (Black-76) : les frictions et l'IV sont des hypothèses, pas des prix de marché réels.
- Le pricing réel est en mode real-else-synthetic : les strikes/dates absents du CSV retombent sur le synthétique ; surveille le % de couverture réelle affiché.
- La table de trades est tronquée à 200 lignes (le P&L et les KPI portent sur l'ensemble).
- Section autonome : elle ne modifie ni n'utilise les résultats du FAO ou de THANOS.
Full Auto Optimizer (FAO)
Le Full Auto Optimizer est l'optimiseur automatique de PROTOS. Tu choisis un symbole, un timeframe et une période d'historique, puis il scanne les 16 modes de stratégie (core modes), balaye leurs paramètres, et fait passer les meilleurs candidats à travers 16 phases de validation (Monte Carlo, Walk-Forward, IS/OOS, stress test, stabilité glissante, etc.). Au final il te remonte un classement des 3 meilleures configurations avec toutes leurs métriques et le détail de chaque test de robustesse. C'est entièrement autonome : aucune config externe n'est requise.
À utiliser au tout début d'un projet de stratégie, quand tu ne sais pas encore quel mode/paramètres exploiter sur un instrument : le FAO fait le gros défrichage à ta place. Tu enchaînes ensuite sur Post-FAO, Quant Optimizer et Validator pour affiner et durcir le candidat retenu.
Des données historiques pour le symbole : LSE (auto-download + cache, recommandé), Databento (futures CME, clé API payante personnelle requise), MT5 (terminal ouvert) ou import CSV/tick. Aucune connexion courtier en temps réel n'est nécessaire (le FAO travaille sur de l'historique). Timeframe minimum M15 (M1/M5 bloqués pour éviter la saturation RAM). Le mode DOM_MICROSTRUCTURE exige obligatoirement la source Databento.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Démarrer / Arrêter | Lance (faoStart) ou stoppe (faoStop) le run d'optimisation 16 phases. La progression s'affiche dans la console à droite (barre %, stepper de phases, temps écoulé/restant, logs). |
| Sauvegarder le rapport (.json) | Télécharge le RAPPORT COMPLET avec toutes les recommandations. Ce fichier se recharge tel quel plus tard via la zone de dépôt, sans relancer le calcul. |
| Logs (.txt) | Télécharge le log complet du run en texte, utile pour le debug ou le partage. |
| Charger rapport existant (zone glisser-déposer) | Recharge un rapport FAO .json déjà produit (glisser-déposer ou clic pour parcourir), pour réafficher les résultats sans recalculer. |
| Asset (Symbol) | Symbole à optimiser (ex: BTCUSD, NQ, EURUSD). Défaut BTCUSD. |
| Timeframe | Unité de temps des barres : M15, M30, H1, H4 ou D1. M15 est le minimum autorisé (M1/M5 bloqués côté serveur pour préserver la RAM). |
| Capital Initial ($) | Capital de départ du backtest simulé. Défaut 10000. |
| Sizing Mode | Mode de calcul de la taille de position : RISK_PERCENT (% du capital converti en contrats auto), FIXED_CONTRACTS (N contrats fixes, recommandé futures), ou FIXED (lots fixes, CFD). |
| Risk per Trade (%) | Risque par trade en % du capital (visible en mode RISK_PERCENT). Défaut 1.0, borné 0.1 à 5. |
| Contrats par trade (FIXED_CONTRACTS) | Nombre fixe de contrats par trade quand Sizing Mode = FIXED_CONTRACTS. Défaut 1, borné 1 à 50. |
| Max contrats (cap sécurité) | Plafond de contrats de sécurité. Défaut 10, borné 1 à 100. |
| Sim Spread ($/unité prix) | Écart de prix appliqué à l'entrée pour le réalisme broker. À 0 = auto-rempli depuis la table Coûts broker du symbole ; une valeur ici = override manuel. |
| Sim Fees ($/trade) | Frais fixes soustraits à chaque trade. À 0 = auto-rempli depuis la table Coûts broker ; 0 + aucun profil = filet anti-frictionless (frais auto par classe d'actif appliqués quand même). |
| Distance TP/SL Min (Ticks / Dollars) | Distance minimale entre prix d'entrée et TP/SL, exprimée en ticks ou en dollars (bouton bascule faoToggleDistanceUnit). Défaut 10. |
| Mode P&L | Force la formule de calcul du gain : Auto (futures si ticker NQ/ES.../source Databento, sinon CFD), CFD/Forex (lots × risk %), ou Futures (contrats × tick value). Critique pour BTCUSD/EURUSD/XAUUSD afin que FAO et Backtest donnent le même résultat. |
| Min Win Rate (%) | Guardrail : plancher de taux de gains. Un candidat sous ce seuil est marqué ×. Défaut 35. |
| Max Drawdown (%) | Guardrail : plafond de drawdown. Un candidat au-dessus est marqué ×. Défaut 40. Sert aussi au recalcul live du sizing optimal en contrats. |
| Mode strict (0 candidat si aucun ne passe) | Case à cocher : désactive la relaxation automatique qui remonte toujours 3 recos même si elles violent les guardrails. Activé = peut renvoyer 0 candidat. |
| Densité min. de trades | Option : exige un nombre minimal de trades par jour/semaine/mois (champ + sélecteur de période). Filtre les configs qui tradent trop peu pour être statistiquement fiables. Défaut désactivé ; si activé, 3/semaine par défaut. |
| Période de Données | Fenêtre d'historique : 24 mois, 3 ans, 5 ans (recommandé, défaut) ou 10 ans. Plus longue = plus de régimes captés et plus de robustesse, mais calcul plus long. |
| Source de Données | Origine des barres : LSE auto (recommandé, auto-download + cache), LSE direct, Databento (futures CME, clé API requise) ou MT5 (terminal ouvert requis). Lien Pré-télécharger et bouton Importer mes données (CSV/tick) disponibles. |
| Importer mes données (CSV / tick) | Ouvre l'import de tes propres données (CSV, tick ou trades) avec détection automatique des colonnes. |
| Nombre de Barres Manuel | Override manuel du nombre de barres. 0 = auto selon la période (badge AUTO). Maximum 3 000 000. |
| Date de Début / Date de Fin (optionnel) | Bornent explicitement la fenêtre de données analysée si renseignées. |
| Modes à scanner | Panneau dépliant de cases : sélectionne les core modes que le FAO scanne en Phase 1. Vide = tous (défaut). Des presets accélèrent la sélection. Le mode 10 (DOM_MICROSTRUCTURE) exige la source Databento. |
| Paramètres à ignorer | Panneau dépliant : coche les paramètres à figer au défaut (non balayés), avec recherche et boutons Tout/Aucun. Réduit la taille du grid et concentre l'optimisation sur les paramètres restants. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Console de progression (16 phases) | Barre %, stepper et label de la phase en cours (Setup, Grid Search, Parameter Sweep, Monte Carlo, Walk-Forward, IS/OOS, Stress Test, Surface Sweep, Equity R², Corrélation/Benchmark, Rolling Stability, MAE/MFE, Time Heatmap, Audit & Health, Multi-TF, Kelly & EV), temps écoulé / restant estimé, compteur de phase X/16, et logs en direct. |
| Bandeau de synthèse | Symbole + timeframe, badge Full, nombre de candidats testés, durée totale en heures, et nombre minimum de trades requis. En mode futures, un encart précise la spec contrat (tick, $/tick, marge) et la formule P&L. |
| Classement Top-3 (cartes #1/#2/#3) | Pour chaque reco : rang, core_mode, score /100, et les modes SL / TP / BE retenus. La bordure colorée distingue le rang. |
| TRADES | Nombre de trades générés par la config. À surveiller : trop peu = métriques non fiables (voir Densité min.). |
| WIN RATE | Taux de trades gagnants en %. |
| PROFIT FACTOR | Gains bruts / pertes brutes. > 1 = profitable ; plus c'est haut, mieux c'est. |
| MAX DD | Drawdown maximum en % (pire perte cumulée). Plus bas = mieux ; comparé au guardrail Max Drawdown. |
| Sharpe | Rendement ajusté du risque (volatilité totale). Plus haut = mieux. |
| Sortino | Rendement ajusté du risque baissier uniquement. Plus haut = mieux. |
| Calmar | Rendement annualisé / max drawdown. Plus haut = mieux. |
| EV (R) | Espérance par trade exprimée en multiples de R (risque). > 0 = edge positif. |
| Kelly½ | Fraction de Kelly (demi-Kelly) en %, suggestion de sizing prudent. |
| PnL % | Gain total en % du capital sur la période. |
| PnL $ | Gain total en dollars. |
| Hold moy | Durée moyenne de détention d'un trade en heures. |
| Métriques futures (Commissions, Moy. contrats, PnL net $) | Affichées en mode futures : commissions totales, nombre moyen de contrats par trade, et PnL net en dollars. |
| Sizing optimal (sous max_dd) | Recalcul live (selon le champ Max Drawdown) du nombre de contrats optimal, avec DD/PnL%/PnL$ mis à l'échelle linéairement. Affiche un avertissement Sizing infaisable si même 1 contrat dépasse la limite de DD. |
| Validation (6 tests) | Pastilles passé/échoué/non testé pour Guardrails, Monte Carlo (% profit, P90 DD), Walk-Forward (Sharpe IS/OOS + ratio), IS/OOS (PF IS/OOS + dégradation %), Stress (% stabilité) et Rolling (WR moyen + coefficient de variation). |
| Appliquer au Backtest | Bouton : pousse la config du rang choisi dans la config globale du serveur (apply_config) pour la rejouer dans la page Backtest. |
| Save as strategy | Bouton : ajoute ce rang (avec PnL, trades, winrate, PF, Sharpe, max DD) à la bibliothèque de stratégies. |
| Télécharger (config rang) | Bouton : télécharge la configuration JSON du rang choisi (download_config). |
Comment faire
- Laisse les coûts de simulation à 0 : ils se remplissent automatiquement depuis ta table Coûts broker pour le symbole, et un filet anti-frictionless empêche un backtest sans frais (qui gonflerait les métriques).
- Pour comparer NQ et MNQ, mets Sizing Mode = FIXED_CONTRACTS à 1 sur les deux et lis les R / PF / Sharpe (les $ varieront 10x, c'est attendu).
- Le champ Max Drawdown (%) recalcule en direct le sizing optimal en contrats des recos affichées, sans relancer le FAO.
- Sauvegarde le rapport .json : tu le rechargeras tel quel plus tard (drag and drop) sans recalculer, et Appliquer au Backtest fonctionnera ensuite.
- Pour les symboles ambigus (BTCUSD, EURUSD, XAUUSD), force le Mode P&L explicitement sinon les recos FAO ne se reproduiront pas à l'identique dans le Backtest.
- FAO est bloqué sous M15 (M1/M5 refusés côté serveur) car il chargerait des millions de barres (M1 5 ans ≈ 2,6 M) et pourrait saturer la RAM.
- Par défaut, une relaxation automatique remonte toujours 3 recommandations même si elles violent tes guardrails : coche Mode strict pour obtenir 0 candidat si aucun ne passe vraiment.
- Le mode DOM_MICROSTRUCTURE (10) est refusé si la source n'est pas Databento (un proxy bar-derived donnerait des résultats trompeurs).
- Databento exige ta propre clé API (abonnement payant) ; MT5 exige un terminal ouvert.
- Le nombre de barres est plafonné à 3 000 000.
- Le run a une durée maximale de 4 heures (max_duration_hours), au-delà il s'arrête.
- Appliquer au Backtest met à jour la config serveur mais demande de recharger la page Backtest pour voir la stratégie appliquée.
Post-FAO Synth
Le Post-FAO Synthesizer prend un ou plusieurs rapports d'optimisation produits par le FAO (fichiers optimization_report_*.json) et recalcule, pour chaque recommandation, trois sous-scores sur 100 : Robustesse (Walk-Forward OOS/IS + Monte Carlo + Stress test), Stabilite (degradation IS/OOS + coefficient de variation du win-rate roulant + win-rate roulant moyen) et Performance (Sharpe, Calmar, Expectancy/R, Profit Factor, Max Drawdown, PnL total). Il les fusionne en un score composite pondere, attribue une note lettre (A+ a F) et un profil de risque, puis classe tous les combos. Un module Auto-Optimizer (Optuna TPE) peut ensuite explorer le voisinage de la config baseline pour pousser ce score au maximum.
A utiliser juste apres un ou plusieurs runs FAO, quand vous avez plusieurs candidats et que vous voulez un classement unique, comparable et lisible avant de choisir quelle config appliquer au backtest ou envoyer vers Quant Tools. C'est l'etape de tri/decision du pipeline d'optimisation.
Au moins un rapport FAO : soit le FAO encore en memoire (bouton 1 clic), soit des fichiers optimization_report_*.json presents sur disque. Aucune connexion courtier ni flux live requis.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Analyser le FAO en memoire (1 clic) (pfaoAnalyzeCurrent) | Lance la synthese directement sur le dernier rapport FAO encore charge en memoire, sans avoir a scanner le disque. |
| Charger un resultat Post-FAO (.json) (pfaoLoadResult) | Recharge un classement Post-FAO deja sauvegarde, sans relancer l'analyse ; le bouton Appliquer au Backtest redevient operationnel. |
| Repertoire de scan (pfao-scan-dir) | Dossier ou chercher les rapports JSON. La valeur '.' designe le dossier courant. |
| Scanner (pfaoScan) | Liste les fichiers optimization_report_*.json du repertoire, tries du plus recent au plus ancien. |
| Rapports - liste a cocher (pfaoToggleReport) | Cases a cocher pour selectionner les rapports a synthetiser ; chaque ligne montre asset, timeframe, nombre de recos, date et taille. |
| Tous / Aucun (pfaoSelectAll / pfaoSelectNone) | Selectionne ou deselectionne tous les rapports trouves en un clic. |
| Lancer l'analyse (fichiers selectionnes) (pfaoAnalyzeSelected) | Demarre la synthese sur les rapports coches ; reste desactive tant qu'aucun fichier n'est selectionne. |
| Poids Robustesse (WF+MC+Stress) (pfao-w-rob) | Slider 0-100 % (defaut 40) reglant le poids de la robustesse dans le score composite. |
| Poids Stabilite (IS/OOS+Rolling) (pfao-w-stab) | Slider 0-100 % (defaut 35) reglant le poids de la stabilite temporelle. |
| Poids Performance (Sharpe+EV+PF+DD) (pfao-w-perf) | Slider 0-100 % (defaut 25) reglant le poids des metriques de performance brute. |
| Total des poids (pfao-weights-sum) | Affiche la somme des trois poids ; n'importe quelle somme est acceptee car les poids sont normalises automatiquement. |
| Nombre de resultats (Top N) (pfao-top-n) | Limite le classement affiche : Top 5, 10 (defaut), 20 ou 50. |
| Auto-optim - Mode (pfao-opt-mode) | Fast (Performance only, ~30 s) ou Full (composite complet avec re-validation WF/MC/IS-OOS/Stress/Rolling, 5-25 min). |
| Auto-optim - Cible a maximiser (pfao-opt-target) | Composite (defaut), Robustesse pure, Stabilite pure ou Performance pure. |
| Auto-optim - Baseline (rank du report) (pfao-opt-rank) | Choisit la recommandation FAO de depart (Rank #1, #2 ou #3) autour de laquelle Optuna explore. |
| Auto-optim - Trials (pfao-opt-trials) | Nombre d'essais Optuna TPE (defaut 100, min 10, max 2000, pas 10). |
| Demarrer (pfaoOptStart) | Lance la boucle Optuna ; en mode Full avec >= 50 trials, une confirmation avec estimation de duree s'affiche. |
| Stop (pfaoOptStop) | Demande l'arret de l'optimisation en cours. |
| Appliquer au Backtest (pfaoApply) | Recupere la config du combo classe et la pousse vers /api/config, puis bascule sur la page Backtest. |
| Quant Tools (pfaoApplyAndRunQuant) | Applique la config du combo puis redirige vers Quant Tools pour l'analyser. |
| Details / Details complets (pfaoToggleDetails) | Deplie le JSON brut des metrics et de la validation du combo. |
| Sauvegarder (.json) (pfaoDownloadResult) | Telecharge le classement composite courant en .json, rechargeable plus tard. |
| Appliquer cette config au backtest (Auto-optim) (pfaoOptApply) | Applique la meilleure config trouvee par l'Auto-Optimizer au backtest. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Score composite | Score final 0-100 pondere (Rob x w_rob + Stab x w_stab + Perf x w_perf, normalise). C'est le critere de tri ; plus haut = meilleur. |
| Grade (note lettre) | A+ (>=85), A (>=75), B+ (>=65), B (>=55), C (>=45), D (>=35), F (<35). Vise A/B pour un candidat deployable. |
| Risk profile | Profil de risque base sur la moyenne Robustesse+Stabilite : LOW RISK (>=70), MEDIUM RISK (>=50), HIGH RISK (>=30), VERY HIGH RISK (<30). |
| Robustesse (score) | Sous-score 0-100 : robustesse Out-of-Sample. Decompose en WF (0-35), MC (0-35), Stress (0-30). |
| Stabilite (score) | Sous-score 0-100 : stabilite temporelle. Decompose en IS/OOS (0-40), Rolling WR CV (0-35), Rolling WR avg (0-25). |
| Performance (score) | Sous-score 0-100 : qualite brute. Sharpe (0-25), Calmar (0-20), EV/R (0-15), PF (0-15), Max DD (0-12), PnL total (0-13). |
| WF OOS/IS | Ratio Walk-Forward Out-of-Sample / In-Sample et points sur 35. Cible >= 0.80 ; 0.90 donne le plein de points. |
| MC Prob | Probabilite de profit en Monte Carlo (%) et points sur 35. 50 % = 0 pt, 90 %+ = plein. |
| Stress Stab | Stabilite moyenne sous stress test (%) et points sur 30. 60 % = 0 pt, 100 % = plein. |
| IS/OOS Degrad | Degradation In-Sample vers Out-of-Sample (%) et points sur 40. Plus bas = mieux ; 0 % = plein, >= 30 % = 0 pt. |
| Rolling WR CV | Coefficient de variation du win-rate roulant et points sur 35. Plus bas = plus stable ; CV >= 0.5 = 0 pt. |
| Sharpe (detail) | Sharpe ratio du combo et points sur 30 dans le bloc detail (sous-score Performance). |
| Flags de validation (6 portes) | guardrails, monte_carlo, walk_forward, is_oos, stress_test, rolling : chaque porte est validee ou non. Affiche X/6 pass. |
| Verdict / Reason / Action | FORTEMENT RECOMMANDE, RECOMMANDE, A SURVEILLER, NON RECOMMANDE ou REJETE, avec points forts/faibles et action conseillee (sizing, paper trading, etc.). |
| Label + source_file + FAO Score | Identite du combo : asset/timeframe/mode/FAO#rank, fichier d'origine et score FAO initial. |
| HUD Cinema (BEST / SYNTH / A/B/C) | Bandeau du panneau Cinema : meilleur score, nombre de syntheses, repartition des grades A/B/C. |
| Auto-Optimizer - Baseline / Best / Improvement | Score de depart, meilleur score atteint et gain. Improvement positif (vert) = l'optim a ameliore le score. |
| Auto-Optimizer - sous-scores (mode Full) | Robustesse / Stabilite / Performance du meilleur essai, chacun sur 100. |
| Auto-Optimizer - Metriques best | Sharpe, PF, EV/R, Max DD, Trades, Win-rate du meilleur essai. |
| Auto-Optimizer - Parametres optimises (vs baseline) | Tableau Param / Baseline / Best / Delta % montrant ce qu'Optuna a change par rapport a la config de depart. |
Comment faire
- Pas besoin de relancer une analyse : le bouton Charger un resultat Post-FAO (.json) restaure un classement deja sauvegarde et reactive l'application au backtest.
- La somme des poids n'a pas besoin de faire 100 % : elle est normalisee, mais 100 % reste le plus lisible (le total devient vert).
- En Auto-Optimizer, utilisez Fast (~30 s) pour degrossir puis Full pour valider avec re-validation Walk-Forward + Monte Carlo + Stress + Rolling.
- Le mode P&L (Backtest ou FAO/Futures) du dropdown global est respecte a l'affichage : un bandeau MODE FUTURES apparait le cas echeant.
- Le scan ne reconnait que les fichiers nommes optimization_report_*.json ; d'autres JSON ne seront pas listes.
- Le bouton Analyser le FAO en memoire ne fonctionne que si un rapport FAO est encore charge en memoire (sinon il faut scanner le disque).
- Le mode Full de l'Auto-Optimizer relance Walk-Forward + Monte Carlo + IS/OOS + Stress + Rolling a chaque trial : comptez ~8 a 15 s par trial (100 trials = plusieurs minutes a plus de 20 min).
- Les scores n'inventent rien : si un rapport FAO ne contient pas les champs de validation (WF, MC, stress, rolling), les sous-scores correspondants tombent a 0 et les flags restent non valides.
- Le score composite ne juge que la qualite statistique du backtest : il ne garantit pas la performance future en live.
Quant Optimizer
Le Quant Optimizer prend une config déjà optimisée (issue du Post-FAO Optimizer ou d'un rapport FAO) et lance une boucle d'optimisation bayésienne (Optuna TPE) pour maximiser le score Quant 0-100 produit par QuantAnalysisEngine v2. À chaque essai (trial), il relance un backtest complet puis 8 modules d'analyse ML (GARCH, HMM, VaR, XGBoost, Autoencoder + Drawdown Distribution, Regime-Conditional Perf, Trade Clustering) avec détection automatique de fuite de données (XGBoost leakage). Il propose ensuite des patches actionnables chiffrés à appliquer avant le Validator.
À utiliser après le FAO et le Post-FAO Optimizer, juste avant le Synthetic Validator, pour raffiner une config retenue et vérifier qu'elle tient face aux analyses quantitatives les plus dures. C'est l'étape de durcissement final de la stratégie avant la validation GO/NO-GO.
Un résultat Post-FAO Optimizer en mémoire (source recommandée), OU un rapport FAO en mémoire, OU un fichier optimization_report_*.json sur disque. Aucune connexion courtier requise (tout est calculé sur données historiques re-backtestées).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Source baseline | Choisit d'où vient la config de départ : Best Post-FAO Optimizer (recommandé, 1 seule reco), FAO en mémoire (rapport brut) ou Choisir un report sur disque. |
| Path report | Chemin du fichier optimization_report_*.json à charger (visible seulement si source = report sur disque). |
| Baseline (rank) | Quelle recommandation du rapport utiliser comme point de départ : Rank #1, #2 ou #3 (masqué pour Post-FAO best qui n'a qu'une reco). |
| Cible à maximiser | Métrique optimisée par Optuna. Une seule option exposée dans l'UI : Score Quant global (0-100) (le backend supporte aussi garch_pts/hmm_pts/var_pts/xgb_pts/ae_pts/oos_robust/reco_meta). |
| Trials | Nombre d'essais Optuna (défaut 100, min 10, max 2000, pas 10). Chaque trial ≈ 3-8s → 100 trials ≈ 5-13 min. Au-delà de 100, une confirmation avec estimation de durée s'affiche. |
| Contraintes fundamentals (case à cocher) | Active l'anti-régression : Optuna pénalise (score=0) tout essai qui dégrade Sharpe/PF/DD au-delà des seuils. Cochée par défaut. |
| Sharpe max drop % | Chute de Sharpe tolérée vs baseline avant pénalité (défaut 10, 0-50). |
| PF max drop % | Chute de Profit Factor tolérée vs baseline avant pénalité (défaut 10, 0-50). |
| DD max increase % | Augmentation de drawdown tolérée vs baseline avant pénalité (défaut 20, 0-100, pas 5). |
| Démarrer | Lance l'optimisation Quant (POST /api/quant_optimizer/start) et démarre le suivi de progression. |
| Stop | Demande l'arrêt de l'optimisation en cours (POST /api/quant_optimizer/stop). |
| Charger un résultat Quant (.json) | Recharge un résultat Quant sauvegardé sans relancer l'optimisation ; « Appliquer la config » reste fonctionnel ensuite. |
| Appliquer cette config au backtest | Pousse la best config optimisée dans la config courante du backtest (POST /api/config). |
| Voir patches actionnables | Applique la best config, relance un backtest + une analyse Quant Engine, puis liste les recommandations chiffrées. |
| Sauvegarder (.json) | Télécharge le résultat Quant complet en JSON, rechargeable plus tard (GET /api/quant_optimizer/download_result). |
| Auto-sélection (patches) | Pré-coche les patches priorité haute, et les priorité medium dont le gain de score > 3. |
| Rollback (patches) | Annule les derniers patches appliqués via le snapshot serveur (POST /api/quant/rollback_patches). |
| Cases à cocher des patches | Sélectionne individuellement chaque patch à appliquer. |
| Appliquer les patches sélectionnés | Applique les patches cochés à la config courante avec snapshot pour rollback (POST /api/quant/apply_patches). |
| Re-lancer le Backtest (après patches) | Relance un backtest avec la config patchée sans écraser les patches, puis ouvre la page Backtest. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Trials: x/y + best | Barre de progression : essais terminés sur total, meilleur score courant et temps écoulé. |
| HUD Cinema (BEST / TRIAL / IMPROV / PENALIZED) | Panneau temps réel Optuna : meilleur score, essai courant, amélioration vs baseline, nombre d'essais pénalisés par les contraintes. |
| Logs | Journal texte des essais (setup, tunables, nouveaux best, contraintes calibrées, CPCV). |
| Best score (target) | Score Quant maximal atteint (0-100). Plus haut = meilleur ; >70 = très bon profil quantitatif. |
| Baseline | Score Quant de la config de départ, recalculé par re-backtest pour comparaison équitable. |
| Improvement | Best − Baseline. Vert si positif (gain réel), rouge sinon. 0 affiché si best ≡ baseline (bruit ML ignoré). |
| x/y trials · Ns · trials pénalisés | Essais complétés / total, durée totale, et nombre d'essais rejetés par les contraintes fundamentals. |
| Contraintes fundamentals appliquées | Rappel des seuils et des Sharpe/PF/DD baseline calibrés, plus les métriques live (Sharpe/PF/DD/WR) de la best config. |
| Grade + label | Note qualitative de la best config (A+/A/B+/B vert, C jaune, sinon rouge) avec libellé et nombre de trades du backtest. |
| Forces | Points forts détectés par QuantAnalysisEngine sur la best config. |
| Problèmes détectés | Faiblesses / issues relevées par l'analyse Quant. |
| Recommandations | Conseils textuels issus de l'analyse Quant. |
| Tableau Paramètres optimisés (Param / Baseline / Best / Δ) | Chaque paramètre tuné : valeur baseline, valeur best, et variation en % (vert si haussier, rouge sinon). |
| Patches actionnables (label / priorité / Δ score / groupe / changements) | Liste des recommandations chiffrées : bordure colorée par priorité (haute=rouge, medium=orange, low=gris), gain de score estimé, groupe, et changements de config en clé = valeur. |
| Résumé patches (n / total sélectionné) | Compteur des patches cochés et état prêt-à-appliquer. |
| Résultat application patches | Patches appliqués avec old → new par champ, patches skipped avec raison, et boutons de suite (re-backtest, Validator, Backtest). |
| CPCV (champ du résultat JSON) | Robustesse OOS k-fold purgée du best config : pbo_estimate (taux d'échec OOS, PASS si < 0.50), mean/std/min Sharpe par fold. Visible dans les logs et le JSON exporté. |
Comment faire
- Lance d'abord le Post-FAO Optimizer : la source « Best Post-FAO » est le flux recommandé et le plus cohérent.
- Sauvegarde le résultat en .json : tu pourras le recharger et appliquer la config plus tard sans relancer 5-13 min d'optimisation.
- Active l'Auto-sélection des patches pour ne garder que les priorité haute et les medium à fort gain de score (>3).
- Les patches sont réversibles : le bouton Rollback annule la dernière application grâce au snapshot serveur.
- Pas de connexion courtier : tout est re-backtesté sur données historiques. Chaque trial coûte 3-8s, 100 trials ≈ 5-13 min (confirmation demandée au-delà de 100).
- Si un essai dégrade Sharpe/PF/DD au-delà des seuils, il est pénalisé (score=0) et compté dans « trials pénalisés » : un grand nombre de pénalisés signale des contraintes trop serrées.
- Les essais avec moins de 30 trades reçoivent score=0 (grade F) : une config trop sélective ne progresse pas.
- Sur futures CME, risk_pct est retiré des paramètres tunables (sizing en contrats entiers), donc aucun patch « risk_pct » ne sera proposé.
- Si la best config ≡ baseline, l'improvement affiché est forcé à 0 pour neutraliser le bruit stochastique des modèles ML (HMM/GMM/XGBoost).
- « Voir patches actionnables » enchaîne apply config + backtest + analyse Quant : ça peut prendre plusieurs minutes et requiert au moins 1 trade dans le backtest.
Validator
Le Synthetic Validator est le gate final avant de mettre une strategie en capital reel. Il rejoue ta config contre 3 univers synthetiques ne contenant aucun vrai edge (Block Bootstrap, GBM, Surrogate), genere des centaines de marches factices, et mesure a quel point ta performance reelle est rare face a ce hasard. Il en sort une p-value par methode et un verdict agrege GO / WARN / NO-GO. Verdict plus exigeant que le Quant Optimizer car il teste l'edge sous 3 angles tres differents avec correction Bonferroni.
A utiliser tout a la fin du pipeline d'optimisation, une fois que tu as une config best (issue du backtest courant ou d'un report FAO) et avant de la deployer en live. C'est l'etape qui te dit si ton edge est probablement reel ou si c'est de l'overfit / data-snooping.
Une config exploitable : soit la config courante du backtest, soit un report FAO sur disque (optimization_report_*.json). Les donnees historiques du symbole/timeframe doivent etre chargeables (minimum 200 barres) et la config doit produire au moins un trade reel.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Source de la config | Choisit d'ou vient la config a valider : Config courante (backtest) ou Report FAO sur disque. Affiche/masque les champs Path et Rank. |
| Path report | Chemin du fichier report FAO (optimization_report_*.json) a charger. Visible seulement si la source est Report FAO. |
| Rank | Quelle recommandation du report valider : Rank #1, #2 ou #3. Visible seulement en mode Report FAO. |
| Block Bootstrap (case a cocher) | Active l'univers nul qui preserve le momentum local (autocorrelation par blocs). Coche par defaut. |
| GBM (case a cocher) | Active l'univers marche efficient : marche aleatoire log-normale calibree (hypothese nulle H0). Coche par defaut. |
| Surrogate (case a cocher) | Active l'univers a phase randomisee : meme spectre que le reel mais causalite detruite. Coche par defaut. |
| Chemins synthetiques (n_paths) | Nombre de marches factices generes par methode (50 a 1000, defaut 200, pas de 50). Plus = p-value plus precise mais plus lent. Recommande 200-500. |
| Verifier la densite de trades (case a cocher, optionnel) | Active un garde-fou de robustesse temporelle : verifie que les trades sont repartis regulierement et non concentres sur un seul regime favorable. |
| Valeur de densite (trades / periode) | Seuil minimal de trades par periode attendu (0.1 a 200). Compare a la densite reelle des trades. |
| Periode de densite | Unite du seuil de densite : Jour, Semaine (defaut) ou Mois. |
| Auto TF (bouton) | Pre-remplit la valeur et la periode de densite recommandees selon le timeframe de la config courante (table SV_DENSITY_BY_TF). |
| Lancer la validation (bouton) | Demarre le run (POST /api/validator/start). Au-dela de 200 chemins, demande une confirmation avec estimation de duree. |
| Stop (bouton) | Demande l'arret du run en cours (POST /api/validator/stop, arret soft a la prochaine verification de chemin). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Verdict global (GO / WARN / NO-GO) | Verdict agrege. GO = 3/3 methodes passent le seuil Bonferroni strict (p <= 0.0167) → edge confirme, prete pour le live. WARN = 2/3 passent OU les 3 passent le seuil moitie (p <= 0.0333) → edge probable mais a confirmer en paper trading. NO-GO = sinon → risque d'overfit/data-snooping, retour a l'optimisation. |
| Label + Summary du verdict | Phrase de verdict et resume detaille expliquant le compte des methodes passees, le seuil Bonferroni applique, et la recommandation concrete. |
| Methodes pass (p<=0.05) | Compteur n_passed_go / n_total : nombre de methodes ayant passe le seuil GO (Bonferroni 0.0167) sur le nombre total evaluees. |
| P-value moyenne | Moyenne des p-values des methodes. Plus c'est bas, plus la performance reelle est rare face au hasard (edge probable). Repere : <= 0.0167 est strict. |
| % wins moyen | Pourcentage moyen de chemins synthetiques battus par le reel. Plus c'est haut (proche 100%), mieux c'est. |
| Carte par methode : PASS / WARN / FAIL + p | Pour chaque methode, statut et p-value affiches. Code UI : p <= 0.05 = PASS (accent), p <= 0.10 = WARN (orange), sinon FAIL (rouge). |
| Chemins reussis (n_successful / n_paths) | Nombre de backtests synthetiques aboutis sur le total demande, avec duree de la methode en secondes. |
| Le reel bat X% des synthetiques | pct_real_wins : part des chemins synthetiques dont le Sharpe est inferieur au Sharpe reel. |
| Sharpe reel | Sharpe approxime obtenu sur les vraies donnees historiques (reference a comparer aux synthetiques). |
| Sharpe synth p50 | Mediane du Sharpe sur l'univers synthetique : le Sharpe typique d'une strat sans edge dans cet univers. |
| Sharpe synth p95 | 95e percentile du Sharpe synthetique : si ton Sharpe reel le depasse, ta perf est dans le top 5% du hasard. |
| Sigma (sigma) | Ecart-type du Sharpe synthetique : mesure la dispersion du hasard dans cet univers. |
| Carte Densite | Si la verification densite est activee : verdict OK / WARN / FAIL, densite reelle vs seuil par periode, nombre de trades et span en jours. FAIL/WARN peut downgrader le verdict global d'un niveau. |
| Barre de progression + logs | Avancement global (%), methode courante, temps ecoule, et journal des chemins traites en temps reel pendant le run. |
| Gate Cinema (3 GATES) | Vue animee optionnelle affichant le verdict en direct, le compteur GATES (x/3) et la p-value moyenne (AVG p) via le bus SSE. |
| Gates Iceberg (Beta L1 / PBO L3) | Gates institutionnels additionnels calcules cote serveur si dispo : Asset Beta (|beta| eleve = pari directionnel, pas de l'alpha) et PBO via CPCV du Quant Optimizer (overfitting). Ils ne peuvent que downgrader le verdict, jamais le remonter. |
Comment faire
- Vise GO sur les 3 methodes : un edge qui survit a bootstrap, GBM et surrogate a peu de chances d'etre du bruit.
- Active la verification de densite avec Auto TF pour eliminer les setups regime-locked qui tradent en pic puis meurent.
- Augmente n_paths (300-500) pour une p-value plus fiable quand le verdict est limite (WARN), au prix du temps de calcul.
- Apres un GO, enchaine sur Reco Finale qui agrege ce verdict avec les autres optimizers avant le deploiement.
- Le seuil GO est Bonferroni-corrige (p <= 0.0167, pas 0.05) : plus strict que ce que les libelles PASS/WARN par carte (bases sur 0.05/0.10) laissent croire — c'est volontaire pour limiter les faux positifs sur 3 tests.
- Si la config ne produit aucun trade reel ou moins de 200 barres de donnees, la validation echoue avant de commencer.
- Un run >= 200 chemins x 3 methodes peut prendre plusieurs minutes (estimation ~n_paths x 0.4s x nb methodes) ; le bouton demande confirmation.
- Les gates Iceberg (Beta, PBO) et la densite ne peuvent que degrader le verdict (GO->WARN->NO-GO), jamais le remonter.
- Le verdict ne preserve pas un edge a travers le temps : c'est un test statistique sur les donnees fournies, pas une garantie de performance future en live.
Sensitivity 2D
La Sensitivity Heatmap 2D prend la config de la baseline pipeline courante et rejoue un backtest pour chaque combinaison de 2 paramètres que tu balaies sur une grille (ex. sl_atr_mult en lignes × tp_param en colonnes). Chaque case = 1 backtest, coloriée selon son score (palette violet→bleu→vert→jaune). PROTOS analyse ensuite la forme de la grille autour du meilleur point (le peak) et rend un verdict : Plateau robuste, Peak raisonnable ou Pic suspect. Tu peux alors appliquer le centre du plateau (plus stable) ou le peak exact à la baseline pipeline.
À utiliser après un FAO ou une sélection Pareto, pour vérifier que ton optimum (rank-1) est posé sur une zone verte continue et pas sur une case verte isolée au milieu du rouge. C'est le test anti-overfit : un edge qui s'effondre dès qu'on bouge légèrement 2 paramètres ne survivra pas en live.
Une config disponible via le sélecteur de source (current|fao|post_fao|quant) et les données du symbole/TF de cette config (≥ 200 bougies, sinon erreur Données insuffisantes). Aucune connexion courtier requise. Pour les sources fao/post_fao/quant il faut avoir lancé l'étape correspondante au préalable.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Sélecteur de source (data-source-selector "sens") | Choisit quelle config sert de baseline au sweep : current, fao, post_fao ou quant. Si différent de current, le backend résout la cfg via la source au lieu du _cfg local. |
| Paramètre A (lignes) — select sens-param-a | Paramètre balayé en lignes de la grille. Choix : sl_atr_mult, tp_param, risk_pct, atr_len, be_trig_pct, be_off_pct_tp, be_trail_trig_pct, sl_struct_atr_mult, sl_ticks_offset, sl_fixed_gap, vol_sizing_atr_k, kelly_fraction, exit_time_bars. Défaut : sl_atr_mult. |
| min A — input sens-a-min | Borne basse de la plage du paramètre A. Défaut 0.5. |
| max A — input sens-a-max | Borne haute de la plage du paramètre A. Défaut 2.5. Doit être > min. |
| n_steps A — input sens-a-n | Nombre de valeurs testées entre min et max (linspace). Défaut 11. Forcé à ≥ 2. |
| Paramètre B (colonnes) — select sens-param-b | Paramètre balayé en colonnes de la grille. Mêmes choix que A. Défaut : tp_param. Doit être différent de A. |
| min B — input sens-b-min | Borne basse de la plage du paramètre B. Défaut 1.0. |
| max B — input sens-b-max | Borne haute de la plage du paramètre B. Défaut 4.0. Doit être > min. |
| n_steps B — input sens-b-n | Nombre de valeurs testées pour B (linspace). Défaut 11. Forcé à ≥ 2. |
| ▶ Lancer le sweep (bouton sens-run-btn) | Lance le balayage 2D asynchrone (POST /api/sensitivity/2d_sweep) puis affiche la progression. Refuse si A=B, si une plage est invalide, ou si n_steps A × n_steps B > 400 cellules. |
| Annuler (bouton) | Demande l'arrêt du sweep en cours (POST /api/sensitivity/cancel). Le balayage s'interrompt à la prochaine cellule. |
| ▶ Baseline pipeline / Appliquer le centre du plateau (bouton sensitivityApplyCenter) | Applique à la baseline pipeline la moyenne des valeurs (A,B) de toutes les cellules > 75% du max — option recommandée car plus stable que le peak. Met à jour la config via POST /api/config. |
| ○ Peak (à tes risques) / sensitivityApplyPeak (bouton) | Applique à la baseline pipeline les valeurs exactes (A,B) de la cellule du peak. Marqué à risque d'overfit si le pic est isolé. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Progression (sens-progress) | Pourcentage d'avancement et cellule en cours (ex. 47% · sl_atr_mult=1.2, tp_param=2.5), rafraîchi par polling toutes les 600 ms. |
| Verdict / classification | Étiquette de robustesse : Plateau robuste (setup généralisable, vert #01C87D), Peak raisonnable (robustesse moyenne, orange #d97706) ou Pic suspect (overfit probable, rouge #ef4444). Règle : Plateau si plateau_ratio ≥ 0.30 et neighbor_cv < 0.15 ; Peak raisonnable si plateau_ratio ≥ 0.10 et neighbor_cv < 0.30 ; sinon Pic suspect. |
| Peak score + position | Valeur du score maximal de la grille et les valeurs (param_a, param_b) où il est atteint. La case du peak est entourée d'un cadre rouge sur la heatmap. |
| Plateau ratio | Fraction des cellules valides dont le score est ≥ 90% du peak. Plus c'est haut, plus la zone gagnante est large (robuste). À lire > 30% pour un plateau franc. |
| Neighbor CV (3×3) | Coefficient de variation (écart-type / moyenne) du score dans le voisinage 3×3 autour du peak. Bas = plat/robuste, haut = pointu/fragile. |
| Score range | Score minimum → maximum observés sur l'ensemble des cellules valides (amplitude du paysage de scores). |
| Cellules valides | Nombre de cellules ayant produit des trades / un score fini sur le total de cellules de la grille (les cases sans trade sont NaN). |
| Heatmap (score) | Grille colorée 800×500 : lignes = valeurs du paramètre A, colonnes = paramètre B. Palette type viridis violet→bleu→teal→vert→jaune, score normalisé sur le min/max de la grille. Score affiché en chiffre dans la case si la place le permet ; cases sans résultat en gris foncé ; peak cerclé de rouge. |
| Centre du plateau (carte Appliquer au pipeline) | Valeurs (A,B) = moyenne des cellules > 75% du max, indiquées comme choix recommandé à appliquer à la baseline. |
| Peak exact (carte Appliquer au pipeline) | Valeurs (A,B) de la cellule du peak, avec avertissement d'overfit si pic isolé (ou OK si centre = peak en cas de plateau). |
| Données calculées par cellule (côté backend) | Pour chaque cellule le moteur calcule et renvoie : score, sharpe_approx, profit_factor, max_drawdown_%, trades. Seul le score pilote la couleur et le verdict côté UI. |
Comment faire
- Préfère toujours le centre du plateau au peak exact : c'est la moyenne des cellules > 75% du max, donc moins sensible au bruit qu'un pic ponctuel.
- Commence large (min/max espacés) pour situer la zone verte, puis resserre les plages pour zoomer dessus.
- Une grande zone verte continue = robuste ; une seule case verte au milieu du rouge = overfit (la moindre dérive du marché te tue).
- Plateau ratio > 30% et Neighbor CV < 0.15 correspond exactement au verdict Plateau robuste — sers-t'en comme seuils de lecture.
- Le sweep ré-utilise les signaux pré-calculés une seule fois, donc balayer des params SL/TP/BE/risk est rapide même sur grande grille.
- La grille est plafonnée à 400 cellules (n_steps A × n_steps B) : au-delà, le lancement est refusé.
- param_a et param_b doivent être différents et chaque plage doit avoir min < max (sinon erreur côté UI et backend).
- Seuls les paramètres qui ne touchent pas les signaux sont fiables ici : les signaux et filtres sont calculés UNE fois sur la config de base, donc balayer un paramètre qui modifie les signaux ne serait pas reflété (la liste proposée — SL/TP/BE/risk/sizing/exit_time — respecte cette contrainte).
- Il faut ≥ 200 bougies de données pour la config choisie, sinon erreur Données insuffisantes.
- Un seul sweep à la fois : un second lancement renvoie une erreur 409 (sweep déjà en cours).
- Les cellules sans trade donnent un score NaN (case grise) et sont exclues du calcul de robustesse.
- neighbor_cv peut être absent (None) si le voisinage 3×3 a moins de 2 cellules valides ; le verdict retombe alors sur le seul plateau_ratio.
- Appliquer (centre ou peak) écrase les 2 paramètres dans la baseline pipeline, qui sert d'input à Post-FAO, Quant, Synth et Reco — pense à le faire en connaissance de cause.
Pareto Front
Cette page est une analyse post-mortem des candidats testes par ton dernier Full Auto Optimizer (FAO), conserves en memoire serveur. Elle ne relance aucun backtest : elle relit les resultats FAO et calcule la frontiere de Pareto (l'ensemble des candidats non-domines). Un candidat est non-domine si aucun autre n'est strictement meilleur sur les 4 objectifs a la fois. Le tout est affiche dans un scatter plot (2 axes au choix) et un tableau triable, avec un bouton pour adopter un candidat comme baseline du pipeline.
Apres avoir lance un FAO, quand tu veux choisir un compromis plutot que le rank-1 scalaire : par exemple un candidat avec un Sharpe legerement plus bas mais un drawdown divise par deux, plus deployable selon tes contraintes de risque.
Avoir lance un Full Auto Optimizer (FAO) au prealable dans la session courante : le rapport FAO (cle pareto_candidates, top 100 par score) doit etre present en memoire serveur. Sans FAO, la page affiche 'Aucun candidat FAO disponible'.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Axe X (select pareto-x) | Choisit la metrique de l'axe horizontal du scatter. Options : Max DD % (min), Trades (max), Win Rate % (max), Profit Factor (max). Defaut : Max DD %. N'affecte que l'affichage du nuage de points, pas le calcul du front. |
| Axe Y (select pareto-y) | Choisit la metrique de l'axe vertical du scatter. Options : Sharpe (max), Calmar (max), Total PnL % (max), Expectancy R (max). Defaut : Sharpe. N'affecte que l'affichage, pas le calcul du front. |
| Recalculer le front (bouton paretoRefresh) | Appelle POST /api/pareto/front et recalcule la frontiere de Pareto sur les 4 objectifs fixes (Sharpe max, Max DD % min, N trades max, Calmar max), puis redessine le scatter et le tableau. C'est aussi declenche automatiquement a l'ouverture de la page. |
| Baseline pipeline (bouton par ligne, paretoApplyCandidate) | Pour un candidat du tableau : POST sa config sur /api/config pour en faire la baseline du pipeline (utilisee par Backtest, Post-FAO, Quant, Synth, Reco Finale), recharge la config cote client et rafraichit la banniere de contexte. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Statut (pareto-status) | Texte a droite de la barre de boutons. Affiche 'Calcul en cours...' puis 'n_pareto/n_candidates non-domines', soit le nombre de candidats sur le front sur le total de candidats analyses. |
| Scatter plot (canvas pareto-scatter) | Nuage de points : chaque point = 1 candidat FAO, positionne selon les axes X/Y choisis. Point vert (accent), grand = sur la frontiere Pareto (non-domine). Point gris, petit = domine. Une ligne relie les points du front tries par X. Les axes s'auto-echellent (+/- 5% de marge). |
| # (rank) | Rang du candidat dans le classement FAO par score scalaire (1 = meilleur score FAO). Sert d'identifiant pour le bouton Baseline. |
| Mode (core_mode_name) | Nom du core mode / strategie du candidat (gere aussi les user modes 200-299). |
| Sharpe | Ratio de Sharpe (approx). Objectif a maximiser. 2 decimales. |
| DD % | Max drawdown en %. Affiche en rouge. Objectif a minimiser (plus bas = mieux). 1 decimale. |
| Trades | Nombre de trades. Objectif a maximiser (un edge sur trop peu de trades est peu fiable). Entier. |
| PF | Profit Factor (gains bruts / pertes brutes). > 1 = profitable. 2 decimales. Selectionnable comme axe X mais non inclus dans les 4 objectifs du front. |
| Calmar | Ratio Calmar (rendement / max drawdown). Objectif a maximiser. 2 decimales. |
| PnL % | Total PnL en %. Vert si positif, rouge si negatif. 1 decimale. Selectionnable comme axe Y mais non inclus dans les 4 objectifs du front. |
| WR % | Win rate en %. 1 decimale. Selectionnable comme axe X mais non inclus dans les 4 objectifs du front. |
| EV R | Expectancy en R (gain moyen attendu par trade en multiples de risque). 3 decimales. Selectionnable comme axe Y mais non inclus dans les 4 objectifs du front. |
| Action (Baseline pipeline) | Bouton qui adopte ce candidat comme config baseline du pipeline. Toast de confirmation avec Sharpe et DD du rank applique. |
Comment faire
- Le rank-1 FAO (meilleur score scalaire) n'est pas toujours le meilleur choix : un rank-3 avec un Sharpe -10% mais un DD divise par 2 peut etre plus deployable selon ton appetit pour le risque.
- Les selecteurs d'axes ne changent que la projection visuelle : la frontiere de Pareto reste calculee sur les 4 objectifs fixes (Sharpe, DD, Trades, Calmar), peu importe ce que tu mets en X/Y.
- Le tableau ne montre que les candidats du front (non-domines), tries par Sharpe decroissant. Les candidats domines n'apparaissent que comme points gris dans le scatter.
- Aucun re-backtest : c'est strictement une relecture du dernier rapport FAO en memoire. Si aucun FAO n'a tourne dans la session, la page affiche 'Aucun candidat FAO disponible' (HTTP 404).
- Le bouton 'Baseline pipeline' lit
cand.config, mais les candidats slim serialises par le FAO n'exposent quecore_mode,sl_atr_mult,tp_param,risk_pct(et metrics) et PAS de cleconfigcomplete : le clic risque donc d'afficher 'Candidat introuvable ou config absente' au lieu d'appliquer la config. - Seuls les 100 meilleurs candidats FAO par score sont conserves pour l'analyse Pareto : un candidat hors top-100 ne sera jamais affiche meme s'il etait Pareto-optimal.
- PF, PnL %, WR % et EV R sont disponibles comme axes du scatter mais ne font PAS partie des 4 objectifs de non-dominance : un point peut etre 'Pareto-optimal' sur ces 4 axes fixes tout en etant mauvais sur une metrique d'axe choisie.
- Cette page (page-pareto, /api/pareto/front) est distincte de l'autre outil Pareto interne (runPareto sur /api/robustness/pareto) base sur un resultat d'optimizer differents ; ne pas les confondre.
Cross-TF Stability
Le Cross-TF Stability Analyzer prend la configuration active de ta strategie (mêmes paramètres SL/TP/risk_pct…) et la rejoue à l'identique sur plusieurs timeframes adjacents (M5, M15, M30, H1, H4…). Pour rester sur la même durée calendaire, il ajuste automatiquement le nombre de bougies (n_bars) proportionnellement à la durée d'une bougie de chaque TF. Il calcule ensuite le Sharpe (et d'autres métriques) sur chaque TF, puis émet un verdict de stabilité : STABLE, DRIFTING, TF_SPECIFIC ou DEAD.
À utiliser comme test de robustesse après un backtest ou une optimisation (FAO/Quant), avant de faire confiance à un setup. Si l'edge ne survit que sur un seul timeframe, c'est un signal fort d'overfitting timeframe-specific.
Une configuration de strategie valide doit exister (cfg courante du backtest UI, ou un gagnant FAO/Post-FAO/Quant). Les données historiques des timeframes testés doivent être disponibles localement, sinon le TF est marqué en erreur. Aucune connexion courtier ni flux live requis.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Timeframes à tester (cases M1, M5, M15, M30, H1, H4, D1) | Sélection multiple des timeframes sur lesquels rejouer le setup. Par défaut M5/M15/M30/H1/H4 sont cochés ; M1 et D1 sont décochés. Minimum 2 TFs, maximum 7. |
| Source baseline (current / fao / post_fao / quant) | Choisit de quelle étape du pipeline provient la configuration rejouée : Cfg courante (backtest UI), FAO Rank #1, Post-FAO Optimizer winner ou Quant Optimizer winner. Les sources non encore lancées sont désactivées et marquées non lancé. |
| Lancer analyse (crossTfRun) | Démarre le sweep multi-TF en arrière-plan ; envoie POST /api/cross_tf/run avec la cfg et la liste de TFs. Le bouton se désactive pendant le calcul. |
| Annuler (crossTfCancel) | Demande l'arrêt du sweep en cours (POST /api/cross_tf/cancel) ; le moteur s'arrête à la fin du TF en cours de traitement. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Progression (xtf-progress) | Pourcentage d'avancement et TF en cours de backtest pendant le sweep (ex : 60% · backtest TF=H1…). |
| Verdict / classification | Étiquette globale colorée : STABLE (vert, edge sur ≥3 TFs et CV<0.40), DRIFTING (orange, edge présent mais décline), TF_SPECIFIC (rouge, edge concentré sur 1 seul TF = probable overfit) ou DEAD (gris, aucun TF avec edge). Vise STABLE. |
| Détail verdict | Rappelle le nombre de TFs balayés, la durée du sweep en secondes et le TF de base (base_tf). |
| TFs valides | Nombre de timeframes ayant produit un Sharpe exploitable (non NaN). |
| TFs Sharpe>0.5 | Nombre de timeframes dont le Sharpe dépasse 0.5 ; plus c'est élevé, plus l'edge généralise. |
| Sharpe moyen | Moyenne des Sharpe sur les TFs valides. |
| Sharpe std | Écart-type des Sharpe entre TFs ; faible = edge homogène. |
| CV (cross-TF) | Coefficient de variation (std/|moyenne|) des Sharpe. Repère clé : CV<0.40 est requis pour le verdict STABLE ; plus c'est bas, plus l'edge est régulier. |
| Peak isolation | Écart entre le meilleur Sharpe et le 2e meilleur. Une valeur >1.0 (avec au plus 1 TF >0.5) signale un pic isolé = edge TF-specific suspect. |
| Graphique Sharpe par timeframe (xtf-bars) | Histogramme du Sharpe par TF avec ligne de zéro. Barres vertes/accent si Sharpe>1, orange si >0.3, rouge sinon. Un profil uniforme = edge stable ; une seule barre haute = TF-specific. |
| Colonne TF | Timeframe de la ligne (tableau Détails par timeframe). |
| Colonne Bars | Nombre de bougies utilisées pour ce TF, ajusté pour couvrir la même durée calendaire (plancher 500, plafond 200 000). |
| Colonne Trades | Nombre de trades générés sur ce TF. |
| Colonne Sharpe | Sharpe approximé du TF, coloré : vert si >1, jaune si >0.3, rouge sinon. |
| Colonne PF | Profit factor (gains bruts / pertes brutes). |
| Colonne WR % | Taux de trades gagnants en pourcentage. |
| Colonne DD % | Drawdown maximum en pourcentage (affiché en rouge). |
| Colonne PnL % | PnL total en pourcentage (vert si positif, rouge sinon). |
| Colonne Score | Score composite interne du backtest pour ce TF. |
| Lignes en erreur | Si un TF n'a pas assez de données (<200 bars), 0 trade, ou une exception, la ligne est grisée et affiche le message d'erreur au lieu des métriques. |
Comment faire
- Un verdict STABLE demande ≥3 TFs avec Sharpe>0.5 ET un CV<0.40 : c'est exigeant, c'est voulu.
- Surveille la Peak isolation : si une seule barre domine nettement (>1.0 d'écart), le setup est probablement overfit sur ce TF.
- Pour gagner du temps, évite M1 (trop bruité) et D1 (trop peu de bougies) sauf besoin précis — ils sont décochés par défaut pour cette raison.
- Le nombre de bougies (n_bars) est recalé par TF (plancher 500, plafond 200 000) pour rester sur la même durée calendaire : ne t'étonne pas que la colonne Bars diffère beaucoup entre TFs.
- Un TF sans data suffisante (<200 bars), sans trade, ou qui plante n'est pas inclus dans le verdict et apparaît en ligne grisée avec un message d'erreur.
- Un seul sweep peut tourner à la fois : relancer pendant un calcul renvoie une erreur 409.
- L'Annulation n'est pas instantanée : le moteur termine le TF en cours avant de s'arrêter.
- Seuls les TFs reconnus (M1, M5, M15, M30, H1, H4, D1) sont acceptés côté serveur ; tout autre est ignoré.
Cross-Symbol
Cross-Symbol Universal Discovery prend la configuration active de ta strategie (timeframe, SL/TP, risk_pct, filtres...) et la rejoue telle quelle sur une liste de plusieurs symboles (jusqu'a 30). Pour chaque symbole, il recharge les donnees, regenere les signaux, backteste et calcule les metriques (Sharpe, PF, drawdown, etc.). Il en deduit un verdict d'universalite qui classe l'edge en UNIVERSAL, CLASS_SPECIFIC, SYMBOL_SPECIFIC ou DEAD. L'idee : un edge vraiment solide doit fonctionner sur la plupart des FX majors, pas seulement sur EURUSD.
A utiliser en fin de pipeline d'optimisation, une fois une config prometteuse trouvee (backtest, FAO, Post-FAO ou Quant), pour valider qu'elle generalise avant de risquer du capital reel. C'est un garde-fou anti-overfit : si l'edge ne tient que sur le symbole d'origine, le verdict le revele.
Une configuration de strategie valide (cfg courante du backtest, ou issue de FAO/Post-FAO/Quant via le selecteur de source) et des donnees historiques disponibles localement pour chaque symbole teste. Les symboles sans data (ou moins de 200 barres) sont marques en erreur. Aucune connexion courtier requise.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Preset (xs-preset) | Liste deroulante qui pre-remplit le champ Symboles avec une selection curee : FX Majors (7 paires), FX Crosses (8 paires), Metaux (2), Indices US (4), Indices globaux (5), Mix diversifie (8), ou Custom (edition libre de la liste). |
| Symboles (xs-symbols) | Zone de texte ou tu listes les instruments a tester, un par ligne (separateurs espaces/virgules/points-virgules acceptes), maximum 30. Minimum 2 requis pour lancer. |
| Source baseline (selecteur de source, scope xs) | Choisit de quelle etape du pipeline provient la config rejouee : current (cfg backtest courante), fao, post_fao ou quant. Les sources non lancees sont desactivees. L'analyse agit sur la cfg de l'etape choisie. |
| Lancer analyse (xs-run-btn) | Bouton qui demarre le sweep multi-symbole en tache de fond (POST /api/cross_symbol/run). Bloque pendant l'execution, avec suivi de progression. |
| Annuler | Demande l'arret du sweep en cours (POST /api/cross_symbol/cancel) ; le moteur s'arrete au prochain symbole. |
| Progression (xs-progress) | Indicateur texte affichant le pourcentage d'avancement et le symbole en cours de backtest (mis a jour toutes les 700 ms). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Verdict / classification (xs-verdict-headline) | Le titre du verdict d'universalite avec sa couleur. 4 classes possibles : UNIVERSAL (vert, positif sur au moins 60% des symboles, edge generalisable), CLASS_SPECIFIC (orange, l'edge ne tient que sur une ou plusieurs classes completes ayant au moins 60% de positifs), SYMBOL_SPECIFIC (rouge, edge sporadique, probable overfit ticker), DEAD (gris, positif sur moins de 20%, pas d'edge reel). |
| Detail du verdict (xs-verdict-detail) | Rappelle le nombre total de symboles balayes, le temps ecoule en secondes et le symbole de base (base_symbol) sur lequel la config a ete construite. |
| Symboles valides | Nombre de symboles testes sans erreur sur le total (n_valid/n_total). Un ecart important signale des symboles sans data. |
| Positifs (Sharpe>0.5) | Nombre de symboles dont le Sharpe approche depasse 0.5 ; c'est le compteur cle qui pilote la classification. |
| Marginaux (0<Sharpe<=0.5) | Nombre de symboles a peine positifs : l'edge existe mais reste faible et fragile dessus. |
| Ratio positif | Pourcentage de symboles positifs parmi les valides (n_positive/n_valid). >=60% donne UNIVERSAL, <20% donne DEAD. |
| Sharpe moyen (mean_sharpe) | Sharpe moyen sur tous les symboles valides : indicateur global de la qualite de l'edge. |
| Sharpe std (std_sharpe) | Ecart-type des Sharpe : plus il est faible, plus l'edge est stable et homogene d'un symbole a l'autre. |
| Par categorie (xs-categories) | Decomposition du nombre de positifs et du Sharpe moyen par classe d'actifs detectee (fx, metals, indices, crypto, commodities, other). Utile pour voir si l'edge se concentre sur une seule famille. |
| Graphique Sharpe par symbole (xs-bars) | Histogramme du Sharpe de chaque symbole, trie du meilleur au pire. Code couleur : vert/accent si Sharpe>1, vert clair si >0.5, orange si >0, rouge si negatif. |
| Tableau Details par symbole — Symbole | Le ticker teste ; les lignes en erreur (data insuffisante, 0 trade) apparaissent grisees avec le message d'erreur. |
| Tableau — Cat. | Categorie d'actif detectee heuristiquement d'apres le nom du symbole. |
| Tableau — Trades | Nombre de trades generes par le backtest sur ce symbole. |
| Tableau — Sharpe | Sharpe approche du symbole (colonne de tri par defaut, du plus haut au plus bas). Colore : vert >1, vert clair >0.5, jaune >0, rouge si negatif. |
| Tableau — PF | Profit factor (gains bruts / pertes brutes) ; >1 signifie strategie gagnante sur ce symbole. |
| Tableau — WR % | Win rate, pourcentage de trades gagnants. |
| Tableau — DD % | Drawdown maximum en pourcentage (affiche en rouge) ; plus bas est mieux. |
| Tableau — PnL % | Profit/perte total en pourcentage (vert si positif, rouge si negatif). |
| Tableau — Score | Score composite du moteur de backtest pour ce symbole. |
Comment faire
- Teste d'abord un preset d'une seule classe (ex. FX Majors) : un edge construit sur EURUSD devrait au minimum tenir sur les autres majors.
- Utilise le Mix diversifie (8) pour un test de robustesse cross-classes plus severe (FX + metaux + indices + crypto + petrole).
- Regarde le Sharpe std : un ecart-type eleve avec un Sharpe moyen correct trahit un edge qui depend de quelques symboles chanceux.
- La Source baseline te permet de valider directement une config sortie de FAO/Post-FAO/Quant sans la recopier manuellement.
- Le sweep utilise un Sharpe approche (sharpe_approx) issu du backtest rapide, pas un Sharpe exact ; lis-le comme un indicateur relatif de classement.
- Les symboles sans donnees locales ou avec moins de 200 barres sont marques en erreur et ne comptent pas dans les symboles valides — verifie que ta data est presente pour les tickers du preset.
- Maximum 30 symboles : au-dela la liste est tronquee ; minimum 2 sinon le lancement est refuse.
- Un seul sweep peut tourner a la fois : relancer pendant l'execution renvoie une erreur (409 Sweep deja en cours).
- Le seuil UNIVERSAL est fixe a 60% de symboles avec Sharpe>0.5, DEAD a moins de 20% — ces seuils sont codes , pas reglables depuis l'UI.
- La detection de categorie est heuristique (basee sur le nom) ; un symbole au nommage non standard peut tomber dans 'other' et fausser la decomposition par categorie.
Pairs Trading
Module de stat arbitrage (Iceberg L4) qui scanne un univers de symboles pour repérer les paires cointégrées (test Engle-Granger / ADF), mesure leur vitesse de retour à la moyenne (half-life OU), calcule un ratio de couverture β (statique OLS ou dynamique Kalman), puis backteste une stratégie de mean reversion sur z-score : on entre contre la tendance quand l'écart est extrême (|z| ≥ z_entry) et on sort quand il revient vers 0 (|z| ≤ z_exit). Tout tourne sur données historiques chargées via la même source que le Backtest principal.
À utiliser quand tu veux exploiter une relation statistique entre deux instruments (ex : EURUSD/GBPUSD, ES/NQ, BTCUSD/ETHUSD) plutôt qu'une direction de marché. Lance d'abord Discovery sur un univers pour trouver les meilleures paires, puis Analyze/Backtest la paire retenue avant de l'industrialiser.
Au moins 2 symboles dont les données chargent dans ta source (Databento, MT5 ou LSE). Chaque symbole non fourni par ta source est ignoré silencieusement ; il faut ≥ 2 symboles avec ≥ 60 barres communes. statsmodels est requis côté serveur (cointégration). Si un symbole charge dans Backtest, il chargera ici.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Symboles (un par ligne, max 30) | Liste des symboles à scanner en Discovery (textarea pairs-disc-symbols). Toutes les paires possibles N×(N-1)/2 sont testées. Défaut : 7 paires FX majeures. |
| Timeframe | Unité de temps des barres pour Discovery, Analyze et Backtest (M15 / H1 / H4 / D1). Défaut H1. |
| N bars | Nombre de barres d'historique à charger par symbole (500 à 20000, défaut 2000). |
| HL min (bars) | Half-life minimale acceptée. Sous cette valeur le retour à la moyenne est trop rapide et bruité. Défaut 5. Borne aussi la zone tradable d'Analyze/Backtest. |
| HL max (bars) | Half-life maximale acceptée. Au-delà, retour trop lent, capital bloqué trop longtemps. Défaut 50. |
| Top N | Nombre maximum de paires candidates retournées par Discovery, triées par score (3 à 50, défaut 10). |
| Significance ADF | Seuil de p-value du test de cointégration ADF. Une paire est cointégrée si p ≤ ce seuil (0.01 à 0.10, défaut 0.05). |
| Discover (bouton) | Lance le scan multi-symbol (pairsDiscover → POST /api/pairs/discover) et remplit le tableau des paires candidates. |
| Symbol A | Premier symbole de la paire à analyser/backtester. Pré-rempli par le bouton Sélectionner du tableau Discovery. |
| Symbol B | Second symbole de la paire. Doit être distinct de Symbol A. |
| Hedge method | Méthode de calcul du ratio de couverture β. OLS = β statique (régression). Kalman = β dynamique qui s'adapte aux régimes. |
| Kalman δ | Paramètre du filtre de Kalman : δ ≪ 1 = β stable, δ → 1 = β réactif. Défaut 1e-4. Utilisé uniquement si Hedge method = Kalman. |
| Z window | Fenêtre glissante (en barres) pour calculer le z-score du spread (20 à 500, défaut 60). |
| z_entry | Seuil d'entrée : on prend un trade contre-tendance dès que |z| ≥ cette valeur (0.5 à 5.0, défaut 2.0). |
| z_exit | Seuil de sortie : on clôture quand |z| ≤ cette valeur, le retour à la moyenne étant atteint (0.0 à 3.0, défaut 0.5). |
| Risk % | Pourcentage de risque par trade utilisé dans le sizing du backtest (0.1 à 5.0, défaut 1.0). |
| Analyze (bouton) | Teste la cointégration de la paire (pairsAnalyze → POST /api/pairs/analyze) et affiche β, α, half-life, statut tradable, sans backtester. |
| Backtest (bouton) | Lance le backtest complet de la paire (pairsBacktest → POST /api/pairs/backtest) : refuse si la paire est non-tradable, sinon génère signaux, métriques et courbe d'equity. |
| Sélectionner (par ligne du tableau) | Copie Symbol A et Symbol B d'une paire candidate dans les champs Analyze/Backtest. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Tableau Paires candidates — # | Rang de la paire dans le classement par score composite (1 = meilleure). |
| A / B | Les deux symboles de la paire candidate. |
| p-value | p-value du test ADF de cointégration. Plus c'est bas, plus la cointégration est solide ; cointégré si p ≤ Significance ADF. |
| ρ corr | Corrélation des rendements (returns) des deux actifs. Indicatif ; n'entre pas dans la décision tradable mais pèse 30% du score. |
| β | Ratio de couverture (hedge ratio) issu de la régression OLS : combien de B pour couvrir 1 unité de A. |
| HL bars | Half-life Ornstein-Uhlenbeck en barres : temps moyen de retour du spread vers sa moyenne. Idéale entre HL min et HL max. |
| Tradable | ✓ oui si la paire est cointégrée ET half-life dans [HL min, HL max] ; sinon ✗ non. Seules les paires tradables peuvent être backtestées. |
| Score | Score composite 0 à 100 = 0.45×(1−p_value) + 0.30×|corr| + 0.25×ajustement half-life (peak au centre de la zone). Vert ≥ 70, jaune ≥ 50. |
| Analyse cointégration — tradable / cointégré | Verdict TRADABLE (vert) ou NON tradable (rouge), et cointégré / non cointégré avec la p-value. |
| Analyze — β | Hedge ratio OLS de la paire. |
| Analyze — α | Constante (intercept) de la régression du spread. |
| Analyze — Half-life | Half-life en barres avec indicateur ✓/✗ selon qu'elle est dans la zone [HL min, HL max]. |
| Analyze — n obs | Nombre d'observations communes utilisées pour le test. |
| Analyze — Z-score min/max | Bornes min/max du z-score sur les dernières observations (jusqu'à 500 points), pour juger de l'amplitude des écarts. |
| Backtest — Trades | Nombre de trades générés par la stratégie sur la période. |
| Backtest — WR % | Taux de réussite (% de trades gagnants). Vert ≥ 50%. |
| Backtest — PF | Profit factor = gains bruts / pertes brutes. Vert ≥ 1.5, jaune ≥ 1.1, rouge sinon. |
| Backtest — Sharpe | Sharpe approximatif (moyenne/écart-type des PnL × √252, borné à ±20). Vert ≥ 1.0, jaune ≥ 0.5. |
| Backtest — Max DD | Drawdown maximal en % sur la courbe d'equity. Vert < 10%, jaune < 25%, rouge sinon. |
| Backtest — Total PnL | Performance cumulée en % du capital initial. Vert si positif, rouge sinon. |
| Backtest — β used | β final réellement utilisé pour le hedge (β OLS, ou β final du filtre Kalman). |
| Backtest — Half-life | Half-life de la paire en barres. |
| Backtest — Method | Méthode de hedge utilisée (OLS ou KALMAN). |
| Backtest — Equity curve | Courbe d'equity tracée sur les dernières barres (jusqu'à 250 points) montrant l'évolution du capital. |
Comment faire
- Commence par Discovery sur un univers cohérent (mêmes familles d'actifs : FX majeurs, indices US, cryptos) — les paires sans lien économique sont rarement cointégrées de façon stable.
- Vise une half-life proche du centre de [HL min, HL max] : le score composite bonifie les paires dont le spread revient ni trop vite ni trop lentement.
- Essaie Kalman quand le β semble dériver dans le temps (régimes changeants) ; garde un δ petit (1e-4) pour éviter un β trop nerveux.
- z_entry plus haut = moins de trades mais signaux plus extrêmes ; z_exit proche de 0 capture davantage de retour à la moyenne mais allonge la durée des trades.
- Le Backtest refuse toute paire non-tradable (non cointégrée OU half-life hors zone) : il renvoie tradable=false avec un avertissement, sans résultat.
- Les symboles que ta source de données ne fournit pas sont ignorés silencieusement ; il faut ≥ 2 symboles avec ≥ 60 barres communes, sinon erreur 'Données insuffisantes'.
- Discovery teste N×(N-1)/2 paires : 30 symboles = 435 tests, le scan peut être long. La corrélation ρ est indicative et n'entre pas dans le critère tradable.
- Le test de cointégration nécessite statsmodels côté serveur ; sans lui Analyze/Backtest échouent.
- Le Sharpe est approximatif (convention √252 quel que soit le timeframe) et borné à ±20 ; le profit factor vaut 999 s'il n'y a aucun trade perdant.
- Discovery ne déduit pas les coûts de transaction dans son score ; valide toujours par un Backtest avec un Risk % réaliste avant de conclure.
Quant Toolbox
Quant Toolbox est un hub d'etat en lecture seule. Il interroge le serveur (/api/quant_toolbox/status) et affiche, niveau par niveau (Iceberg L1 a L5), quels modules quantitatifs sont charges (point vert plein) ou en attente (cercle gris vide), avec la derniere metrique calculee de chacun. Les chiffres affiches proviennent du dernier backtest execute dans l'UI (lus dans l'etat serveur), ainsi que des resultats des optimizers (FAO/Quant) deja lances. Cette page ne lance aucun calcul : elle agrege et route.
A consulter pour faire le point sur ce que la plateforme couvre reellement et verifier rapidement les indicateurs de rigueur (Sharpe, Calmar, DSR, PBO, beta, Kyle's lambda...) du backtest courant. Sert de point d'entree pour naviguer vers chaque sous-module via les boutons Voir.
Aucune connexion live requise. Pour que les metriques par module s'affichent, il faut avoir lance au moins un backtest (sinon la barre indique aucun backtest et les modules montrent pas de metrique). Certains modules n'apparaissent charges que si leur fichier Python est present (Macro Calendar, Stat Arb, Pairs, Microstructure, Execution Algos).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| ↻ Refresh (quantToolboxRefresh) | Recharge l'etat du hub depuis /api/quant_toolbox/status et redessine les 5 niveaux et leurs modules. Egalement declenche automatiquement a l'ouverture de la page. |
| Bouton → Voir (par module) | Apparait sur les modules ayant une page associee : route vers le sous-module concerne (ex. Macro Calendar, CPCV Explorer, Pairs Trading, Microstructure Live). N'apparait que si le module expose une page. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Couverture globale (qtb-coverage) | Pourcentage moyen de couverture des 5 niveaux (moyenne des coverage_pct L1-L5). Repere : plus c'est haut, plus le framework Iceberg est complet. |
| Modules charges (qtb-loaded) | Nombre de modules effectivement charges sur le total (ex. 17 / 21). Un module est charge si son fichier Python est detecte ou s'il est code comme actif. |
| Backtest actif (qtb-context) | Symbole + timeframe du dernier backtest si des metriques existent (point vert), sinon aucun backtest (cercle gris). |
| Barre de couverture par niveau | Pour chaque Level : nombre de modules actifs / total, le % de couverture du niveau, et une mini-barre coloree. |
| L1 — Surface Quant (couverture 99%, vert) | Niveau surface. Modules : Asset Beta (metrique β, avec regime/corr/n_days), Sharpe sqrt(252), Calmar v4. |
| L1 · Asset Beta (β) | Beta de l'actif vs son benchmark, issu du dernier backtest. Details : regime, correlation, nombre de jours alignes. |
| L1 · Sharpe sqrt(252) | Ratio de Sharpe annualise (approx) du dernier backtest. |
| L1 · Calmar v4 | Ratio Calmar (rendement / drawdown max) du dernier backtest. |
| L2 — Academic Factors (couverture 40%, bleu) | Facteurs academiques. Modules : Macro Calendar, Macro Event Filter, Quality L2 (stability), Carry module (non charge). |
| L2 · Macro Calendar (events 30j) | Nombre d'evenements macro a venir sur 30 jours (FOMC + NFP + CPI + ECB + BOE). Charge seulement si le module macro_calendar est present. |
| L2 · Macro Event Filter | Etat du filtre d'evenements macro de la config : enabled, fenetre en minutes (window_min), niveaux (levels, ex. HIGH). |
| L2 · Quality L2 (stability) — score | Score de stabilite du dernier backtest. Details : % de mois profitables, pire mois %, coefficient de variation du PnL mensuel. |
| L2 · Carry module | Non charge (repousse, overlap single-asset avec Beta). |
| L3 — Backtest Hell (couverture 95%, orange) | Rigueur backtest. Modules : Embargo WFA (Purged k-fold), CPCV, Deflated Sharpe (DSR), Min Track Record Length. |
| L3 · Embargo WFA (embargo %) | Pourcentage d'embargo des k-folds purgees (Phase 4 du FAO). Valeur lue dans la config (wfa_embargo_pct). |
| L3 · CPCV (PBO) | Probability of Backtest Overfitting estimee par CPCV. Details : mean/std du Sharpe, nombre de folds, nombre de passes. Plus le PBO est bas, mieux c'est. |
| L3 · Deflated Sharpe (DSR) | Sharpe deflate. Lu sur le backtest courant si dispo, sinon repris du candidat rank-1 du dernier FAO. Details : n_trials, sr_zero. Reference = Reco Finale. |
| L3 · Min Track Record Length (MinTRL) | Longueur minimale de track record requise pour que le Sharpe soit statistiquement credible, issue du dernier backtest. |
| L4 — Stat Arb Machine (couverture 75%, violet) | Arbitrage statistique. Modules : Cointegration EG + OU half-life, Kalman β(t) dynamique, Pairs Discovery, core_mode=100 STAT_ARB_PAIRS, PCA residuals (non charge). |
| L4 · Cointegration EG + OU half-life | Charge si stat_arb_engine + stat_arb_backtest presents. Route vers la page Pairs Trading. Pas de metrique cle ici. |
| L4 · Kalman β(t) dynamique | Beta dynamique par filtre de Kalman, lie au moteur stat-arb. Route vers Pairs Trading. |
| L4 · Pairs Discovery (multi-symbol) | Decouverte de paires multi-symboles. Charge si pairs_discovery + pairs_routes presents. Endpoint /api/pairs/discover, page Pairs Trading. |
| L4 · core_mode=100 STAT_ARB_PAIRS | Mode de backtest dedie stat-arb pairs, dispatche dans run_backtest. Toujours indique charge. |
| L4 · PCA residuals / Factor baskets | Non charge (prevu pour un sprint futur). |
| L5 — Deep Microstructure (couverture 65%, cyan) | Microstructure. Modules : Kyle's Lambda (offline), Adverse Selection (offline), Order Book Imbalance (live), Rolling Kyle's λ (live), Execution Algos (TWAP/VWAP/POV). |
| L5 · Kyle's Lambda offline (λ) | Mesure d'impact de marche (lambda de Kyle) calculee hors-ligne sur le dernier backtest, affichee en notation scientifique. Details : regime, R2, nombre de barres. |
| L5 · Adverse Selection offline (AS %) | Pourcentage de selection adverse du dernier backtest. Details : magnitude moyenne, nombre de barres de lookahead. |
| L5 · Order Book Imbalance (live, OBI) | Desequilibre du carnet d'ordres en direct. Charge si le module microstructure est present. Source Databento DOM via SharedLiveClient, page Microstructure Live. |
| L5 · Rolling Kyle's λ (live) | Lambda de Kyle glissant en direct, alimente par le hook Databento. Charge si microstructure present. Page Microstructure Live. |
| L5 · Execution Algos (TWAP/VWAP/POV) | Algos d'execution. Charge si execution_algos present. Plans : TWAP, VWAP, POV. |
Comment faire
- Lance d'abord un backtest dans l'UI : sans backtest, les modules L1/L3/L5 affichent pas de metrique car ils lisent les metriques du dernier run.
- Le DSR est lu du candidat rank-1 du dernier FAO si le backtest simple ne le calcule pas : la reference fiable reste la Reco Finale.
- Les modules avec un point vert ne dependent que de la presence du fichier Python : un module charge ne signifie pas qu'un calcul a deja tourne.
- Page 100% lecture seule : aucun bouton ne declenche de calcul, seulement un rafraichissement de l'etat et de la navigation.
- Les pourcentages de couverture par niveau (99/40/95/75/65) sont codes dans le backend, pas calcules dynamiquement.
- Plusieurs modules sont volontairement non charges (Carry, PCA residuals) ou seulement live (OBI, Rolling Kyle live) et n'afficheront jamais de metrique tant que la source n'est pas branchee.
- Kyle's λ est tres petit et s'affiche en notation scientifique : ne pas le lire comme une valeur normale.
Macro Calendar
Macro Calendar est un calendrier d'evenements macroeconomiques majeurs (FOMC, NFP, CPI, decisions BCE/BOE/BOJ, GDP) couvrant 2025 et 2026. Il affiche les events a venir et recents sur une plage choisie, calcule pour chacun une fenetre de blocage de +/-N minutes, et permet d'activer un filtre pre-trade qui empeche toute entree pendant ces fenetres. Les dates fixes (banques centrales) sont codees dans macro_calendar.py (liste EVENTS_2026 / EVENTS_2025), tandis que NFP et CPI sont generes par regle de calendrier (NFP = 1er vendredi du mois a 13:30 UTC, CPI = 2e mercredi a 12:30 UTC).
Utilise-le avant de lancer un backtest, une FAO ou un Quant Optimizer pour eviter que ta strategie ne se fasse piéger par la volatilite extreme des annonces macro. Active le filtre une fois : il s'applique automatiquement et globalement a partir de ce moment.
Une cfg active doit exister dans PROTOS pour pouvoir activer/desactiver le filtre (le toggle ecrit dans la cfg). L'affichage du calendrier (events + fenetres) ne requiert aucune donnee de marche ni licence : les dates sont internes au logiciel.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Fenetre +/-min (mc-win-min) | Nombre de minutes bloquees AVANT et APRES chaque event (defaut 30, min 0, max 180). Standard institutionnel = 30 min. Sert a la fois a l'affichage des fenetres et au filtre quand on l'active. |
| Levels (CSV) (mc-levels) | Niveaux d'impact a inclure, en liste separee par virgules (defaut HIGH ; ex. HIGH,MED). HIGH = blocage strict (FOMC, NFP, CPI, decisions BCE/BOE), MED = impact moindre (PPI, Retail Sales, ISM, GDP rev.). |
| Bouton Activer filter (macroCalToggle(true)) | Active macro_filter_enable dans la cfg et y enregistre la fenetre et les niveaux saisis. Le filtre bloque alors les entrees autour de chaque event sur TOUS les backtests, FAO, Post-FAO et Quant Optimizer. |
| Bouton Desactiver (macroCalToggle(false)) | Met macro_filter_enable a OFF dans la cfg : les entrees ne sont plus bloquees autour des events. |
| Plage rapide (mc-range) | Selectionne la plage de dates affichee a partir de maintenant : 7, 14, 30 (defaut), 60, 90 ou 180 jours. Recharge automatiquement le tableau a chaque changement. |
| Bouton Recharger (macroCalLoad()) | Recharge le tableau des events et le compteur de fenetres bloquees selon la plage, la fenetre et les niveaux courants. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Macro Filter (mc-filter-status) | Etat courant du filtre apres un toggle : ON en vert avec le rappel +/-Nmin et les niveaux, ou OFF en gris. Au chargement il affiche un tiret tant qu'aucun toggle n'a ete fait. |
| mc-info (resume) | Compteur sous la plage : nombre d'events trouves et nombre de fenetres bloquees (ex. 12 events . 12 fenetres bloquees). |
| Colonne Date UTC | Date et heure de l'event en UTC (format AAAA-MM-JJ HH:MM UTC). Toutes les heures du calendrier sont en UTC. |
| Colonne Delta vs maintenant | Temps restant avant l'event (vert : dans Nj Nh, dans Nh Nm, ou dans Nm) ou mention passe en gris si l'event est deja passe. |
| Colonne Event | Libelle de l'event (ex. FOMC Statement, FOMC + SEP, ECB Rate Decision, BOE Rate Decision, NFP 2026-06, CPI 2026-06). |
| Colonne Niveau | Niveau d'impact : HIGH en rouge, MED en jaune, autre en gris. Determine si l'event est inclus selon le filtre Levels. |
| Colonne Fenetre bloquee | Largeur de la fenetre bloquee autour de l'event sous forme +/-Xmin (la moitie de la duree totale du bloc), ou un tiret si aucun bloc ne correspond. |
Comment faire
- 30 min est le standard institutionnel : commence par la valeur par defaut avant d'elargir.
- Pour un blocage plus large, ajoute MED aux Levels (ex. HIGH,MED) afin d'inclure PPI/Retail Sales/ISM/GDP.
- Le filtre se regle ici une seule fois : une fois ON, inutile d'y revenir avant chaque backtest, il reste actif dans la cfg.
- Augmente la Plage rapide a 90 ou 180 jours pour planifier tes campagnes d'optimisation autour des reunions de banques centrales.
- Les dates sont codees dans macro_calendar.py et ne couvrent que 2025 et 2026 : hors de ces annees, le calendrier renvoie zero event.
- Seuls les decisions de banques centrales (FOMC, BCE, BOE) plus NFP et CPI sont presents ; BOJ et beaucoup d'events MED/LOW ne sont PAS dans la liste malgre la mention BOJ, il faut editer EVENTS_* pour les ajouter.
- NFP et CPI sont des approximations de calendrier (1er vendredi 13:30 UTC, 2e mercredi 12:30 UTC), pas les heures officielles exactes au cas par cas.
- Activer filter exige une cfg active, sinon l'API renvoie 'Pas de cfg active' (erreur 400).
- Le bouton n'agit que sur la cfg en memoire au moment du toggle : si tu changes de cfg ensuite, verifie l'etat du filtre.
- Toutes les heures sont en UTC : pense au decalage avec ton fuseau local pour interpreter le delta.
CPCV Explorer
CPCV Explorer (Combinatorial Purged Cross-Validation, d'après López de Prado 2018) découpe ton historique en N tranches chronologiques (folds) séparées par un embargo, puis relance le backtest sur chaque tranche indépendamment. Il calcule un Sharpe par fold et un PBO (Probability of Backtest Overfitting) qui estime la probabilité que ta performance soit due au sur-ajustement plutôt qu'à un vrai edge. Concrètement, le serveur charge les données de la cfg active, génère les signaux + filtres + simulation sur chaque fold purgé, puis agrège les métriques.
À utiliser après avoir optimisé ou bâti une stratégie, juste avant de la valider ou de l'exporter, pour vérifier que sa performance reste stable hors-échantillon (OOS). C'est un garde-fou anti-overfitting : un beau backtest qui s'effondre fold par fold est un signal d'alarme.
Une configuration (cfg) active chargée avec des données suffisantes : au moins 200 bars au total, et des folds d'au moins 50 bars chacun. Aucune connexion broker ni flux live requis.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| N folds | Nombre de tranches chronologiques pour la validation croisée (champ cpcv-folds, valeur 6 par défaut = standard López de Prado, min 3, max 20). Plus de folds = test plus fin mais folds plus courts. |
| Embargo % | Fraction des bars purgées à la frontière de chaque fold pour empêcher la fuite d'information par autocorrélation (champ cpcv-embargo, 0.02 = 2% par défaut, pas de 0.005, min 0.0, max 0.10). |
| ▶ Run CPCV | Lance le calcul CPCV sur la cfg active via /api/cpcv/run (appelle cpcvRun). Coût indicatif ~5 à 20s selon la taille du dataset. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Statut (cpcv-status) | Confirme la fin du run et donne le PBO et le verdict en une ligne. |
| Verdict | Conclusion globale codée couleur : PASS (vert, PBO < 0.30), MARGINAL (jaune, 0.30 à 0.50), FAIL_OVERFIT (rouge, PBO ≥ 0.50). Lis-le en premier : PASS = edge probablement réel. |
| PBO | Probability of Backtest Overfitting, affiché en %. Ici calculé comme le taux de folds (ayant des trades) où le Sharpe est ≤ 0, c.-à-d. où l'edge ne tient pas en OOS. Plus c'est bas, mieux c'est : < 30% PASS, 30-50% MARGINAL, ≥ 50% FAIL. |
| Mean Sharpe | Sharpe moyen sur l'ensemble des folds exploitables. Donne le niveau de performance typique hors-échantillon. |
| Std Sharpe | Écart-type du Sharpe entre folds (affiché ±). Plus il est faible, plus la performance est stable et homogène d'une période à l'autre. |
| Min Sharpe | Pire Sharpe parmi les folds (affiché en rouge s'il est négatif). Repère ton scénario le plus défavorable. |
| Max Sharpe | Meilleur Sharpe parmi les folds. À comparer au Min pour juger la dispersion. |
| Median | Sharpe médian des folds. Sert de référence centrale : le graphe et la colonne vs median se mesurent par rapport à cette valeur. |
| Folds | Nombre de folds réellement exploitables (ceux ayant produit des trades). Peut être inférieur au N demandé si certains folds n'ont émis aucun trade. |
| Embargo | Rappel du pourcentage d'embargo appliqué, en %. |
| Graphe Sharpe par fold | Histogramme (canvas) du Sharpe de chaque fold (F1, F2, …) avec ligne pointillée médiane et ligne du zéro. Barres vertes = Sharpe ≥ médiane, oranges = en dessous. Permet de repérer visuellement les folds faibles ou négatifs. |
| Tableau — colonne Fold | Identifiant du fold (F1, F2, …). |
| Tableau — colonne Trades | Nombre de trades générés dans ce fold. Très peu de trades = métriques moins fiables. |
| Tableau — colonne Sharpe | Sharpe approximé du fold (issu de sharpe_approx). Cœur de l'analyse OOS. |
| Tableau — colonne PF | Profit Factor du fold (gains bruts / pertes brutes). > 1 = profitable sur ce fold. |
| Tableau — colonne WR % | Win Rate du fold en pourcentage de trades gagnants. |
| Tableau — colonne vs median | Écart du Sharpe du fold par rapport à la médiane (vert si ≥ 0 avec signe +, rouge si négatif). Montre quels folds tirent la performance vers le haut ou le bas. |
Comment faire
- Vise un PBO < 0.30 (PASS) et un Std Sharpe faible : c'est le signe d'un edge robuste et stable plutôt que d'un backtest chanceux.
- Garde N folds = 6 (standard López de Prado) si ton historique est limité ; augmente-le seulement si tu as beaucoup de données pour ne pas créer des folds trop courts.
- Compare Min et Max Sharpe : un grand écart révèle une stratégie qui ne marche que sur certaines périodes.
- Le dernier résultat est mémorisé côté serveur et récupérable via /api/cpcv/last ; il est aussi consommé par le scoring final (final_reco).
- Le PBO de cette page n'est PAS le PBO CSCV classique du FAO : c'est ici le taux d'échec OOS d'une seule config (fraction des folds avec trades où Sharpe ≤ 0). Il varie selon la config et se lit différemment.
- Il faut au moins 200 bars au total et des folds d'au moins 50 bars, sinon le run échoue (erreur données insuffisantes / folds trop petits).
- Les folds sans aucun trade sont EXCLUS du calcul (et non comptés Sharpe=0) pour ne pas biaiser la médiane ; s'il reste moins de 3 folds exploitables, le CPCV est jugé non significatif (erreur 422).
- Le verdict pbo_passes côté backend utilise le seuil PBO < 0.50, alors que le verdict affiché distingue PASS (< 0.30) / MARGINAL (< 0.50) / FAIL_OVERFIT : un MARGINAL passe quand même le test pbo_passes.
- Pas d'auto-run au changement de page (coûteux en compute) : tu dois cliquer manuellement à chaque fois.
- Le CPCV tourne toujours sur la cfg active : pour comparer plusieurs sources (FAO / post-FAO / quant), bascule d'abord la cfg via les boutons Baseline pipeline des pages d'analyse.
Microstructure Live
PROTOS Trading LiveMicrostructure Live affiche en continu le carnet d'ordres (DOM) d'un instrument et en derive des metriques de microstructure : l'OBI (desequilibre acheteurs/vendeurs sur les meilleurs niveaux), le mid-price, le spread et le Kyle's lambda (mesure d'illiquidite/impact prix). Le panneau sonde le serveur databento_server (port 5055) toutes les 100ms a 2s, met a jour des KPI animes a 60 FPS, dessine une jauge OBI, une courbe Kyle's lambda et l'echelle de profondeur (depth ladder). Il sert aussi de miroir lecture seule des signaux DOM emis par le chart live et permet de configurer le moteur SL/TP applique a ces signaux.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A utiliser pendant les heures de marche, en complement du chart live, pour lire l'etat reel du carnet (qui pousse, qui retire), valider visuellement les signaux du mode 10 DOM_MICROSTRUCTURE et choisir le systeme SL/TP qui sera applique. C'est un outil d'observation/configuration temps reel, pas un backtest.
Abonnement Databento actif (carnet MBP-10 des futures CME) avec databento_server lance sur le port 5055 ; le bouton Start verifie /api/data/databento_status et refuse de demarrer si le statut n'est pas active. Les sources crypto (Binance/Coinbase/Hyperliquid/Consolidated) passent par le book L3 crypto branche sur le serveur. Pour que les flags SL/TP aient un effet, le chart live doit emettre des signaux mode 10 (chip 10 DOM) ou cfg.core_mode doit valoir 10.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Source (#ms-broker) | Choisit la venue du carnet : CME Futures (Databento, valeur vide), Crypto (Binance), Crypto L2 (Coinbase), Perp (Hyperliquid) ou Consolidated. Relance le polling au changement. |
| Symbole (#ms-symbol) | Selectionne l'instrument suivi : ES, NQ, YM, RTY, MNQ, MES, CL, GC, 6E, BTC, ETH, SOL. Relance le polling et reinitialise l'historique. |
| Ticker libre (#ms-symbol-free) | En mode crypto, champ texte libre pour taper n'importe quel ticker Binance/Coinbase/Hyperliquid ; il prend le pas sur le dropdown. Masque hors mode crypto. |
| Depth OBI (#ms-depth) | Nombre de niveaux du book (1 a 10, defaut 5) utilises pour calculer l'OBI. |
| Polling (ms) (#ms-poll-ms) | Cadence des requetes book : 100ms (60 FPS), 250ms (defaut, 4 Hz + interpolation 60 FPS), 500ms, 1s ou 2s. En demarrage auto (chart/cfg), le minimum est force a 250ms. |
| Start (#ms-start-btn) | Demarre le polling et la boucle d'animation ; verifie d'abord que Databento est connecte, sinon stoppe avec un message d'erreur. |
| Stop | Arrete le polling et l'animation, repasse le statut a arrete. |
| Reset lambda | Appelle /api/microstructure/reset_kyle pour vider la fenetre RollingKyleLambda du symbole et repartir de 0 sample. |
| dom_use_iceberg_l5 (#ms-toggle-iceberg-l5) | Toggle cfg : active la pipeline OBI + Kyle's lambda + EMA pour les signaux DOM_MICRO (mode 10) en backtest et live. Sans lui, le mode 10 utilise les 4 modes MQ5 originaux (microprice/vacuum/sweep/absorption). |
| dom_use_adaptive_sltp (#ms-toggle-adaptive-sltp) | Toggle cfg : active le SL/TP adaptatif (SL plancher ticks + spread + ATR micro, TP via RR dynamique OBI x Kyle x confidence, time stop, trailing). |
| sltp_smart_enable (#ms-toggle-smart-sltp) | Toggle cfg : active smart_sltp, le module SL/TP a 6 couches REGIME/VOL/SCORE/SESSION/PERF/LEVELS, applique a tous les modes. Si dom_use_adaptive_sltp est aussi coche en mode 10, dom_micro_sltp prend la precedence. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Poll / statut (#ms-status) | Etat du polling : non demarre, actif (Xms + interp 60 FPS) avec eventuel libelle auto (chip chart live / cfg core_mode 10), arrete, ou message d'erreur reseau/book. |
| OBI (#ms-obi) | Order Book Imbalance ∈ [-1, +1] = (somme bids - somme asks) / (somme bids + somme asks) sur les N meilleurs niveaux. >0,2 vert = pression acheteuse, <-0,2 rouge = pression vendeuse, sinon equilibre (sous-titre #ms-obi-sub). |
| Mid Price (#ms-mid) | Prix median (best_bid + best_ask)/2 ; le sous-titre affiche la variation instantanee (fleche haut/bas). |
| Spread (#ms-spread) | Ecart best_ask - best_bid (en ticks/prix), indicateur de cout et de liquidite immediate. |
| Kyle's lambda live (#ms-kyle) | Lambda rolling = covariance(delta prix, flux signe) / variance(flux) sur les 200 derniers samples ; mesure l'impact prix par unite de flux (plus eleve = marche moins liquide). |
| Updates (#ms-updates) | Compteur de snapshots recus depuis le demarrage ; le sous-titre indique le timestamp du dernier book. |
| OBI Gauge (#ms-obi-gauge) | Jauge graphique de l'OBI : +1 = pression acheteuse extreme, 0 = equilibre, -1 = pression vendeuse extreme. |
| Kyle's lambda rolling (#ms-kyle-ts) | Courbe temporelle du Kyle's lambda sur les 300 derniers polls. |
| Statut SL/TP - Systeme actif (#ms-sltp-active-engine / #ms-sltp-active-reason) | Moteur SL/TP qui sera applique aux signaux : dom_micro_sltp (mode 10 + iceberg + adaptatif), smart_sltp (6 couches), Base PROTOS incomplet, ou Base PROTOS (SL = ATR x mult, TP = RR x SL). La raison explique les flags manquants. Rafraichi toutes les 10s. |
| Signal Generator - Direction (#ms-sig-dir) | Miroir lecture seule du dernier signal DOM emis par le chart live : LONG (vert), SHORT (rouge) ou flat. |
| Signal - Mode (#ms-sig-mode / #ms-sig-strat / #ms-sig-mode-badge) | Nom du mode/strategie ayant produit le signal (ex. mode 10 DOM). |
| Signal - Entry (#ms-sig-entry) | Prix d'entree du signal (ou mid a defaut). |
| Signal - SL (#ms-sig-sl / #ms-sig-sl-dist) | Prix de stop-loss et distance Delta a l'entree. |
| Signal - TP (#ms-sig-tp / #ms-sig-tp-dist) | Prix de take-profit et distance Delta a l'entree. |
| Signal - Decision (#ms-sig-decision) | Verdict du filtre de decision : TAKE (vert), SKIP (jaune) ou autre. |
| Signal - Age / RR / Source (#ms-sig-age / #ms-sig-rr / #ms-sig-source) | Anciennete du signal en secondes, ratio risque/recompense dynamique (rr_dyn) et source (chart live databento_server). |
| Historique (50 derniers) (#ms-sig-log-tbody) | Table des derniers signaux du chart live : colonnes Time, Mode, Dir, Entry, SL, TP, Decision. |
| Depth Ladder Bids (#ms-bids-tbody) | Top 10 niveaux acheteurs : colonnes Price, Size, Bar (barre proportionnelle a la taille). |
| Depth Ladder Asks (#ms-asks-tbody) | Top 10 niveaux vendeurs : colonnes Price, Size, Bar. |
Comment faire
- L'OBI seul est bruite : le moteur de signal lisse via une EMA (alpha 0,30) et applique un seuil (defaut 0,30) plus un cooldown de 500ms avant d'emettre une direction.
- Le Kyle's lambda classe le regime en liquid / moderate / illiquid ; avec kyle_filter actif, les signaux sont bloques en regime illiquide.
- Le polling 250ms (defaut) suffit : l'interpolation 60 FPS rend l'affichage fluide sans surcharger le reseau ni le chart live.
- Le panneau couple automatiquement au mode 10 : activer le chip 10 DOM sur le chart live ou passer cfg.core_mode a 10 demarre le tracking (pastille verte sur la nav).
- Sans abonnement Databento actif, Start refuse de demarrer (toast d'erreur) ; un book vide affiche les KPI a tiret avec la note souscription en attente.
- Le Signal Generator est en lecture seule : il reflete les signaux reels du chart live (signals_log), il ne genere rien lui-meme dans ce panneau.
- Les flags SL/TP ne s'appliquent pleinement qu'en mode 10 : dom_micro_sltp exige cfg.core_mode=10 (ou chip 10 DOM) + dom_use_iceberg_l5 + dom_use_adaptive_sltp ; sinon le statut indique Base PROTOS ou un systeme incomplet.
- L'etat Kyle's lambda est par cle (broker, symbole) : changer de source/symbole reinitialise l'historique cote UI, et il faut ~200 samples avant un lambda stable.
- Le chart live applique les flags avec un cache de 3s : un changement de toggle peut mettre quelques secondes a se refleter dans le breakdown SL/TP du prochain signal.
Feature Mining
Feature Mining génère automatiquement environ 80 features (indicateurs) à partir des bougies OHLCV : returns roulants, statistiques de volatilité, position vs moyennes mobiles, RSI/MACD/Bollinger/Donchian, patterns de séquences et features temporelles (heure/jour). Il construit ensuite une cible à prédire (le return futur sur N bougies) et note chaque feature selon trois méthodes : Mutual Information (capte les relations non-linéaires), importance Random Forest (capte les interactions) et corrélation de Pearson |corr| (linéaire). La sortie est un classement trié par un score composite = moyenne normalisée des trois. C'est de l'analyse pure OHLCV : aucun backtest, aucun trade simulé.
Au tout début d'une recherche, en phase exploratoire, pour découvrir quelles caractéristiques du marché sont réellement prédictives avant de coder un mode. Cela t'oriente sur QUELLES features intégrer à la main comme filtres/conditions ; l'optimisation des paramètres (FAO) vient ensuite, sur le mode que tu construis. Ce n'est PAS dans la boucle d'optimisation.
Une configuration active (cfg) fournissant symbole / timeframe / nombre de bougies. Minimum 500 bougies chargeables (sinon erreur "Données insuffisantes") et au moins 100 échantillons valides après nettoyage des NaN. Données OHLCV uniquement (le volume est utilisé s'il est présent et non nul). Aucune connexion courtier ni licence supplémentaire.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Type de target | Définit la cible à prédire : Binary (1 si le return sur l'horizon > 0), Ternary (-1/0/+1 selon |ret| vs 0.5×ATR, filtre le bruit/chop) ou Return continu (régression sur le log-return de l'horizon). |
| Horizon (bars) | Nombre de bougies dans le futur sur lequel est mesuré le return-cible. Défaut 5, borné 1 à 50. |
| Top-K à afficher | Nombre de features les mieux classées à retourner et afficher. Défaut 30, borné 5 à 100. |
| Lancer le mining (fm-run-btn) | Démarre l'analyse en tâche de fond (POST /api/feature_mining/run) : chargement données, engineering des features, construction de la cible, scoring, puis rafraîchissement automatique des résultats par polling. |
| Annuler | Demande l'arrêt de l'analyse en cours (POST /api/feature_mining/cancel). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Barre de progression (fm-progress) | Pourcentage et étape courante affichés pendant l'exécution (ex. chargement des données, engineering features, construction target, scoring). |
| Résumé (fm-summary) | Bandeau récapitulatif : symbole timeframe — N features sur N bars, plus type de target, horizon, Top-K affiché et rappel de la formule du score composite. |
| Top features — score composite (graphique) | Barres horizontales des 25 meilleures features triées par composite. Code couleur : top 5 en accent, suivantes (6 à 15) en vert, le reste en gris. La valeur du composite est inscrite au bout de chaque barre. |
| # | Rang de la feature dans le classement (1 = la plus prédictive). Les 5 premiers et les rangs 6 à 15 sont mis en évidence. |
| Feature | Nom exact de la feature engineered (ex. ret_z_20, close_vs_ma50, rsi_14, macd, donchian_pos_20). C'est ce nom qu'il faudra recoder à la main si tu l'intègres dans un mode. |
| MI | Mutual Information avec la cible. Plus c'est élevé, plus la feature partage d'information (y compris non-linéaire) avec le return futur. |
| |Corr| | Valeur absolue de la corrélation de Pearson avec la cible. Mesure seulement la part linéaire de la relation ; sert de comparaison. |
| RF imp. | Importance attribuée à la feature par une Random Forest (50 arbres, profondeur 8). Capte les interactions entre features. |
| Composite | Score final = moyenne des trois mesures, chacune normalisée à 0..1 (divisée par son max). C'est la colonne de tri ; lis-la comme un classement relatif, pas une probabilité de gain. |
Comment faire
- Commence en Binary horizon 5 pour une vue rapide ; teste plusieurs horizons pour voir quelles features tiennent sur différents délais.
- Le Ternary (±0.5×ATR) filtre les petits mouvements (chop) et révèle souvent des features différentes du Binary.
- Croise les trois colonnes : une feature forte en MI mais faible en |Corr| capture une relation non-linéaire que la corrélation seule rate.
- Les résultats sont déterministes (random_state=42) : relancer la même config redonne le même classement.
- Outil d'analyse exploratoire pur : aucun backtest, aucun trade, aucun impact sur SL/TP/risk_pct. Il ne crée pas de mode et n'entre pas dans la boucle FAO.
- Le classement ne fournit pas le code prêt à l'emploi : les features les plus prédictives doivent être réimplémentées manuellement dans un mode.
- Il faut au minimum 500 bougies chargeables et 100 échantillons valides après dropna, sinon l'exécution échoue.
- Les features de volume ne sont calculées que si le volume existe et n'est pas nul ; les features temporelles (hour/dow/sin_hour/cos_hour) uniquement si l'index porte un datetime.
- Une seule analyse à la fois : relancer pendant qu'une exécution tourne renvoie une erreur (409 "déjà en cours").
- Un composite élevé indique une association statistique sur l'historique chargé, pas une garantie de prédictivité future ni un edge tradable.
Symbolic GP
Symbolic Regression (Symbolic GP) utilise la programmation genetique (bibliotheque gplearn, classe SymbolicTransformer) pour combiner automatiquement environ 20 primitives calculees sur l'OHLCV (returns, distances aux moyennes mobiles, ATR%, RSI, position Donchian, ratio de volume...) en arbres d'expression mathematiques. Une population de formules evolue sur N generations pour maximiser la valeur absolue de la correlation de Spearman avec un target futur (rendement a H bougies). En sortie tu obtiens un classement (hall-of-fame) des meilleures formules trouvees, avec leur fitness et leur complexite.
A utiliser en phase d'exploration/recherche d'alpha, quand tu veux decouvrir des combinaisons de signaux non evidentes plutot que tester des features pre-ecrites. Contrairement a Feature Mining qui score des features existantes, ici les formules sont inventees ; tu peux ensuite encoder la meilleure manuellement dans un mode de signal.
Aucune connexion courtier requise. Il faut une configuration de backtest valide (symbole, timeframe, n_bars) car le moteur recharge les donnees via _load_data(cfg) ; minimum 1000 bougies chargees et au moins 200 echantillons valides apres suppression des NaN, sinon erreur.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
Target (sym-target) | Type de cible a predire : Return continu (regression) = rendement futur brut ; Sign du return (±1) = signe du rendement ; Ternary ±0.5×ATR = +1 / 0 / -1 selon que le rendement futur depasse ±0.5×ATR%. |
Horizon (bars) (sym-horizon) | Nombre de bougies dans le futur sur lequel le rendement cible est calcule (1 a 50, defaut 5). |
Top-K formules (sym-topk) | Nombre de formules conservees dans le classement final / hall-of-fame (3 a 30, defaut 12). |
Population (sym-pop) | Taille de la population de formules a chaque generation (100 a 5000, pas de 100, defaut 1000). Plus large = formules potentiellement meilleures mais plus lent. |
Generations (sym-gens) | Nombre de generations d'evolution genetique (3 a 50, defaut 15). Plus de generations = formules plus complexes mais plus lent. |
Max samples (sym-maxs) | Plafond du nombre d'echantillons utilises pour entrainer le GP ; si les donnees depassent ce seuil, seules les dernieres lignes sont gardees (500 a 30000, pas de 500, defaut 8000). |
Lancer le GP (sym-run-btn) | Demarre le run de programmation genetique en arriere-plan (symbolicRun() → POST /api/symbolic/run), puis lance le polling du statut toutes les 800 ms. |
| Annuler | Demande l'arret du run en cours (symbolicCancel() → POST /api/symbolic/cancel). |
Progression (sym-progress) | Affiche en temps reel le pourcentage d'avancement et l'etape courante (chargement, primitives, GP en cours). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
Meilleure formule trouvee (sym-best-formula) | Texte de la formule de rang 1 (l'arbre d'expression converti en chaine, ex. operations add/sub/mul/div/abs/neg/sqrt/log/sin/cos/max/min/tan sur les primitives). |
| |Spearman ρ| | Fitness de la meilleure formule = valeur absolue de la correlation de rang de Spearman avec le target. Plus c'est proche de 1, plus la formule suit la cible ; en pratique sur du return de marche une valeur meme modeste (ex. 0.05-0.15) peut etre exploitable. |
| Length | Nombre de noeuds (taille) de l'arbre d'expression de la formule ; indicateur de complexite. |
| Depth | Profondeur de l'arbre d'expression ; autre indicateur de complexite, a garder bas pour eviter le surapprentissage. |
| Bandeau de contexte (best-stats) | Rappelle symbole + timeframe, nombre d'echantillons, target_kind et horizon (h=), taille de population × generations, et temps ecoule (elapsed) du run. |
Hall-of-fame des formules (table sym-table) | Classement des Top-K formules. Colonnes : # (rang, les 3 premiers en vert), Formule (expression), Fitness (|Spearman ρ|), Len (length/taille), Depth (profondeur). |
Primitives utilisees par le GP (sym-primitives) | Liste exacte des ~20 variables d'entree reellement disponibles pour le GP sur ces donnees (ret_1, ret_5, ret_20, log_ret, d_ma_5/20/50, atr_pct_5/14/30, range_pct, body_pct, rsi_7/14/28_c, donchian_pos_20, vol_ratio_10 si volume dispo, ret_mean_5/20, ret_std_20). |
Comment faire
- Le cout approximatif est pop × gens × n_samples / 1M secondes : augmente progressivement Population et Generations seulement si la fitness plafonne.
- Privilegie les formules a Length et Depth faibles a fitness comparable : plus simples = plus robustes et moins de surapprentissage.
- Le random_state est fixe (42) cote moteur, donc un meme jeu de donnees + memes reglages redonne les memes formules (reproductible).
- La fitness est |Spearman| : ne t'attends pas a des valeurs proches de 1 sur des rendements de marche, des valeurs faibles mais stables sur plusieurs formules du hall-of-fame sont deja un bon signe.
- Aucun backtest n'est lance et aucune strategie n'est generee : la sortie n'est qu'un classement de formules a reencoder soi-meme.
- Sans config chargee le serveur renvoie 'config absent' (400) ; avec moins de 1000 bougies ou moins de 200 echantillons valides apres dropna, le run echoue.
- Un seul run a la fois : relancer pendant un run en cours renvoie 'Symbolic Regression deja en cours' (409).
- La fitness optimise |Spearman| in-sample sans validation hors-echantillon ici : une fitness elevee peut etre du surapprentissage, a valider ailleurs (ex. Donnees Synth).
- Le subsampling Max samples ne garde que les dernieres bougies (iloc[-max_samples:]), donc un regime de marche recent peut dominer la decouverte.
- Le RSI et la fitness sont calcules sur la totalite des donnees chargees (pas de split train/test), et le target regarde dans le futur (shift -horizon) : c'est de la recherche, pas un signal pret a trader.
Reco Finale
La Reco Finale est le boss final du pipeline d'optimisation. Elle recupere automatiquement la meilleure config produite en amont (en priorite par le Quant Optimizer, sinon par le Post-FAO Optimizer), relance une Analyse Quant fraiche dessus (chargement des donnees + signaux + backtest + metriques + modules ML), puis agrege tous les scores en un meta-score sur 100 ponderé sur plusieurs gates (Synth, Quant, Post-FAO, FAO, MinTRL, DSR, PBO, ML, Quality, Microstructure, Propfirm). Le resultat est un verdict unique accompagne d'une liste d'actions concretes, d'une timeline du pipeline et de cartes de diagnostic (methodologie, fragilite intra-barre, robustesse cross-regime).
A utiliser en toute fin de parcours, une fois que tu as au moins lance Post-FAO Optimizer ou Quant Optimizer (idealement aussi le Synthetic Validator pour activer le gate p-value). C'est l'etape qui decide si la strategie part en live, en simulation, repasse en optimisation ou est abandonnee.
Au moins un best_config disponible (Post-FAO Optimizer ou Quant Optimizer execute, le Quant Optimizer etant prioritaire). Donnees historiques chargeables pour la config evaluee (au moins 200 barres). Le Synthetic Validator est optionnel mais necessaire pour activer le gate de robustesse statistique. Aucune connexion courtier ni flux live requis.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Calculer la reco (fr-btn-compute) | Lance le calcul complet : POST /api/final_reco/compute avec force_run_quant=true. Reprend la best config, re-backtest a frais, calcule les gates, le meta-score et le verdict. |
| Reinitialiser (fr-btn-clear) | Vide le resultat affiche ET le cache serveur (POST /api/final_reco/clear), puis revient a l'etat vide pour relancer un calcul propre. |
| Appliquer au Backtest (fr-btn-apply-bt) | Pousse la config evaluee par la Reco vers la config globale de la page Backtest (frApplyToBacktest). |
| Timeline du pipeline (cases cliquables) | Chaque etape de la timeline est un bouton qui ouvre la page correspondante (showPage) du pipeline. |
| Ameliorer ce gate (bouton par gate) | Sur un gate rouge/jaune eligible (pbo, synth, quality, microstructure, dsr, metrics, quant), declenche une reoptimisation ciblee sur ce gate (frReoptGate). |
| Strategie (fr-reopt-strategy) | Choix du profil d'Auto-Reoptim ciblee : Balanced (composite, ~10 min), Performance-first (Sharpe maxi), Robust-first (DD/Stab maxi, DD lock 0%), Aggressive (200 trials, ~25 min). |
| Inclure Synthetic Validator (fr-reopt-validator) | Case a cocher : ajoute (ou non) le Synthetic Validator dans la chaine d'Auto-Reoptim. Coche par defaut. |
| Lancer l'Auto-Reoptim (fr-btn-reopt-start) | Relance la chaine d'optimisation (Post-FAO -> Quant Optimizer avec contraintes adaptees aux issues -> Synth Validator -> recompute Reco). Visible seulement si le verdict n'est pas DEPLOY (frAutoReoptStart). |
| Stopper (Auto-Reoptim) | Interrompt l'Auto-Reoptim en cours (frAutoReoptStop). |
| Nom de la strategie (fr-deploy-name) | Nom sous lequel la strategie sera sauvegardee au deploiement. Pre-rempli automatiquement (symbol-tf-final-date). |
| Note (fr-deploy-note) | Note libre optionnelle (contexte / version) attachee a la strategie sauvegardee. |
| Set baseline Drift Monitor (fr-deploy-drift) | Case a cocher : definit la baseline du Drift Monitor au deploiement pour auto-tracking des le premier trade live. Cochee par defaut. |
| Deployer en live (fr-btn-deploy) | Sauvegarde la config best en Strategy et (option) set la baseline Drift Monitor (POST /api/final_reco/deploy). Bouton bloque si le verdict est KILL ou REWORK ; demande confirmation si SIMU. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Verdict final + libelle | Decision globale : DEPLOY (meta >= 75 et tout vert), SIMU (affiche pour la cle interne PAPER : meta 55-75 ou >= 1 warning), REWORK (gate rouge, meta 40-55 ou >= 3 warnings), KILL (meta < 40, Synth NO-GO/ERROR ou Quant grade D). Code couleur du moins au plus grave. |
| Meta-score / 100 | Note finale = somme ponderee (GATE_WEIGHTS) des gates ayant un score, renormalisee. Reperes : >=75 deployable, 55-75 simu, 40-55 rework, <40 kill. |
| Config evaluee (config_source) | Origine de la config testee : quant_optimizer (prioritaire) ou post_fao_optimizer, avec symbol, timeframe et nombre de trades du re-backtest. |
| Card Methodologie appliquee (fr-method-grid) | 8 criteres institutionnels avec statut : WFA ratio >= 0.85, DSR >= 0.50, MinTRL Bailey-LdP, Bonferroni a/3 = 0.0167, PF degradation <= 0.15, Hold-out 20% reserve, WFA embargo 20 bars, Bars actives floor. Statut GATE OK (vert, seuil franchi), GATE FAIL (rouge, a investiguer) ou PIPELINE (bleu, filtre actif automatiquement). |
| Card Fragilite intra-barre (fr-fragility-card) | Deux pourcentages : SL+TP meme barre (alerte > 5%) et Trail + SL meme barre (alerte > 10%). Mesure la part de trades dont la resolution intra-barre est ambigue sans donnees ticks (l'engine tranche en worst-case). Couleur vert/orange/rouge selon les seuils. |
| Card Robustesse cross-regime (fr-regime-card) | Badge EDGE UNIVERSEL (Sharpe > 0.3 dans tous les regimes HMM presents) ou REGIME-LOCKED (regime dominant indique), plus le Sharpe par regime (n et winrate). Un edge regime-locked meurt quand le marche change. |
| Timeline du pipeline (fr-timeline) | Etat de chaque phase (faite/non lancee) avec son score ; chaque case ouvre la page correspondante. |
| Gates (5 dimensions) (fr-gates) | Score 0-100 et poids (%) de chaque gate : Synth Validator (20%), Score Quant 5 modules ML (20%), Composite Post-FAO (13%), Metriques brutes FAO Sharpe+PF+DD (9%), Significance MinTRL (7%), Deflated Sharpe Ratio (7%), PBO/CSCV (9%), ML Overlay accuracy (4%), Quality composite (5%), Microstructure (5%), Propfirm Convex (8%, seulement si preset attache). Couleur vert/jaune/rouge/gris ; un gate non evalue affiche la raison. |
| Actions concretes (fr-actions) | Liste consolidee : strengths (vert), issues/warnings (orange), recommandations du Quant Engine, suggestions de params actionnables, gates rouges a investiguer, et prochain pas selon le verdict (re-optim, paper 30j, deploy). |
| Note Propfirm pass-rate (fr-propfirm-note) | Pass-rate estime du challenge propfirm avec intervalle de confiance, preset, instrument et nombre de jours. Informatif uniquement, aucun poids sur le meta-score ; lien vers le module Convexity. |
| Bandeau Reco obsolete (fr-stale-banner) | S'affiche si la config du resultat cache (symbol/TF/core_mode) ne correspond plus au backtest courant : invite a reinitialiser et recalculer. |
| Resultat de deploiement (fr-deploy-result) | Apres deploiement : ID de la Strategy sauvegardee, confirmation de la baseline Drift Monitor et etapes suivantes (Chart Live, Live Monitor). |
Comment faire
- Le calcul re-backtest la config a frais : si tu changes de symbol/TF/core_mode dans le Backtest, le bandeau Reco obsolete te previent. Reinitialise puis recalcule pour resynchroniser.
- Le verdict interne PAPER est affiche SIMU dans l'UI mais reste la cle PAPER cote API : le deploiement reste possible apres confirmation (simulation 30j recommandee).
- Survole chaque case de la carte Methodologie et chaque gate pour comprendre le critere exact et la raison d'un gate non evalue.
- Le bouton Ameliorer ce gate n'apparait que sur les gates rouges/jaunes eligibles (pbo, synth, quality, microstructure, dsr, metrics, quant) et surpondere ce gate (x3) dans la reoptimisation.
- Sans best config (aucun optimizer execute), le calcul renvoie une erreur : il faut lancer Post-FAO ou Quant Optimizer d'abord.
- Le gate Synth (robustesse statistique) reste non evalue tant que le Synthetic Validator n'a pas tourne sur le candidat ; idem pour ML, PBO, etc. selon les phases lancees.
- Le deploiement est bloque pour les verdicts KILL et REWORK (bouton desactive cote UI et refus cote backend).
- Le gate Propfirm Convex n'a un poids que si un preset propfirm est attache a la config ; sinon il est ignore. La note propfirm pass-rate est purement informative, sans impact sur le meta-score.
- Les pourcentages de fragilite intra-barre signalent que le backtest tranche en worst-case sans donnees ticks : au-dela des seuils (5% / 10%), valider sur ticks reels avant le live.
Données Synthétiques
Outil de test de robustesse hors-données. PROTOS rejoue ta stratégie (config et données actuellement en cache backtest) sur des centaines d'univers de marché synthétiques : des séries de prix factices mais statistiquement cohérentes avec ton historique réel. Il compare ensuite ta performance réelle à la distribution des performances synthétiques pour estimer une p-value (probabilité que ton résultat soit dû au hasard). Trois méthodes statistiques sont disponibles : Block Bootstrap, GBM et Phase Randomization (Surrogate FFT).
À utiliser après un backtest ou une optimisation prometteuse, juste avant de mettre une stratégie en live, pour détecter le sur-apprentissage (overfitting). Si ta stratégie ne bat pas significativement les univers synthétiques, son edge n'est probablement qu'un artefact de l'historique.
Avoir lancé au moins un backtest au préalable pour charger les données en cache (symbole, timeframe, n_bars, paramètres). Sans données en cache, PROTOS recharge depuis MT5/fichier. Minimum 100 bars requis et la config doit générer des trades réels (sinon test refusé).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Méthode de génération (synth-method) | Choisit l'algorithme de génération des univers : Block Bootstrap (rééchantillonnage par blocs de rendements, préserve l'autocorrélation locale, recommandé intraday/momentum), GBM — Geometric Brownian Motion (marche aléatoire log-normale, test d'efficience de marché), Phase Randomization (Surrogate FFT) (préserve le spectre de puissance mais détruit la causalité temporelle, test le plus strict). |
| Nombre de chemins synthétiques (synth-npaths-slider) | Slider 50 à 1000 (pas de 50, défaut 200) : nombre d'univers générés et backtestés. 200 = rapide (~30s), 500 = précis (~90s), 1000 = précision max. Le backend borne en réalité la valeur entre 10 et 2000. |
| Taille de bloc (synth-block-size) | Champ numérique 0 à 200 (pas de 5, défaut 0=auto). Actif uniquement pour Block Bootstrap. À 0, PROTOS choisit une taille recommandée selon le timeframe (ex. M5=24, H1=24, D1=5). Plus le bloc est grand, plus l'autocorrélation locale est préservée. |
| Seed (synth-seed) | Graine aléatoire 1 à 99999 (défaut 42) pour rendre le test reproductible : même seed = mêmes univers synthétiques générés. |
| Lancer le test (synth-btn-run) | Démarre le test : POST /api/synthetic/run puis polling du statut toutes les 1,2s. Lance le backtest réel, génère les chemins, les backteste (en parallèle multi-coeurs si n_paths≥20), calcule distributions et p-values. |
| Stop (synth-btn-stop) | Arrêt logique (soft) du test via POST /api/synthetic/stop. Note : le thread de calcul se termine naturellement, il n'y a pas d'interruption immédiate des chemins en cours. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Barre de progression (synth-progress-bar / txt) | Avancement en temps réel : X / Y chemins (Z%) pendant le calcul, puis Terminé. |
| Verdict Alpha (synth-verdict) | Étiquette globale basée sur la p-value du Sharpe : FORT (p<1%, vert), SIGNIFICATIF (p<5%), MODERE (p<10%, ambre), FAIBLE (p<20%, orange), NON SIGNIFICATIF (p≥20%, rouge). Affiche aussi : p-value Sharpe, % des chemins synthétiques inférieurs au réel, et nombre de chemins réussis. |
| Tableau Métriques — Réel vs Synthétiques | Une ligne par métrique clé : Sharpe, Win Rate %, Profit Factor, Expectancy R, Trades, Max DD %. Colonnes : Réel (valeur de ta stratégie, en vert si elle bat la moyenne synth), Moy. Synth, P5–P95 Synth (intervalle de la distribution), p-value, et Verdict (badge coloré FORT/SIGNIFICATIF/... par métrique). |
| Distribution Sharpe — Synthétiques vs Réel | Histogramme 30 barres de la distribution des Sharpe synthétiques (barres bleues). Le trait/barre doré marque ta valeur réelle. Lecture : plus le réel est à droite (au-delà de la masse synthétique), meilleur est l'edge. |
| Nuage 3D — Espace métrique (synth-3d-plot) | Scatter 3D Plotly : chaque point = un univers synthétique positionné sur (Profit Factor x Sharpe x Win Rate), couleur = Sharpe. Le losange doré = ta stratégie réelle. Plus le point réel domine (haut/droite/fond), plus l'edge est robuste sur les 3 axes. |
| Stats sous le nuage 3D (synth-3d-stats) | 4 cellules de rang percentile du réel : Sharpe P{x}, Profit Factor P{x}, Win Rate P{x} (réel supérieur à x% du nuage), et Domination 3D (% de chemins battus simultanément sur les 3 axes). Vert si ≥80, ambre si ≥50, rouge sinon. |
| Interprétation (synth-interpretation) | Texte en langage naturel : conclusion sur le Sharpe (significatif / marginal / non distinguable du bruit = risque d'overfitting), confirmation éventuelle du Profit Factor, et rappel méthodologique selon la méthode choisie. |
| Info run (synth-run-info) | Bilan : durée du test en secondes, méthode utilisée, et nombre de chemins échoués. |
Comment faire
- Pour un verdict vraiment fiable, refais le test avec les 3 méthodes : si l'alpha tient même en Surrogate FFT (le plus sévère), l'edge est très robuste.
- Garde le même seed pour comparer deux configs de stratégie sur exactement les mêmes univers synthétiques.
- Vise une Domination 3D et des percentiles élevés (P80+) : battre le nuage sur Sharpe, Profit Factor ET Win Rate en même temps est bien plus convaincant qu'un seul axe.
- Augmente le nombre de chemins (500–1000) avant une décision live : la p-value minimale possible est 1/(N+1), donc plus de chemins = p-value plus fine.
- Le test rejoue la config et les données déjà en cache backtest : si tu changes de stratégie, relance un backtest avant, sinon tu testes l'ancienne config.
- Si la config réelle ne génère aucun trade (ou trop peu de chemins réussissent, <10), le test renvoie une erreur — config trop restrictive.
- Le bouton Stop est uniquement logique : le calcul en cours ne s'interrompt pas instantanément, le thread se termine de lui-même.
- Le nuage 3D nécessite la librairie Plotly chargée (donc une connexion lors du chargement de la page) et au moins 3 chemins valides ; sinon il affiche un message de repli sans bloquer le reste des résultats.
- La p-value Sharpe est bornée à un minimum de 1/(N+1) (correction de continuité Monte Carlo) : avec 200 chemins, elle ne descend jamais sous ~0,005 même si le réel bat tous les univers.
- Le slider d'interface est plafonné à 1000, mais le backend accepte jusqu'à 2000 chemins via l'API.
Live Monitor (legacy)
PROTOS Trading LiveHub unifié qui surveille en continu tes stratégies une fois passées en live. Il compare la performance réelle (trades clôturés lus depuis MetaTrader 5) à la baseline issue du backtest/FAO et produit trois indicateurs : un drift score 0-100 par stratégie sauvegardée, un niveau d'alpha decay (dégradation live vs backtest) et des propositions paramétriques (ex. réduire risk_pct) que tu peux backtester puis accepter ou rejeter. Un Quant Tracker en arrière-plan tourne à intervalle régulier pour rafraîchir tout ça.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
À utiliser quand une stratégie tourne déjà en réel et que tu veux détecter tôt si elle décroche par rapport à son backtest, avant que les pertes ne s'accumulent. C'est l'étape de suivi post-déploiement : surveiller la dérive puis décider d'une re-optimisation.
Connexion MetaTrader 5 active (module MetaTrader5 + protos_v8) pour lire les barres et les deals clôturés ; sans MT5 le tracker affiche MT5/pv8 non disponible et ne calcule rien. Pour le drift par strat il faut au moins une stratégie sauvegardée (depuis Backtest ou FAO) et une baseline (report FAO) définie. Le calcul d'un drift exige au minimum 10 trades live.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| ↻ Refresh (header, lmRefreshAll) | Rafraîchit manuellement les 5 onglets : drift, tracker, overview, decay, propositions. |
| Onglet Overview | Vue de synthèse : KPI globaux + mini-listes des strats trackées et des dernières propositions. |
| Onglet Drift par strat | Affiche une carte par stratégie sauvegardée avec son drift score live vs baseline. |
| Onglet Alpha Decay | Détail de la dégradation live vs backtest (nécessite le tracker actif). |
| Onglet Propositions | Liste les ajustements paramétriques proposés par le tracker ; un badge rouge indique le nombre en attente. |
| Onglet Tracker Control | Démarre/arrête le Quant Tracker et affiche ses logs. |
| Intervalle d'analyse (min) | Période entre deux checks marché du tracker. Défaut 30, bornes 5 à 240, pas de 5 (envoyé comme interval_min au démarrage). |
| ▶× Démarrer (lmTrackerStart) | Lance le Quant Tracker en arrière-plan : il prend la config et les métriques du dernier backtest comme baseline, puis analyse les trades live à l'intervalle choisi. |
| ⏹ Arrêter (lmTrackerStop) | Stoppe le tracker. Désactivé tant que le tracker n'est pas actif (le bouton Démarrer est désactivé quand il tourne). |
| Baseline (par strat, dmSetBaselinePrompt) | Ouvre des prompts pour associer un report FAO (chemin du fichier) et un rank (1, 2 ou 3) comme référence de drift de la stratégie. |
| Auto-reoptim (par strat, dmAutoReoptim) | Lance une re-optimisation en arrière-plan (prompts mode fast/full, target composite/robustness/stability/performance, N trials) puis bascule vers Post-FAO Synth. Désactivé si aucune baseline. |
| Backtest (par proposition, lmProposalBacktest) | Lance un backtest de la config patchée par la proposition pour mesurer son effet avant validation. |
| Accepter (par proposition, lmProposalValidate true) | Marque la proposition comme acceptée. |
| × Rejeter (par proposition, lmProposalValidate false) | Marque la proposition comme rejetée. |
| Aller au Tracker Control | Raccourci affiché dans l'onglet Alpha Decay quand le tracker est inactif. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| DRIFT MOYEN (KPI Overview) | Moyenne des drift scores des strats trackées. Vert si >= 80 (aligné), orange 60-80 (warning), rouge < 60 (alerte). Affiche le nombre de strats agrégées. |
| ALPHA DECAY (KPI Overview) | Niveau de dégradation renvoyé par le tracker : OK / WARN / ALERT (— si pas de données). Reflète le champ decay.level du tracker. |
| PROPOSITIONS (KPI Overview) | Nombre de propositions en attente (statut pending). Devient orange si > 0 ; alimente aussi le badge de l'onglet Propositions. |
| STATUT TRACKER (KPI Overview) | Actif (vert) ou inactif (gris). Si actif, affiche l'heure du dernier check. |
| Strats trackées (top) | Top 5 des stratégies par drift score décroissant (identifiant + score coloré). |
| Dernières propositions | Jusqu'à 5 propositions récentes : type (kind) + début du motif (reason). |
| Carte de drift (onglet Drift) | Par strat : score 0-100 + statut (OK / WARN / ALERT / NO_BASELINE / INSUFFICIENT_DATA), symbole et timeframe, baseline source (report + rank ou Manuel). |
| Métriques rolling live (carte Drift) | Sur les derniers trades live : n trades, sharpe, profit_factor, expectancy_r (ev/R) et max_drawdown_pct. Le drift pondère sharpe 0.30, profit_factor 0.25, expectancy_r 0.25, max_drawdown 0.20. |
| Niveau de decay (onglet Alpha Decay) | OK / WATCH / WARNING / CRITICAL selon le % de dégradation (OK < 10%, WATCH >= 10%, WARNING >= 25%, CRITICAL >= 40%). Affiché en gros + statut texte. |
| n_live_trades + last_check | Nombre de deals MT5 clôturés accumulés depuis le démarrage et heure du dernier check. |
| Composants du decay | Score global du decay et ratios live/backtest : WR live/bt (ratio_wr), PF live/bt (ratio_pf), EV live/bt (ratio_ev). Un ratio de 1.0 = identique au backtest, < 1.0 = dégradation. Score = 0.35×WR + 0.35×PF + 0.30×Sharpe (cappés 0-1). |
| Historique (checks) | Liste brute (JSON) des derniers checks : régime de vol, régime de marché, vol_pct, decay_pct, decay_level, n_live_trades. |
| Carte proposition | Type (kind), id, motif (reason), paramètres proposés (proposed_params, ex. risk_pct), statut (pending/accepted/rejected) et statut de backtest (idle/running/done/error) avec sharpe et profit_factor si calculés. |
| Statut tracker (onglet Tracker Control) | Tracker actif/inactif + nombre de trades live + nombre de propositions. |
| Logs récents | 30 dernières lignes de log du tracker (démarrage, checks, propositions générées, erreurs MT5). |
Comment faire
- Le tracker prend automatiquement la config et les métriques (WR/PF/score/MaxDD) du dernier backtest comme baseline ; lance donc un backtest propre avant de démarrer.
- Le badge rouge sur l'onglet Propositions et le badge nav (route /api/quant/tracker/unseen) te signalent les propositions non vues sans ouvrir la page.
- Accepter une proposition ne modifie pas ton bot live : c'est une validation logique ; applique réellement les paramètres côté config/bot toi-même.
- Le drift exige au moins 10 trades live (sinon statut INSUFFICIENT_DATA) ; laisse tourner avant de conclure.
- Section legacy : l'item de navigation est masqué (display:none) et n'est accessible que via showPage('live_monitor') en console.
- Sans MetaTrader 5 (modules MetaTrader5 + protos_v8) le tracker n'a aucune donnée live : statut no_mt5, decay et propositions restent vides.
- Le tracker ne tourne qu'en mémoire : un redémarrage du serveur PROTOS efface propositions, historique et état du decay (proposals/history vidés au start).
- Les ratios de decay sont neutralisés à 1.0 si la métrique backtest correspondante est nulle (pas de baseline WR/PF/Sharpe) : un decay 'OK' peut donc masquer un manque de référence.
- L'UI affiche 'EV live/bt (ratio_ev)' mais le backend renvoie ratio_sharpe ; le champ ratio_ev n'existe pas côté serveur, donc cette ligne reste vide.
- Définir la baseline d'une strat passe par des prompts texte (chemin du report FAO + rank) : un chemin erroné renvoie une erreur silencieuse.
ML Live (legacy)
Cette page pilote deux mecanismes de machine learning. Le premier, le ML Overlay, est universel : pour chaque signal de n'importe quelle strategie, il calcule des features (RSI, ADX, ATR, etc.), entraine un classifieur (regression logistique via sklearn) sur tes trades passes et predit la probabilite de gain. Cette probabilite devient un ml_score entre 0 et 1 qui peut moduler la taille de la position (un bon score augmente le lot, un mauvais le reduit). Le second, les Modes ML 32/33, concerne uniquement les modes purs REGIME_CLUSTERING_KMEANS (32) et ANOMALY_DETECTION_HALT (33) : le modele KMeans/IsoForest qui genere les signaux se re-entraine tous les N bars en fenetre glissante. La page affiche l'etat des modeles, leur accuracy et leur drift (perte de performance d'un re-fit a l'autre).
Apres avoir un historique de trades (le modele a besoin d'au moins 30 trades par defaut avant sa premiere prediction). Utilise-la pour ajouter une couche d'apprentissage adaptatif par-dessus une strategie existante, ou pour surveiller la sante des modeles ML quand tu tournes en mode 32 ou 33. Section marquee legacy : le hub recommande est Live Optim.
Un backtest deja lance avec la strategie ciblee (l'overlay enregistre les outcomes des trades fermes). sklearn recommande (sinon fallback naif base sur le taux de gain). Pour les modes 32/33 : un core_mode 32 ou 33 actif. Aucune connexion courtier requise.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Refresh (en-tete) | Recharge l'etat des modeles via /api/ml/status et /api/ml/overlay/status. |
| Reset state (en-tete) | Reset complet du state ML des modes 32/33 (modeles, drift, history) apres confirmation, via /api/ml/reset. |
| Force refit (ML Overlay) | Declenche un re-fit immediat du modele overlay pour le symbole/timeframe de la config courante via /api/ml/overlay/refit. Echoue si pas assez de trades. |
| Reset (ML Overlay) | Reset de l'historique et du modele de l'overlay apres confirmation, via /api/ml/overlay/reset. |
| 1. Activer l'overlay (case) | Active le flag ml_overlay_enabled : le modele apprend de tes trades passes et calcule le ml_score. |
| 2. Moduler la taille (case) | Active ml_score_modulate_size : le score 0 donne 0.5x la taille de base, le score 1 donne 1.5x (modulation Kelly-like). |
| Min trades avant prediction | Regle ml_overlay_min_train (defaut 30) : nombre minimum de trades enregistres avant la premiere prediction. |
| Refit every (trades) | Regle ml_overlay_refit_every (defaut 20) : cadence de re-entrainement de l'overlay, en nombre de nouveaux trades. |
| Lot multiplier (boost max) | Regle ml_score_lot_multiplier (defaut 0.5) : amplitude du boost de taille quand le score atteint 1, soit (1+multiplier) x base. |
| Lot min (plancher) | Regle ml_score_lot_min (defaut 0.5) : facteur plancher applique a la taille quand le score est au plus bas. |
| Modes ML 32/33 (en-tete pliable) | Deplie/replie la section avancee dediee aux modes purs 32 et 33. S'ouvre automatiquement si la config courante utilise le mode 32 ou 33. |
| Online refit (modes 32/33) (case) | Active ml_online_refit : le modele KMeans/IsoForest des modes 32/33 se re-entraine en fenetre glissante. |
| Refit every (bars) | Regle ml_refit_every_n_bars (defaut 200) : cadence de re-fit des modeles 32/33, en nombre de bars. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Carte overlay : symbol / timeframe | Identifie le marche dont l'etat est affiche (un modele distinct par couple symbole/timeframe). |
| model / fit # (overlay) | Type de modele actif (logreg sklearn ou naive en fallback) et nombre total de re-fits effectues. |
| History (overlay) | Nombre de trades enregistres dans l'historique d'apprentissage (max 500 conserves). |
| Accuracy (overlay) | Precision du dernier fit. Repere : vert si >= 0.6, orange si >= 0.5, rouge sinon (un modele en dessous de 0.5 ne fait pas mieux que le hasard). |
| Last score (overlay) | Dernier ml_score predit (0 a 1) : probabilite de gain estimee du dernier signal. |
| Historique accuracy (15 derniers re-fit) | Bandes de couleur des 15 derniers fits (vert/orange/rouge) ; survol pour voir accuracy, nombre de trains et win_rate. Une derive vers le rouge signale du drift. |
| Carte modes 32/33 : symbol / mode | Identifie le marche et le mode ML (32 ou 33) du modele suivi. |
| fit # / last_fit_iso (32/33) | Nombre de re-fits et horodatage du dernier (ou never). |
| Last drift (32/33) | Score de drift du dernier re-fit : distance entre les centroids/percentiles avant et apres. Repere : vert si <= 0.2, orange si <= 0.5, rouge si > 0.5 (regime instable). |
| Score moyen (32/33) | Moyenne des scores continus generes au dernier batch (last_score_mean). |
| N bars (32/33) | Nombre de bars utilises au dernier fit (last_fit_n_bars). |
| Historique drift (10 derniers re-fit) | Bandes de couleur des 10 derniers drifts ; survol pour la valeur exacte. Une serie rouge indique un modele qui chasse un regime mouvant (overfit/instabilite). |
Comment faire
- Vise une accuracy >= 0.6 (barres vertes) ; en dessous de 0.5 le modele est inutile et risque de degrader ta taille.
- Un Refit every plus petit rend le modele plus reactif mais plus bruite ; augmente-le si tu as peu de trades.
- La page poll automatiquement toutes les 8 secondes quand elle est ouverte ; pas besoin de cliquer Refresh en continu.
- Le bouton Force refit utilise le symbole/timeframe de ta config courante : verifie que c'est bien le marche que tu veux re-entrainer.
- Section legacy (cachee dans la nav par defaut, accessible via showPage('ml_live')) : le hub maintenu est Live Optim.
- L'overlay est desactive automatiquement pendant les optimisations FAO (ml_overlay_disable_during_optim=True par defaut) pour eviter le data-leak.
- Sans au moins ml_overlay_min_train trades (30 par defaut), aucune prediction n'est faite et la liste reste vide.
- Si tous les trades de l'historique sont gagnants ou tous perdants, sklearn ne peut pas fitter : le modele bascule en fallback naif base sur le taux de gain.
- Si sklearn est absent, l'overlay tourne en mode naif degrade (pas de vrai apprentissage des features).
- La section Modes 32/33 ne sert a rien si ton core_mode n'est pas 32 ou 33 ; les listes resteront vides.
Macro
Situer vos stratégies dans le contexte économique : régimes, risque systémique, événements, flux et corrélations.
Macro Map
PROTOS Trading LiveMacro Map affiche une mappemonde interactive (Leaflet) sur laquelle sont posees des bulles d'evenements geopolitiques recuperes en quasi temps reel depuis GDELT (agreges par pays, MAJ ~15 min). Une barre laterale droite liste les news issues de flux RSS publics (BBC, Al Jazeera, CNBC, Yahoo Finance, Fed, RFI). Un panneau Couches permet d'allumer/eteindre des calques d'infrastructure : bourses, banques centrales, centres financiers, routes commerciales, detroits, pipelines, hubs matieres premieres, cables sous-marins, alertes meteo US, pannes internet, ports, et bateaux live (AIS). C'est un outil de veille contextuelle, pas un module de backtest.
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A consulter avant ou pendant une session de trading pour avoir le contexte macro/geopolitique (conflit, decision banque centrale, catastrophe, perturbation d'un detroit ou d'un cable) qui peut faire bouger les marches. Utile pour comprendre un mouvement de prix ou anticiper un risque d'evenement.
Connexion internet (les donnees sont recuperees a la volee cote serveur). GDELT et les flux RSS sont gratuits et sans cle. La couche Bateaux live (AIS) n'apparait alimentee que si la variable d'environnement AIS_STREAM_KEY est presente au demarrage du serveur ; la couche Cables sous-marins et certaines couches lazy dependent de leurs APIs externes respectives.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Pilules categorie (Tout / Conflit / Eco / Politique / Desastre) | Filtre les evenements GDELT affiches sur la carte selon le type. Chaque categorie correspond a une requete mots-cles GDELT distincte ; mmSetCategory() recharge la carte. |
| Selecteur fenetre temporelle (6h / 24h / 72h / 7j) | Definit la profondeur historique des evenements GDELT remontes (parametre hours, borne 1 a 168h cote serveur). Recharge via mmReload(). |
| Bouton refresh (rond fleche) | Force un rechargement des evenements et news en contournant le cache (mmReload(true) ajoute un cache-buster). |
| Statut (mm-status) | Texte d'etat : nombre d'events et de news, ou indication cache (GDELT en surcharge) / GDELT indisponible. |
| Panneau Couches + bouton Replier (-) | Overlay flottant haut-gauche listant les calques d'infrastructure ; chaque ligne est une checkbox. Le bouton replie/deplie le panneau (etat memorise en localStorage via mmLayersToggle()). |
| Checkboxes de couches | Activent/desactivent chaque calque (mmToggleLayer()). Les couches marquees (lazy) ne sont telechargees qu'a la 1ere activation ; les couches live demarrent un polling periodique. L'etat actif est persiste en localStorage. |
| Couche Bourses | Calque points : ~40 principales places boursieres mondiales (NYSE, Nasdaq, LSE, Euronext, TSE, HKEX...). Active par defaut. |
| Couche Banques centrales | Calque points : principales banques centrales. Active par defaut. |
| Couche Centres financiers | Calque points : grands centres financiers mondiaux. Active par defaut. |
| Couche Routes commerciales | Calque lignes : routes maritimes commerciales majeures. Active par defaut. |
| Couche Detroits strategiques | Calque points : detroits/chokepoints (Hormuz, Suez, Malacca...). Active par defaut. |
| Couche Oleoducs / gazoducs | Calque lignes : principaux pipelines petrole/gaz. Inactive par defaut. |
| Couche Centres matieres 1res | Calque points : hubs de matieres premieres (Cushing WTI, Brent, LNG, or LBMA/COMEX, metaux LME, fer, charbon, lithium, terres rares...). Inactive par defaut. |
| Couche Cables sous-marins (lazy) | Calque lignes telecharge a la demande depuis submarinecablemap.com (proxy serveur, cache 24h). Lourde (~727 KB), inactive par defaut. |
| Couche Atterrages cables (lazy) | Calque points : points d'atterrage des cables sous-marins. Telecharge a la demande, inactif par defaut. |
| Couche Alertes meteo (US) (lazy) | Calque polygones : alertes meteo actives NOAA NWS (US uniquement, cache 5 min). Telecharge a la demande, inactif par defaut. |
| Couche Pannes internet (lazy) | Calque points : pannes/coupures internet par pays (proxy Cloudflare Radar). Telecharge a la demande, inactif par defaut. |
| Couche Ports majeurs (lazy) | Calque points : grands ports mondiaux. Inactif par defaut. |
| Couche Bateaux live (AIS) (lazy, live) | Calque points temps reel : positions de navires via flux AIS. Necessite la cle AIS_STREAM_KEY cote serveur ; polling automatique periodique une fois activee. Inactive par defaut. |
| Legende (mm-legend) | Overlay bas-centre listant la pastille/ligne de couleur et l'icone de chaque couche actuellement active (_mmRenderLegend()). |
| Champ Filtrer news (mm-news-filter) | Filtre la liste de news par texte present dans le titre ou le resume (mmRenderNews()). |
| Pilules sources news (mm-news-sources) | Activent/desactivent chaque flux RSS (BBC, Al Jazeera, CNBC, Yahoo Finance, Fed, RFI) dans la liste (mmToggleSource()). Si toutes sont decochees, toutes sont reactivees. |
| Carte interactive (zoom / pan) | Carte Leaflet fond CARTO sombre, zoom 2 a 8, controle zoom en haut-droite. Cliquer une bulle d'event ou un marqueur de couche ouvre une popup detaillee. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Bulles d'evenements (carte) | Un cercle par pays ayant des evenements GDELT dans la categorie/fenetre choisies. Le rayon croit avec le log du nombre de mentions (count) ; la couleur depend de la categorie. Popup : nom du pays, nombre de mentions, et liens vers les articles. |
| count (mention(s)) | Nombre d'articles GDELT agreges pour ce pays sur la fenetre. Plus c'est eleve, plus le pays est mediatiquement actif sur la categorie. |
| Statut events/news | Recap textuel : N events . M news. Suffixe cache X min (GDELT en surcharge) si la donnee servie est un snapshot perime (fallback rate-limit 429), ou GDELT indisponible en cas d'erreur. |
| Liste News (sidebar) | Articles RSS tries du plus recent au plus ancien (max 120). Chaque carte : titre cliquable, source, age relatif (a l'instant / min / h / j), resume optionnel. |
| Compteur news (mm-news-count) | Format visibles/total apres application des filtres source et texte. |
| Compteur par couche | Nombre d'elements de la couche affiche a droite de chaque ligne du panneau Couches (items statiques, ou nombre charge pour les couches lazy ; . si lazy non encore chargee). |
| Popup couche infrastructure | Au clic d'un marqueur statique : nom, ville/pays, et selon la couche devise, type/kind, rang, note (ex: 'Point de livraison physique du WTI'). |
| Popup bateau (AIS) | Pour un navire : nom, MMSI, type, SOG (vitesse en noeuds), COG (cap en degres) et age de la derniere position. |
| Popup alerte meteo / panne / cable | Polygone meteo : evenement, zone, severite/urgence/certitude, titre, expiration. Panne internet : pays, scope, cause, periode debut->fin. Cable : nom et identifiant. |
| Legende active | Recapitule visuellement (pastille/ligne coloree + icone + label) les couches actuellement allumees. |
Comment faire
- Les couches lourdes (Cables sous-marins ~727 KB) et live (AIS) ne se chargent qu'au 1er clic : laissez-les eteintes tant que vous n'en avez pas besoin.
- L'etat des couches actives et le repli du panneau sont memorises en localStorage : vous les retrouvez d'une session a l'autre (les couches lazy memorisees se re-cochent au prochain clic, sans re-fetch automatique).
- Si toutes les sources news sont decochees, l'app les reactive toutes automatiquement : decochez seulement les flux que vous voulez masquer.
- Pour le contexte energie/petrole, combinez Detroits strategiques + Oleoducs/gazoducs + Centres matieres 1res afin de visualiser les goulots d'etranglement.
- GDELT est rate-limite (~1 req/5s) : en cas de 429, la carte sert le dernier snapshot connu avec un badge 'cache X min (GDELT en surcharge)' ; les chiffres peuvent donc etre legerement perimes.
- Les evenements sont geolocalises au centroide du pays source GDELT (table statique), pas a l'endroit exact de l'evenement : une bulle au centre d'un grand pays ne pointe pas une ville precise.
- La couche Alertes meteo ne couvre que les Etats-Unis (source NOAA NWS).
- La couche Bateaux live (AIS) reste vide si AIS_STREAM_KEY n'est pas configuree au demarrage du serveur ; les autres couches lazy peuvent aussi echouer si leur API externe est indisponible (un toast d'erreur s'affiche alors).
- Section de pure veille : aucune donnee n'est injectee dans un backtest ou une optimisation ; c'est purement informatif.
Tail Risk
Tail Risk (Liquidity Stress Monitor) agrege 16 indicateurs macro de stress repartis en 4 familles (volatilite implicite, credit, taux & courbe, liquidite) recuperes gratuitement depuis Yahoo Finance et FRED. Pour chaque indicateur il calcule sa valeur courante, un niveau (calm / normal / stress / panic) selon des seuils codes , et un z-score sur 1 an. Il en deduit un niveau de stress global (LOW / MEDIUM / HIGH / EXTREME) et un score pondere. Le tableau de bord se met a jour tout seul toutes les 5 minutes.
A consulter avant de prendre ou d'augmenter du risque directionnel : il dit si l'environnement macro est risk-on (favorable au levier et a la vente de premium) ou risk-off (reduire l'exposition, hedger). Sert de filtre macro de contexte, en confluence avec le reste de la plateforme.
Aucune cle ni licence : sources gratuites Yahoo Finance et FRED (St. Louis Fed). Necessite uniquement une connexion internet. Les indicateurs sans donnees disponibles s'affichent en niveau unknown.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| ↻ Refresh | Force le rechargement immediat en bypassant le cache (appelle trReload(true)). Le cache normal est de 5 min pour la volatilite et 6 h pour les series FRED. |
| Bouton info (i) Stress macro global | Ouvre l'aide contextuelle mac_tail expliquant le score pondere du risque de queue et comment le lire. |
| Auto-refresh (automatique, non cliquable) | Un poller relance trReload toutes les 5 minutes tant que la page est ouverte ; aucun reglage manuel. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Stress macro global (tr-stress-level) | Niveau global : LOW (vert) / MEDIUM (jaune) / HIGH (orange) / EXTREME (rouge), ou UNKNOWN. Calcule a partir du ratio score/n_total : <0.10 LOW, <0.25 MEDIUM, <0.45 HIGH, sinon EXTREME. Le header se teinte selon ce niveau. |
| Score pondere (tr-stress-score) | Affiche score / (n_total x 2). Le score ajoute +1 par indicateur en stress et +2 par indicateur en panic. Plus il s'approche du maximum, plus le stress est generalise. |
| Indicateurs en alerte (tr-alerts-count) | Nombre d'indicateurs en niveau stress ou panic. Texte vert si 0, orange si 1-2, rouge si >=3. |
| Banniere d'interpretation | Phrase de synthese selon le niveau global (regime risk-on stable / stress modere / stress eleve / regime panique) plus la liste nominative des indicateurs en stress ou en panic. |
| Carte indicateur : valeur + unite | Valeur courante de l'indicateur avec son unite (pts, bp, %, $T, ratio). Couleur de la carte selon son niveau. |
| Carte indicateur : badge de niveau | Pastille calm / normal / stress / panic coloree, avec teinte de fond renforcee pour stress (orange) et panic (rouge). |
| Carte indicateur : z-score | Ecart-type vs moyenne 1 an (ex +1.8σ). Label normal (<1σ), eleve (>=1σ, orange) ou extreme (>=2σ, rouge). Mesure a quel point la valeur est anormale historiquement. |
| Carte indicateur : sparkline | Mini-courbe des 60 derniers points, coloree selon le niveau, pour voir la tendance recente de l'indicateur. |
| Carte indicateur : interpretation | Phrase d'interpretation propre au niveau courant de l'indicateur (ex VIX panic = risk-off generalise). |
| VIX (vol) | S&P 500 implied vol 30 jours (^VIX). Seuils : calm <=13, normal <=20, stress <=30, panic au-dela. |
| VVIX (vol) | Vol of vol, le VIX du VIX (^VVIX). Anticipe les spikes futurs de VIX. Seuils 85 / 105 / 130. |
| SKEW (vol) | CBOE SKEW (^SKEW). Cout de la protection puts OTM, mesure le tail risk. Seuils 120 / 135 / 150. |
| MOVE (vol) | ICE BofA MOVE (^MOVE). Vol implicite des Treasuries, stress taux & funding. Seuils 80 / 110 / 140 bp. |
| OVX (vol) | CBOE Crude Oil Volatility (^OVX). Stress geopolitique energie. Seuils 35 / 50 / 70. |
| VIX9D / VIX3M (vol) | Term structure courte/longue (ratio ^VIX9D/^VIX3M). >1 = backwardation = stress imminent. Seuils 0.85 / 1.00 / 1.15. |
| HY OAS (credit) | BofA US High Yield OAS (FRED BAMLH0A0HYM2). Spread credit junk vs Treasuries. Seuils 3 / 5 / 7 %. |
| IG OAS (credit) | BofA US Investment Grade OAS (FRED BAMLC0A0CM). Seuils 1.0 / 1.5 / 2.5 %. Un elargissement IG est un signal credit tres fort. |
| Yield curve 10Y-2Y (rates) | FRED T10Y2Y, logique inversee : l'inversion (negatif) = alerte. Seuils panic <=-0.5, stress <=0, normal <=0.5, sinon calm. Signal recession 6-18 mois en avance. |
| Yield curve 10Y-3M (rates) | FRED T10Y3M, logique inversee, memes seuils. Historiquement plus predictive que 10Y-2Y. |
| 10Y Treasury (rates) | Rendement Treasury 10 ans (FRED DGS10). Seuils 3.0 / 4.5 / 5.5 %. |
| SOFR (liquidity) | Secured Overnight Financing Rate (FRED SOFR). Cout du funding repo USD. Seuils 2.0 / 4.0 / 5.5 %. |
| Reverse Repo RRP (liquidity) | Fed Reverse Repo daily en $T (FRED RRPONTSYD), logique inversee : RRP qui s'epuise = stress. Seuils panic <=0.5, stress <=1.0, normal <=1.5, sinon calm. |
| Fed balance sheet (liquidity) | Total assets de la Fed en $T (FRED WALCL, mis a l'echelle depuis les M$). Proxy QE/QT. Seuils 6.5 / 8.0 / 9.5. |
Comment faire
- Le z-score complete les seuils : un indicateur encore en 'normal' mais a +2σ signale une bascule rapide, a surveiller.
- Les courbes 10Y-2Y / 10Y-3M et le RRP utilisent une logique inversee : c'est le passage en negatif (ou l'epuisement du RRP) qui declenche l'alerte, pas une valeur haute.
- En regime EXTREME, l'interpretation rappelle que les correlations explosent vers 1 : la diversification cesse de proteger, mode preservation du capital.
- Le score est un ratio sur les indicateurs valides uniquement : si plusieurs sont en 'unknown' (donnees indisponibles), le denominateur baisse et le niveau global reste exploitable.
- Pas de flux courtier : les donnees viennent de Yahoo Finance et FRED et sont rafraichies au mieux toutes les 5 min (vol) ou 6 h (FRED) ; ce n'est pas un outil temps reel tick par tick.
- Les seuils sont codes dans le module et non parametrables depuis l'UI : ils refletent des regimes historiques typiques, pas une calibration sur l'actif que vous tradez.
- Le z-score n'est calcule que s'il y a au moins 30 points d'historique, sinon il s'affiche '—'.
- Si une source ne renvoie rien (Yahoo/FRED indisponible), l'indicateur passe en 'unknown' et est exclu du score, ce qui peut sous-estimer le stress reel.
- FRED publie souvent en daily/weekly : certains indicateurs credit/taux/liquidite peuvent dater de la veille meme apres un Refresh force.
Events
Cette section agrege deux calendriers a venir. D'abord le calendrier economique (FOMC, CPI, NFP, ECB, BOJ, OPEC, PMI/ISM, etc.) recupere du flux gratuit hebdomadaire de ForexFactory, avec date/heure (en UTC), pays, impact (high/medium/low), forecast et previous. Ensuite les earnings (publications de resultats) recuperes du calendrier NASDAQ sur l'horizon choisi, filtres par capitalisation, avec EPS forecast et EPS de l'an dernier. Pour les plus grosses capitalisations, elle calcule en plus l'implied move (mouvement attendu) a partir du straddle ATM des options (call ATM + put ATM via yfinance).
A consulter en debut de semaine ou avant d'ouvrir/garder une position, pour reperer les dates a haut risque (annonces de banque centrale, inflation, emploi) et les soirs d'earnings d'une valeur que tu trades, afin d'eviter d'etre pris par surprise par un mouvement violent.
Aucune cle ni licence. Sources gratuites publiques : ForexFactory (XML hebdo), NASDAQ (api.nasdaq.com) et yfinance pour l'implied move. Une simple connexion internet suffit ; le module met en cache disque/memoire et sait servir un cache perime en cas d'echec reseau.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Horizon (ev-days) | Nombre de jours scannes pour les earnings : 1, 3, 7 (defaut) ou 14 jours. Borne serveur 1 a 14. Relance le chargement via evReload(). |
| Min mcap (ev-mcap) | Capitalisation minimale des earnings affiches : 1B$, 5B$ (defaut), 20B$ ou 100B$ (mega only). Filtre cote serveur avant tri par market cap. |
| Bouton refresh (cercle fleche) | Force le rechargement en contournant le cache (evReload(true) ajoute un cache-buster a l'URL). |
| Onglet Calendrier economique | Affiche le tableau des events economiques groupes par jour (evShowTab('eco')). |
| Onglet Earnings | Affiche les publications de resultats groupees par jour (evShowTab('earn')). |
| Impact (ev-eco-impact) | Filtre les events economiques : Tous, High only (defaut) ou High + Medium. Filtrage cote client via _evRenderEco(). |
| Categorie (ev-eco-cat) | Filtre par theme : Toutes (defaut), Monetary (Fed/ECB/BOJ), Inflation (CPI/PPI/PCE), Labor (NFP/jobs), Growth (GDP/PMI/ISM), Energy (OPEC/EIA), Sentiment. La categorie est deduite du titre par mots-cles cote serveur. |
| Recherche economique (ev-eco-search) | Champ texte qui filtre les events par titre ou pays (insensible a la casse). |
| Recherche earnings (ev-earn-search) | Champ texte qui filtre les earnings par ticker ou nom de societe. |
| Slot (ev-earn-slot) | Filtre l'horaire de publication des earnings : Tous (defaut), Avant open (before_open / BMO) ou Apres close (after_close / AMC). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| KPI Events economiques (ev-kpi-eco) | Nombre total d'events economiques de la semaine en cours (stats.total_economic). |
| KPI High impact (ev-kpi-high) | Nombre d'events classes high impact ; affiche en rouge, ce sont les dates a surveiller en priorite. |
| KPI Aujourd'hui (ev-kpi-today) | Nombre d'events economiques tombant aujourd'hui (comparaison sur la date UTC) ; affiche en jaune. |
| KPI Earnings totaux (ev-kpi-earn) | Nombre d'earnings retenus sur l'horizon apres filtre de market cap (stats.total_earnings). |
| KPI Avec implied move (ev-kpi-iv) | Nombre d'earnings enrichis d'un implied move calcule (jusqu'a 8 plus grosses capitalisations dans l'UI) ; affiche en bleu. |
| Compteur economique (ev-eco-count) | Indique X / N events : combien d'events passent les filtres sur le total disponible. |
| Carte par jour (economique) | Les events sont groupes par date (libelle francais long, ex. lundi 30 juin) ; le jour courant est surligne avec le tag AUJOURD'HUI et affiche le nombre d'events et de high. |
| Colonne Heure | Heure de l'event convertie dans l'heure locale du navigateur (le flux source est en UTC) ; barre coloree a gauche selon l'impact. |
| Colonne Pays | Drapeau + code pays de l'event (ex. USD, EUR, JPY). |
| Colonne Event | Intitule de l'annonce economique tel que fourni par ForexFactory (ex. CPI y/y, FOMC Statement). |
| Colonne Categorie | Theme deduit : monetary, inflation, labor, growth, energy, sentiment ou other (vide si other). |
| Colonne Forecast | Valeur consensus attendue pour l'indicateur (telle qutelle du flux) ; tiret si absente. |
| Colonne Previous | Valeur de la publication precedente, pour comparer au forecast. |
| Colonne Impact | Badge high / medium / low (et holiday) indiquant le potentiel de volatilite ; high = rouge. |
| Compteur earnings (ev-earn-count) | Indique X / N earnings passant les filtres sur le total. |
| Carte par jour (earnings) | Earnings groupes par date, tries par market cap decroissante ; entete affiche le nombre d'earnings et combien ont un implied move. |
| Cartes top implied move | Bandeau des earnings dont l'implied move est calcule : ticker, badge BMO/AMC, mouvement attendu en +/-% (couleur selon magnitude : vert <3%, jaune 3-6%, orange 6-10%, rouge >=10%), +/-$ absolu, spot, market cap et EPS forecast. |
| Colonne Ticker | Symbole boursier de la societe publiant ses resultats. |
| Colonne Slot | Badge horaire : BMO (before_open, avant ouverture), AMC (after_close, apres cloture) ou tiret si non precise. |
| Colonne Market cap | Capitalisation formatee en T$/B$/M$ (parsee depuis NASDAQ). |
| Colonne EPS Fc | Benefice par action attendu (eps_forecast) pour ce trimestre. |
| Colonne vs LY | EPS de l'an dernier (last_year_eps) pour le meme trimestre, base de comparaison. |
| Colonne Delta | Variation en % de l'EPS forecast vs EPS an dernier ; vert si > +10%, rouge si < -10%. Indicateur de surprise potentielle, calcule cote client. |
| Colonne Implied Move | Mouvement attendu post-earnings en +/-% (jaune) si calcule via le straddle ATM, sinon tiret. |
| Colonne Company | Nom complet de la societe (tronque si trop long). |
| Statut (ev-status) | Affiche fetch... pendant le chargement puis l'age du cache et l'horizon (ex. cache 12s . horizon 7j) ; erreur en rouge si l'appel echoue. |
Comment faire
- Les heures affichees sont converties dans le fuseau de ton navigateur alors que la source est en UTC : utile, mais verifie ton fuseau systeme si tu coordonnes avec d'autres outils.
- L'implied move n'est calcule que pour les ~8 plus grosses capitalisations de l'horizon (n_iv=8 cote UI) : augmenter le Min mcap concentre ces calculs sur les megacaps.
- Le bandeau implied move utilise le straddle ATM (call ATM + put ATM) de l'expiry la plus proche : c'est une estimation du mouvement attendu, pas une garantie de direction.
- La colonne Delta (EPS forecast vs l'an dernier) donne un indice de surprise potentielle, mais ne remplace pas le consensus analystes du trimestre.
- Le calendrier economique vient du flux ForexFactory de la SEMAINE EN COURS uniquement : l'horizon 14 jours n'allonge QUE la fenetre des earnings, pas celle des events economiques.
- Les sources sont des feeds publics scrappes (ForexFactory, api.nasdaq.com, yfinance) sans cle : en cas d'echec reseau le module renvoie un cache perime ou des listes vides (KPI a tiret), sans erreur bloquante.
- L'implied move depend de la liquidite des options du ticker sur yfinance ; sans chaine d'options ou sans bid/ask exploitables il reste vide (la colonne et le KPI ne comptent pas ce ticker).
- Le cache a des TTL differents : 1h ForexFactory, 30 min earnings NASDAQ, 5 min implied move ; un refresh peut donc ne pas tout rafraichir simultanement.
- La categorie d'un event est devinee par mots-cles dans le titre ; un libelle inhabituel peut tomber dans la categorie other et echapper aux filtres de categorie.
Crypto Whales
PROTOS Trading LiveCrypto Whales est un tableau de bord temps réel qui agrège trois signaux de positionnement sur 7 perpétuels majeurs (BTC, ETH, SOL, BNB, XRP, DOGE, AVAX) et 3 exchanges (Binance, OKX, Bybit). Il affiche les funding rates (par 8h), l'open interest (en coins) et les pegs des stablecoins (USDT, USDC, DAI, FDUSD, TUSD, PYUSD, FRAX, USDe). Un bandeau d'alertes signale automatiquement les funding extrêmes et les décrochages de stablecoins. Les données proviennent d'API publiques gratuites (Binance Futures, OKX, Bybit, CoinGecko).
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
À consulter pour jauger le positionnement de la foule crypto avant ou pendant un trade : repérer les longs/shorts surchargés (risque de squeeze) et détecter un stress de liquidité naissant via le dépeg des stablecoins. C'est un outil de contexte/contrarian, pas un générateur de signal d'entrée.
Connexion internet active (accès aux API publiques de Binance, OKX, Bybit et CoinGecko). Aucune clé API ni licence requise. La section ne fonctionne pas hors-ligne.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Refresh (↻) | Force le rafraîchissement immédiat des données en contournant le cache (appelle cwReload(true) avec un paramètre anti-cache). |
| Bouton aide (i) | Ouvre la fiche d'aide mac_whales expliquant à quoi sert la section et comment lire funding/OI. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Bandeau d'alertes | En haut de page. Vert + 'Aucune alerte' = funding dans la fourchette normale et stablecoins peggés (conditions calmes). Rouge + liste = funding extrême (|rate| > 0,05% par 8h) ou stablecoin en stress/depeg détecté. |
| Statut (cw-status) | À droite du header : indique 'fetch…' pendant le chargement, puis l'âge du cache en secondes et le nombre d'alertes (ex. 'cache 12s · 2 alertes'), ou 'erreur réseau' en cas d'échec. |
| FUNDING RATES — colonne Symbol | Le perpétuel concerné (BTC, ETH, SOL, BNB, XRP, DOGE, AVAX). |
| FUNDING RATES — colonnes Binance / OKX / Bybit (8h) | Taux de funding par exchange pour la période de 8h, affiché en % (4 décimales) et en bp. Couleur : rouge = très positif (longs payent shorts, crowded long) ; vert = très négatif (shorts payent longs, potentiel rally) ; gris = neutre. |
| FUNDING RATES — colonne Avg | Moyenne du funding sur les exchanges disponibles pour ce symbole, en bp. Même code couleur que les cellules par exchange. |
| FUNDING RATES — colonne Divergence | Écart entre le funding max et min des exchanges (en bp). Une forte divergence = opportunité d'arbitrage ou signal de positionnement local sur un exchange. |
| FUNDING RATES — colonne Lecture | Interprétation auto de la moyenne : de 'Long crowded — squeeze risk' (très positif) à 'Short crowded — squeeze haussier' (très négatif), en passant par Neutre. Affiche aussi le funding annualisé approximatif (~X% APR = avg × 3 × 365). |
| OPEN INTEREST — colonne Symbol | Le perpétuel concerné. |
| OPEN INTEREST — colonnes Binance / OKX / Bybit | Open interest exprimé en coins (nombre de contrats sous-jacents) par exchange, formaté en K / M. Un tiret signifie donnée indisponible. |
| OPEN INTEREST — colonne Total (coins) | Somme de l'OI en coins sur les 3 exchanges, pour comparer la taille de levier entre symboles. OI ↑ + funding stable = nouveau levier ; OI ↓ + grosse move prix = liquidations. |
| STABLECOIN PEGS — carte par stablecoin | Une tuile par stablecoin (USDT, USDC, DAI, FDUSD, TUSD, PYUSD, FRAX, USDe), triées par market cap décroissant. Affiche le label, le prix ($, 5 décimales), la déviation vs 1$ en %, l'émetteur et la market cap. |
| STABLECOIN PEGS — badge de santé (health) | Classification du peg : healthy (<5 bp d'écart, vert), watch (<30 bp, jaune), stress (<1%, orange), depeg (≥1%, rouge). Une décote < 0,99$ = liquidité en stress, signal avancé (early warning). |
Comment faire
- Le funding est un outil contrarian aux extrêmes : un funding très positif et persistant signale souvent un sommet de positionnement long, pas une tendance à suivre.
- Utilise la colonne Divergence pour repérer un exchange qui se positionne à contre-courant des autres (signal local ou arbitrage).
- Combine funding extrême + OI élevé pour identifier les setups de squeeze : beaucoup de levier dans le même sens = carburant pour un mouvement violent à la liquidation.
- Un dépeg de stablecoin est un early warning de stress systémique : réduis le levier quand un badge passe en stress ou depeg.
- Section 100% live : sans connexion internet ou si une API publique est indisponible/rate-limitée, les cellules concernées affichent un tiret et le statut peut passer en 'erreur réseau'.
- Le funding est par période de 8h : un même taux apparaît identique entre deux mises à jour exchange (le funding ne change réellement que toutes les 8h), le polling 30 s/60 s ne fait que rafraîchir l'affichage.
- Périmètre figé : 7 symboles, 3 exchanges et la liste de stablecoins sont codés , non configurables depuis l'UI.
- Caches courts (funding 30 s, OI 60 s, pegs 60 s) : le bouton Refresh contourne le cache, mais reste tributaire de la latence des API tierces.
- OKX et Bybit ne renvoient pas toujours le mark price ou l'OI dans la même unité ; une donnée manquante d'un exchange est simplement omise du calcul de moyenne/total.
Ship Tracker
PROTOS Trading LiveShip Tracker affiche en temps réel, sur une carte mondiale, les bateaux de commerce et de transport d'hydrocarbures (tankers, LNG/LPG, cargos, plus passagers et pêche en option) à partir du flux maritime AIS fourni par AISStream. Chaque bateau est un triangle orienté selon son cap, coloré par catégorie, dont la transparence indique la fraîcheur de sa dernière position. La section repère aussi les bateaux ancrés (quasi-immobiles depuis au moins 30 min), un indicateur indirect de stockage flottant (floating storage) ou de congestion portuaire, et agrège des statistiques par grand point de passage (Hormuz, Suez, Bab-el-Mandeb, Panama, etc.).
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
À utiliser comme outil macro/contexte pour suivre le flux physique de pétrole et de marchandises : repérer une accumulation de tankers ancrés à un chokepoint, une rupture de trafic à Suez ou Hormuz, ou la congestion à Houston, avant ou pendant une prise de position sur les commodités, le pétrole ou des actifs sensibles au transport maritime.
Une clé API AISStream gratuite renseignée dans le fichier .env sous la variable AIS_STREAM_KEY. Sans cette clé, la carte reste vide et le statut affiche AIS_STREAM_KEY non configuré dans .env. La couverture AIS est inégale : les zones denses (Mer du Nord, Houston) se peuplent en minutes, les zones rares (Hormuz, Suez, Bab-el-Mandeb, Panama) peuvent mettre plusieurs heures à se garnir.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Pastilles catégories (Tanker, LNG/LPG, Cargo, Passager, Pêche) | Activent/désactivent l'affichage de chaque catégorie de bateaux (bouton stToggleCat). Tanker, LNG/LPG et Cargo sont actifs par défaut ; Passager et Pêche sont éteints par défaut. Une catégorie active est surlignée. |
| Ancrés | Bascule (stToggleAnchored) qui ne montre que les bateaux quasi-immobiles depuis au moins 30 min (vitesse SOG <= 0.6 nœud), proxy de stockage flottant ou de congestion. Infobulle : Bateaux quasi-immobiles >= 30 min - proxy floating storage. |
| Stratifié | Bascule (stToggleStratified), actif par défaut. Garantit un quota minimum de bateaux par chokepoint (200 par défaut) lors de l'échantillonnage, pour éviter que le bruit Europe/US noie les zones sous-couvertes. Infobulle : Quota minimum par chokepoint (Hormuz/Suez/Bab-el-Mandeb…). |
| Aller à un choke point… | Menu déroulant (stZoomRegion) qui zoome la carte sur l'un des 10 points de passage prédéfinis (Hormuz, Suez, Malacca, Bab-el-Mandeb, Panama, Bosphore, Gibraltar, Taïwan, Mer du Nord, Houston/Galveston). |
| Rafraîchir (↻) | Force un rechargement immédiat du snapshot des bateaux (stReload avec bypass du cache). Infobulle : Rafraîchir maintenant. |
| Vider le cache | Vide le cache mémoire et le snapshot disque des positions AIS (stClearCache, route /api/ship_tracker/clear_cache). Demande confirmation. Infobulle : Vide le cache mémoire + disque ; les zones à faible couverture AIS (Hormuz, Suez…) mettront plusieurs heures à se reconstituer. |
| Clic sur un bateau (carte) | Sélectionne le bateau (stSelectVessel), affiche son détail dans la barre latérale et trace sa trajectoire (path des 60 dernières positions) en pointillés sur la carte. |
| Ajouter / Retirer de la watchlist | Bouton dans le détail du bateau (stToggleWatch) qui mémorise un MMSI dans une watchlist persistée en localStorage. Les bateaux suivis sont rendus en plus gros et passés au-dessus des autres. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Carte mondiale (bateaux) | Triangle orienté selon le cap (COG), coloré par catégorie : Tanker rouge, LNG/LPG violet, Cargo bleu, Passager orange, Pêche cyan. Un bateau ancré est rendu en violet bordé de blanc. L'opacité indique l'âge de la position : <5 min plein (live), 5-30 min 0.75, 30-60 min 0.5, >60 min 0.3 (donnée périmée). |
| Légende | Rappel des couleurs des catégories actuellement affichées, plus une entrée Ancrés >= 30 min quand le filtre Ancrés est actif. |
| Statut (barre du haut) | Nombre de bateaux affichés. En mode stratifié, indique aussi le nombre de places réservées aux chokepoints et le détail des quotas utilisés (ex. hormuz:12 suez:8). |
| Stats globales — Tankers / LNG/LPG / Cargo | Nombre de bateaux connus par catégorie (route /api/ship_tracker/stats, champ by_category). |
| Stats globales — Ancrés | Nombre total de bateaux détectés comme ancrés (immobiles >= 30 min, toutes catégories confondues). |
| Stats globales — Avg SOG | Vitesse moyenne sur le fond (Speed Over Ground), en nœuds, de tous les bateaux connus. |
| Stats globales — Total connus | Nombre total de bateaux actuellement en mémoire dans le worker AIS (champ ships_known). |
| Choke points (live) | Pour chaque point de passage : le nom, un ratio tankers/ancrés (ex. 4/2 = 4 tankers, 2 bateaux ancrés) et le nombre total de bateaux dans la zone. Cliquer une ligne zoome sur la région. |
| Détail bateau (carte de droite) | Nom, MMSI et type ; Catégorie ; Vitesse (SOG en nœuds) ; Cap (COG en degrés) ; Position (lat/lng) ; Statut (ancré ou en route) ; Dernière maj (âge en secondes) ; Path tracé (nombre de points de la trajectoire). |
| Trajectoire (trail) | Polyligne pointillée des 60 dernières positions connues du bateau sélectionné, colorée selon sa catégorie. |
| Watchlist | Liste des MMSI suivis (persistée en localStorage), affichée sous le détail ; cliquer un MMSI re-sélectionne le bateau. |
Comment faire
- Le panneau se rafraîchit automatiquement toutes les 30 secondes ; le bouton ↻ ne sert qu'à forcer une mise à jour immédiate.
- Lis l'opacité des triangles : un bateau pâle (>60 min) signale une position périmée, pas une absence ; c'est normal sur les chokepoints peu couverts.
- Le ratio affiché pour chaque chokepoint est tankers/ancrés : une hausse des ancrés à Hormuz ou en mer Rouge peut précéder un stress sur le pétrole.
- La watchlist est sauvegardée localement (localStorage), elle survit donc aux rechargements de page.
- Section 100% live : sans clé AIS_STREAM_KEY valide dans .env, aucune donnée ne s'affiche.
- La couverture AISStream est très inégale ; les chokepoints rares (Hormuz, Suez, Bab-el-Mandeb, Panama) ne reçoivent parfois qu'une position toutes les 1-2 h via des récepteurs côtiers lointains.
- Le bouton Vider le cache n'améliore PAS l'homogénéité : il dégrade temporairement la couverture, car les zones rares mettront plusieurs heures à se reconstituer. À n'utiliser qu'en cas de données manifestement corrompues.
- Les bateaux non vus depuis 4 h sont purgés de la mémoire ; les positions affichées peuvent donc dater de plusieurs heures dans les zones sous-couvertes.
- Les bulk carriers ne sont pas distingués dans les codes AIS et sont regroupés avec la catégorie Cargo.
- Le statut ancré est un proxy (SOG <= 0.6 nœud depuis >= 30 min) et non une confirmation officielle de stockage flottant.
Options Gamma
Cette section calcule le GEX (Gamma Exposure) des teneurs de marché d'options par strike pour un sous-jacent donné. Le serveur récupère la chaîne d'options via yfinance (ETF, indices, actions) ou Deribit pour BTC/ETH, calcule le gamma Black-Scholes de chaque strike pondéré par l'open interest, et en déduit le GEX total, le flip point (prix où le gamma dealer passe de négatif à positif), les murs de calls (résistances) et de puts (supports), le ratio Put/Call et le vol smile (IV par strike). La formule affichée est GEX = (gamma_call x OI_call - gamma_put x OI_put) x 100 x spot^2 x 1% move.
À utiliser avant ou pendant une séance pour situer le prix par rapport aux niveaux de positionnement des dealers : au-dessus du flip (gamma positif) la volatilité est contenue et le prix a tendance à se faire aimanter / fader les extrêmes ; en-dessous (gamma négatif) les mouvements sont amplifiés et les cassures sont plus pures. Sert de contexte macro pour orienter une stratégie ou confirmer un signal.
Connexion Internet (yfinance pour ETF/indices/actions, Deribit pour BTC/ETH). Aucune clé requise. Pour les sous-jacents futures CME, le provider Databento a été retiré (2026-05-15) : on passe par le proxy ETF historique (SPY pour ES, QQQ pour NQ, etc.) et un champ Spot manuel peut être requis.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Sous-jacent (select og-symbol) | Choisit l'instrument analysé, groupé en Futures CME (Databento) et ETF / Stocks. Liste fournie par /api/options/symbols : SPY, QQQ, IWM, DIA, GLD, SLV, USO, UNG, TLT, HYG, FXI, EEM, AAPL, MSFT, NVDA, TSLA (+ BTC/ETH via Deribit). Relance le calcul à chaque changement. |
| Horizon (select og-expiries) | Filtre les options par bucket DTE (jours avant expiration) : Scalp 0-2 DTE (pinning), Intraday 2-7 DTE (défaut), Swing 7-30 DTE, Macro 30-365 DTE. Chaque bucket isole une population d'options différente et resserre la fenêtre de distance des murs. |
| Spot (input og-spot) | Prix live à utiliser comme F dans Black-76, visible uniquement pour les futures CME (Databento ne stocke pas de spot). Auto-rempli depuis le feed live (le serveur de données Databento/prices) si dispo, sinon saisie manuelle. Caché pour les ETF/stocks (yfinance gère le spot). |
| Bouton refresh (cercle fléché) | Force le rafraîchissement en bypassant le cache de 60 s (envoie force=1). |
| Statut (og-status) | Texte d'état : affiche fetch en cours, ou le résumé du dernier calcul (nombre de strikes, d'expiries et âge du cache), ou un message d'erreur. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Spot ($) (KPI + sous-titre) | Prix spot du sous-jacent. Le sous-titre affiche l'équivalent futures et cash live (ex. ES, SPX) avec leur ratio de conversion quand disponible. |
| Total GEX (KPI) | Somme du GEX net sur tous les strikes. Vert = positif (dealers stabilisent), rouge = négatif (dealers amplifient). |
| Flip Point (KPI + carte NIVEAU MAGNÉTIQUE) | Prix spot où le profil gamma dealer passe de négatif (squeeze) à positif (fade), calculé par profil sticky-strike sur [spot x0.8, spot x1.2]. La carte montre la distance en % et $ et la note de régime. Indéterminé si le profil ne change pas de signe. |
| ATM Strike (KPI) | Strike le plus proche du spot (at-the-money). |
| Put/Call OI (KPI) | Ratio open interest puts / calls. Rouge si > 1.2 (excès de puts), vert si < 0.8 (excès de calls). |
| Calls OI / Puts OI (KPI) | Open interest total agrégé côté calls (vert) et côté puts (rouge). |
| Régime (KPI) | Positive (vert) si spot au-dessus du flip = dealers stabilisent et suppriment la vol ; Negative (rouge) si spot en-dessous = dealers amplifient les mouvements. |
| RÉSISTANCES (call walls) | Jusqu'à 3 strikes au-dessus du spot classés par |call_gex| (murs de calls = freins à la hausse). Chaque ligne montre strike, distance, OI, GEX et l'équivalent futures. |
| SUPPORTS (put walls) | Jusqu'à 3 strikes en-dessous du spot classés par |put_gex| (murs de puts = planchers). Mêmes infos que les résistances. |
| GEX par strike (graphe) | Barres verticales : hauteur = |GEX| par strike, couleur = signe, avec repères verticaux au spot (bleu) et au flip (jaune pointillé). Filtré à ±15% autour du spot. |
| Vol smile (IV par strike) (graphe) | Volatilité implicite par strike et par expiry (champ vol_smile du backend), filtré à proximité du spot. Visualise le skew du marché. |
| Top strikes par |GEX| (tableau) | Jusqu'à 12 strikes triés par |GEX| décroissant. Colonnes : Strike, GEX (net), Call OI, Put OI, Call GEX, Put GEX. |
| Note sous-jacent + badge de transfert | Explique le rapport ETF / spot commodity (ex. SPY ≈ SPX/10) et la fiabilité du transfert vers les futures : TRANSFERT FIABLE (high), MOYEN (medium), FAIBLE (low), MAUVAIS (very_low). |
Comment faire
- Au-dessus du flip (gamma positif) privilégie le fade des extrêmes et le pinning ; en-dessous, joue les cassures et suis le trend.
- Préfère les sous-jacents au badge TRANSFERT FIABLE (SPY, QQQ) : leur GEX se transfère bien aux futures par index arb.
- Le sous-titre du Spot donne directement l'équivalent futures (ES, NQ) et cash (SPX, NDX) pour reporter les niveaux sur ton chart.
- Évite USO et UNG (badge TRANSFERT MAUVAIS) : le contango / roll yield rend leur GEX non fiable pour CL et NG.
- Le provider Databento options a été retiré (2026-05-15) : les futures CME passent par un proxy ETF historique et exigent souvent un Spot manuel.
- Le flip peut être indéterminé si le profil gamma ne change pas de signe sur l'intervalle [spot x0.8, spot x1.2].
- Les commodity ETF (GLD, SLV) ont un transfert FAIBLE : pas d'arbitrage direct ETF / futures, GEX peu fiable.
- Cache de 60 s côté front (et 10 min côté backend) : utilise le bouton refresh pour des données vraiment fraîches.
COT
COT (Commitment of Traders) affiche le positionnement net des speculateurs (Non-Commercials) face aux hedgers (Commercials) sur 21 marches a terme majeurs (devises, indices, metaux, energie, agricoles, Bitcoin). Les donnees viennent du rapport hebdomadaire officiel de la CFTC (publie le vendredi soir), via l'API publique gratuite Socrata. Pour chaque marche tu vois le net Non-Commercial, sa variation hebdo, son percentile rank sur 1 an et 3 ans, l'open interest, un graphique historique et le detail des 10 derniers rapports.
A utiliser comme filtre macro/sentiment avant de prendre position sur un future ou son sous-jacent : un positionnement speculatif extreme (long ou short crowded) signale un consensus de foule souvent annonciateur de retournement. Sert de contexte directionnel, pas de signal d'entree precis.
Connexion internet pour interroger l'API CFTC publicreporting.cftc.gov (gratuite, sans cle ni authentification). Aucune licence ni compte courtier requis. Resultats mis en cache 6h sur disque.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Scanner (bouton ↻, Overview) | Lance le scan parallele des 21 marches (~5-8s) et remplit le tableau Overview avec le positionnement actuel de chacun. Appelle /api/macro/cot/all. |
| Marche (select cot-market) | Choisit le marche a detailler parmi les 21 (EUR/USD, Gold, S&P 500 E-Mini, WTI Crude, Bitcoin Futures, etc.). Par defaut sur Gold. |
| Historique (select cot-years) | Profondeur d'historique a charger : 3 ans, 5 ans (defaut) ou 10 ans. S'applique au detail par marche ET au scan Overview. |
| Charger (bouton cot-load-btn) | Charge le detail complet du marche selectionne (stats, graphique, tableau). Appelle /api/macro/cot/series. |
| Clic sur une ligne du tableau Overview | Selectionne ce marche dans le detail, declenche son chargement et fait defiler vers le graphique (fonction cotPickMarket). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Tableau Overview — Marche | Nom du marche (label, ex. Gold, S&P 500 E-Mini). |
| Tableau Overview — Net NC | Position nette Non-Commercial actuelle (long moins short). Vert si positive, rouge si negative. |
| Tableau Overview — Delta hebdo | Variation du net Non-Commercial vs le rapport precedent. Vert si en hausse, rouge si en baisse. |
| Tableau Overview — % Rank 3Y | Percentile rank du net actuel sur 3 ans, avec barre visuelle. Plus haut = positionnement long historiquement eleve. Lecture des couleurs : vert >=85 (long extreme), rouge <=15 (short extreme), orange entre 70-85 ou 15-30. |
| Tableau Overview — Date | Date du dernier rapport CFTC pour ce marche. |
| Tableau Overview — Signal | Verdict derive du % Rank 3Y : ▲ LONG crowded (>=85), ▼ SHORT crowded (<=15), long extended (>=70), short extended (<=30), ou mid-range. |
| KPI Net Non-Commercial | Position nette speculative actuelle (vert/rouge selon signe). Sous-titre : detail Long et Short separes. |
| KPI Variation hebdo | Changement du net NC sur la derniere semaine. Sous-titre : date du dernier rapport. |
| KPI % Rank 1Y | Percentile rank du net actuel sur 1 an (52 semaines). Sous-titre : long crowded (>=85), short crowded (<=15) ou mid-range. Code couleur identique au rank 3Y. |
| KPI % Rank 3Y | Percentile rank du net actuel sur 3 ans (~156 semaines). Repere principal pour juger l'extreme de positionnement. |
| KPI Open Interest | Open interest total (toutes categories) du dernier rapport. Sous-titre : Open Interest total. |
| Graphique Net Non-Commercial — historique | Courbe du net Non-Commercial sur la periode choisie, avec ligne zero accentuee quand la serie traverse 0. |
| Tableau Derniers rapports — Date | Date de chacun des 10 derniers rapports hebdomadaires (ordre decroissant). |
| Tableau Derniers rapports — NC Long | Positions longues Non-Commercial du rapport. |
| Tableau Derniers rapports — NC Short | Positions courtes Non-Commercial du rapport. |
| Tableau Derniers rapports — Net NC | Net Non-Commercial (Long moins Short), colore vert/rouge selon signe. |
| Tableau Derniers rapports — Delta hebdo | Variation du net NC vs la semaine precedente, colore vert/rouge. |
| Tableau Derniers rapports — Net Comm | Net Commercial (hedgers), generalement oppose au net Non-Commercial. Vert/rouge selon signe. |
| Tableau Derniers rapports — OI | Open interest total du rapport. |
Comment faire
- Le % Rank 3Y est le meilleur indicateur d'extreme : vert au-dessus de 85% = foule speculative longue (risque de retournement baissier), rouge sous 15% = foule courte.
- Le net Commercial (hedgers) est en general l'image miroir du net Non-Commercial ; les hedgers sont consideres comme l'argent intelligent (smart money).
- Le cache 6h evite de re-interroger la CFTC inutilement : les rapports ne sortent qu'une fois par semaine (vendredi soir EST), donc une seule mise a jour hebdomadaire suffit.
- Clique directement une ligne de l'Overview pour basculer sur son detail sans repasser par le select.
- Les donnees COT sont hebdomadaires et publiees avec retard (vendredi soir pour la photo du mardi) : c'est un outil de contexte macro, jamais un signal d'entree intraday.
- Source unique : CFTC Legacy Futures Only (dataset jun7-fc8e). Pas de breakdown disaggregated/TFF ni d'options ; seuls les futures sont comptes.
- Si le reseau est KO, l'API sert le dernier cache meme perime et l'affiche avec la mention (cache stale, reseau KO).
- Un marche peut renvoyer pas de donnees si le motif de recherche CFTC ne matche aucun contrat sur la periode ; la ligne Overview apparait grisee.
- Le % Rank 1Y/3Y se calcule sur l'historique charge (52 et ~156 semaines) : charger seulement 3 ans rend le rank 3Y identique au rank full.
- Incoherence d'affichage : le sous-titre annonce 20 marches majeurs tandis que la liste reelle et l'invite Scanner en comptent 21.
Seasonal
La section Seasonal History calcule les patterns saisonniers d'un ticker à partir de son historique de cours (par défaut 20 ans). Elle affiche les rendements moyens par mois calendaire, par jour de semaine (lun-ven), une heatmap année × mois, et une comparaison du mois en cours (MTD) face à sa moyenne historique. Les données viennent de yfinance (Yahoo Finance, gratuit) et sont mises en cache 24h sur disque.
À utiliser en amont d'un trade ou d'un backtest pour vérifier si la période actuelle (mois ou jour) est statistiquement favorable ou défavorable sur l'actif visé, et contextualiser une décision macro/directionnelle.
Connexion internet pour accéder à Yahoo Finance (yfinance). Aucune licence payante : la source est gratuite. Il faut un ticker valide au format yfinance (ex. AAPL, BTC-USD, EURUSD=X). Minimum 252 jours d'historique sinon le calcul échoue.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Preset | Liste déroulante de symbols curatés, groupés par catégorie (Indices, Commodities, Forex, Crypto, Rates, Volatility). Choisir un preset remplit automatiquement le champ ticker libre. |
| Ou ticker libre | Champ texte pour saisir n'importe quel ticker yfinance (placeholder AAPL, MSTR, EURUSD=X). Format validé côté serveur : 1 à 15 caractères parmi lettres, chiffres, . _ = ^ -. |
| Historique | Profondeur d'historique à charger : 10 ans, 20 ans (par défaut) ou 30 ans. Le serveur borne la valeur entre 3 et 30 ans. |
| Charger | Bouton qui lance la requête (ssnLoad) vers /api/macro/seasonal/data et affiche les résultats. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Statut (ssn-status) | Ligne d'état sous le sélecteur : pendant le chargement, puis ticker, nombre de mois et plage de dais (first_date → last_date). Affiche aussi '(cache stale)' si les données proviennent d'un cache périmé suite à un échec de rafraîchissement, ou un message d'erreur. |
| Cache 24h | Indication fixe : les résultats sont mis en cache 24h par couple ticker/années pour limiter les appels à Yahoo. |
| MTD (mois courant) | Carte 'Mois courant — vs historique'. MTD = performance du mois en cours (du 1er à aujourd'hui). Vert si positif, rouge si négatif. |
| Moyenne historique (mois) | Rendement moyen historique du mois calendaire courant sur toute la période chargée. Sert de référence pour juger le MTD. |
| Win-rate (mois) | Pourcentage des années où ce mois calendaire a fini positif. |
| Δ vs moyenne | Écart entre le MTD courant et la moyenne historique du mois (badge vert si au-dessus de la moyenne, rouge si en-dessous). |
| Returns moyens par mois calendaire (graphe) | Histogramme des rendements mensuels moyens (Jan→Déc) ; barres vertes positives, rouges négatives, axe en %. |
| Table mois — Mois | Colonne du tableau mensuel : nom du mois (Jan…Déc). |
| Table mois — Mean | Rendement mensuel moyen du mois sur la période (vert/rouge). |
| Table mois — Med | Rendement mensuel médian du mois (moins sensible aux valeurs extrêmes que la moyenne). |
| Table mois — Win | Win-rate : part des années où ce mois a été positif. |
| Table mois — N | Nombre d'observations (années) utilisées pour ce mois. |
| Jour de semaine (graphe) | Histogramme des rendements journaliers moyens par jour de semaine (Lun→Ven) ; barres vertes/rouges, axe en %. |
| Table jour — Jour | Colonne : jour de semaine (Lun…Ven). |
| Table jour — Mean | Rendement journalier moyen pour ce jour (affiché à 3 décimales en %). |
| Table jour — Win | Win-rate : part des jours de ce type qui ont fini positifs. |
| Heatmap returns mensuels par année | Matrice année (lignes) × mois (colonnes Jan→Déc). Chaque cellule = rendement du mois, colorée du rouge (négatif) au vert (positif) selon l'intensité. Permet de repérer la régularité d'un pattern. |
| Heatmap — Total | Dernière colonne : rendement composé de l'année (produit des rendements mensuels − 1), coloré selon le signe et l'amplitude. |
Comment faire
- Le champ ticker libre accepte tout symbole Yahoo : actions (AAPL), crypto (BTC-USD, ETH-USD), FX (EURUSD=X), indices (^VIX).
- Regarder la colonne 'N' et 'Win' ensemble : une moyenne forte sur peu d'années (N faible) est moins fiable qu'un win-rate élevé sur 20-30 ans.
- Comparer Mean et Med dans la table mois : un gros écart signale que la moyenne est tirée par une ou deux années extrêmes.
- Le premier chargement après 24h est plus lent (téléchargement Yahoo) ; les suivants sont instantanés tant que le cache est frais.
- Données 100% issues de Yahoo Finance : si Yahoo ne renvoie rien pour le ticker, ou en cas de rate-limit, le calcul échoue (erreur 502) ou retombe sur un cache marqué 'stale'.
- Minimum 252 jours d'historique requis : un ticker trop récent renvoie une erreur 'historique insuffisant'.
- auto_adjust=True : les cours sont ajustés dividendes/splits, donc les rendements diffèrent des cours bruts.
- L'historique réel peut être plus court que demandé (10/20/30 ans) si le ticker n'a pas autant de données ; la plage effective est indiquée dans le statut.
- Patterns purement historiques et descriptifs : aucune garantie de répétition future, ce n'est pas un signal de trading exécutable.
Correlations
Cette section calcule une matrice de correlations entre plusieurs actifs (baskets curates ou tickers personnalises) a partir des rendements quotidiens. Elle affiche une heatmap couleur, le top 5 des paires les plus correlees positivement et negativement, et une correlation glissante (rolling) entre deux actifs au fil du temps. Les donnees viennent de yfinance (Close ajustes splits/dividendes), avec un cache disque de 6h.
A utiliser quand vous voulez verifier la diversification reelle d'un portefeuille ou detecter un changement de regime de marche. Des correlations qui convergent vers +1 signalent un regime risk-off ou tout bouge ensemble et ou la diversification ne protege plus.
Connexion internet pour telecharger les donnees yfinance (gratuit, sans cle API). Aucune licence ni connexion courtier requise.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Basket cure (select id=cor-preset) | Charge un panier predefini de tickers dans la zone Symbols. Choix reels : Macro core (10), FX majors (9), Global indices (9), US sectors (11), Risk-on / Risk-off (8), Crypto majors (7). Defaut a l'ouverture : Macro core. |
| Window (jours) (select id=cor-window) | Nombre de jours de rendements utilises pour calculer la matrice et la rolling. Valeurs : 20 (1 mois), 60 (3 mois, defaut), 120 (6 mois), 252 (1 an). Borne par le serveur entre 10 et 252. |
| Period (select id=cor-period) | Profondeur d'historique telechargee. Valeurs : 2 ans (730 j), 5 ans (1825 j, defaut), 10 ans (3650 j). Surtout utile pour la rolling correlation qui s'etend sur toute la periode. Borne serveur entre window+30 et 3650 j. |
| Symbols (textarea id=cor-symbols) | Liste libre de tickers, un par ligne ou separes par virgule, max 20. Format yfinance accepte (ex : SPY, QQQ, GLD, TLT, ^VIX). Au moins 2 symboles requis. Rempli automatiquement par le basket choisi mais editable. |
| Charger (bouton id=cor-load-btn) | Lance le calcul de la matrice via POST /api/macro/correlations/matrix et affiche stats, heatmap et top pairs. |
| Clic sur une cellule de la matrice ou sur une paire des listes Top 5 | Declenche le calcul de la correlation glissante (rolling) entre les deux actifs concernes via GET /api/macro/correlations/rolling et affiche le graphe en bas. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Statut (span id=cor-status) | Ligne de feedback : nombre de symbols, nombre d'observations, plage de dates (first_date - last_date), et la liste des tickers manquants si certains n'ont pas de donnees. |
| Correlation moyenne (cor-stat-avg) | Moyenne de toutes les paires de la matrice. Code couleur : rouge si > 0.5 (regime tout correle, risque concentre), orange si > 0.3 (correlation elevee), vert sinon (decorrelation, bon pour la diversification). Sous-titre explicatif sous le chiffre. |
| Top + paire (cor-stat-top-pos) | La paire la plus correlee positivement et sa valeur (vert). |
| Top - paire (cor-stat-top-neg) | La paire la plus anti-correlee et sa valeur (rouge). Une correlation tres negative = bonne couverture potentielle. |
| Window (cor-stat-window) | Rappelle la fenetre utilisee (en jours) et le nombre d'observations daily reellement disponibles. |
| Matrice / heatmap (cor-matrix-body) | Tableau de toutes les correlations par paire. Vert = correlation positive (intensite proportionnelle), rouge = negative, diagonale grisee (auto-correlation = 1, affichee --). Lire : plus c'est vert vif, plus les deux actifs bougent ensemble. Chaque cellule hors diagonale est cliquable pour la rolling. |
| Top 5 correlations positives (cor-top-pos-body) | Liste des 5 paires les plus positivement correlees, valeur a 3 decimales, cliquables vers la rolling. |
| Top 5 correlations negatives (cor-top-neg-body) | Liste des 5 paires les plus anti-correlees (meilleures couvertures), cliquables vers la rolling. |
| Rolling correlation (graphe canvas + cor-rolling-sub) | Courbe de la correlation glissante entre deux actifs sur toute la Period. Axe Y de -1 a +1, bandes vertes (zone correlee >0.3) et rouges (zone anti-correlee <-0.3), ligne zero, ligne moyenne en pointille bleu. Le sous-titre indique : nombre de points, valeur courante, moyenne, et range [min, max]. Lire : sert a voir QUAND le regime de correlation a change. |
Comment faire
- La correlation moyenne est le KPI cle : si elle vire au rouge (>0.5), votre diversification est en panne, tout bouge ensemble.
- Utilisez une Period de 5 ou 10 ans pour que la rolling correlation montre clairement les changements de regime (crises, pivots de la Fed).
- Les tickers suivent le format yfinance : ^VIX pour le VIX, EURUSD=X pour le FX, BTC-USD pour le crypto, DX=F pour les futures.
- Une paire fortement negative dans Top 5 negatives est un candidat naturel de couverture (hedge).
- Donnees yfinance gratuites : un ticker mal orthographie ou non liste sort silencieusement, il apparait dans la liste des manquants du statut et est absent de la matrice.
- Cache disque de 6h par combinaison symbols+window+period : un nouveau Charger identique dans les 6h renvoie le resultat en cache, pas une donnee fraiche.
- Le serveur refuse moins de 2 ou plus de 20 symboles, et rejette les tickers ne respectant pas le format (caracteres A-Z 0-9 . _ = ^ -, 1 a 15 caracteres).
- Si la fenetre contient trop peu de jours (moins de max(10, window/3)), le calcul echoue avec un message d'erreur (trop peu de donnees).
- Les correlations sont calculees sur les rendements quotidiens (pct_change), pas sur les prix ; les NaN sont remplis a 0.
- Section purement analytique : aucune connexion courtier, aucun flux temps reel, les donnees sont des cloture daily decalees.
Regime Clock
Le Macro Regime Clock classe le mois courant dans 1 des 4 quadrants Croissance x Inflation, a la maniere de la Merrill Lynch Investment Clock. Il telecharge deux series FRED publiques (sans cle API) : la production industrielle INDPRO en glissement annuel (proxy de croissance) et l'indice des prix CPIAUCSL en glissement annuel (proxy d'inflation). Chaque mois est positionne par rapport a ses pivots (medianes historiques depuis 1948) pour determiner le regime : Expansion, Recovery, Stagflation ou Contraction. La page affiche le regime courant, le nuage de points des 36 derniers mois, la repartition du temps passe dans chaque regime et un tableau des 12 derniers mois.
A consulter au debut d'une session pour cadrer le biais macro general (quelles classes d'actifs sont favorisees) avant de choisir ou d'orienter une strategie. Utile comme filtre directionnel de haut niveau, pas comme signal d'entree intraday.
Connexion internet pour telecharger les series FRED (CSV public, aucune cle API requise). Les donnees sont mises en cache 24h sur disque ; en cas de coupure reseau, un cache plus ancien est reutilise et marque cache stale.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| (aucun controle interactif) | La page n'a ni input, ni select, ni bouton, ni toggle. Elle se charge automatiquement a l'ouverture via _rgmLoad() qui appelle /api/macro/regime/data. Seule l'icone d'aide (i) en haut ouvre une infobulle explicative. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Regime courant | Carte principale affichant le nom du regime du dernier mois (Expansion, Recovery, Stagflation ou Contraction) avec une couleur dediee (orange / vert / rouge / bleu) et une description des classes d'actifs favorisees. |
| Croissance YoY (INDPRO) | Variation annuelle de la production industrielle au dernier mois, en %. Vert si au-dessus du pivot, rouge sinon. Sous-ligne : valeur du pivot (mediane histo) et tendance sur 6 mois (fleche haut/bas/laterale). |
| Inflation YoY (CPI) | Variation annuelle du CPI au dernier mois, en %. Rouge si au-dessus du pivot (inflation elevee), vert sinon. Sous-ligne : valeur du pivot et tendance sur 6 mois. |
| Donnees | Nombre de mois d'observations utilises et la plage de dates couverte (premiere_date -> derniere_date). Mention (cache stale) si les donnees affichees viennent d'un cache non rafraichi suite a une erreur reseau. |
| Position courante + trail 36 mois (graphique quadrant) | Nuage de points : axe X = Croissance YoY, axe Y = Inflation YoY. Les 2 lignes pointillees (pivots = medianes) decoupent les 4 quadrants colores (Stagflation haut-gauche, Expansion haut-droit, Contraction bas-gauche, Recovery bas-droit). La trajectoire des 36 derniers mois est tracee, le point le plus recent est gros et date. |
| % temps dans chaque regime | Barres montrant la part de l'historique passee dans chaque regime (Expansion, Recovery, Stagflation, Contraction). Par construction (pivots = medianes), la repartition est proche de 25% par regime. |
| Trajectoire recente (12 derniers mois) | Tableau colonnes Date / Growth / Inflation / Regime pour les 12 derniers mois (plus recent en haut). Growth en vert/rouge selon le pivot croissance ; Inflation en rouge/vert selon le pivot inflation. |
Comment faire
- La fleche de tendance 6 mois sous Croissance et Inflation indique vers quel quadrant l'economie glisse : c'est plus parlant que la position statique.
- Le graphique trail montre la dynamique : une trajectoire qui tourne autour des pivots signale un changement de regime imminent.
- Donnees mensuelles uniquement : un regime ne change pas en intraday, inutile de rafraichir souvent.
- Les pivots sont des medianes historiques, donc la repartition est mecaniquement proche de 25% par regime : ce n'est pas une mesure de rarete d'un regime.
- Le CPI (CPIAUCSL) est publie avec du retard et INDPRO est revise : le dernier mois affiche peut bouger lors des revisions FRED.
- Mention
cache stale= les chiffres ne sont pas a jour (echec reseau, repli sur un ancien cache). Verifier la connexion. - Le classement est binaire (au-dessus / en-dessous du pivot) : une valeur juste a la frontiere peut basculer de regime d'un mois a l'autre sans changement economique reel.
- Proxies US uniquement (production industrielle + CPI urbain) : ne reflete pas la macro hors Etats-Unis.
Yield Curve
Tableau de bord en lecture seule qui affiche la courbe des taux du Tresor americain (3M, 2Y, 5Y, 10Y, 30Y) ainsi que les spreads 2s10s (10Y-2Y) et 3m10y (10Y-3M), le rendement reel a 10 ans et l'inflation anticipee (breakeven) a 10 ans. Les donnees proviennent de FRED (Federal Reserve, sans cle API) et sont mises en cache 12h. Aucune saisie : la page se charge et se dessine automatiquement.
A consulter pour lire le contexte macro de taux avant ou pendant un backtest : une courbe inversee (2s10s negatif) signale historiquement un risque de recession avec ~12 a 18 mois d'avance et oriente le regime de marche.
Acces internet pour interroger FRED (fred.stlouisfed.org). Aucune cle ni licence requise. Donnees US Treasury uniquement.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Bouton aide (i) — helpShow('mac_yield') | Ouvre l'infobulle d'explication de la section (titre title="A quoi sert cette section ?"). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| 2Y (yc-2y) | Rendement du Tresor 2 ans (serie FRED DGS2), affiche en pourcentage a 2 decimales. |
| 10Y (yc-10y) | Rendement du Tresor 10 ans (DGS10), en pourcentage. |
| 2s10s (yc-2s10s) | Spread 10Y-2Y (serie T10Y2Y). Vert si >= 0 (sous-titre normalisee), rouge si < 0 (sous-titre inversee) : une valeur negative = courbe inversee, signal de recession. |
| 3m10y (yc-3m10y) | Spread 10Y-3M (serie T10Y3M), autre mesure d'inversion suivie par la Fed. |
| 10Y Real (yc-real) | Rendement reel a 10 ans, issu des TIPS (serie DFII10) : rendement nominal moins inflation anticipee. |
| 10Y Breakeven (yc-be) | Inflation anticipee a 10 ans (serie T10YIE) : difference entre 10Y nominal et 10Y reel, soit l'inflation que le marche price. |
| Courbe — now vs 6m ago vs 12m ago (yc-curve-canvas) | Graphique de la courbe des taux (3M/2Y/5Y/10Y/30Y) a 3 instants : aujourd'hui (bleu), il y a 6 mois (gris), il y a 12 mois (gris pointille). Permet de voir l'aplatissement/pentification dans le temps. |
| 2s10s historique 5 ans (yc-spread-canvas) | Courbe du spread 2s10s sur 5 ans avec ligne zero ; la zone rouge sous zero = periode d'inversion, la zone verte au-dessus = courbe normale. |
| 10Y Real Yield + Breakeven Inflation 5 ans (yc-real-canvas) | Graphique sur 5 ans superposant le rendement reel 10Y (DFII10) et l'inflation breakeven 10Y (T10YIE). |
Comment faire
/api/macro/yield_curve/data).inversee = signal de risque de recession, vert/normalisee = courbe saine.- Le KPI 2s10s change de couleur automatiquement : rouge des qu'il passe sous zero, c'est le point a surveiller en priorite.
- Le breakeven 10Y = 10Y nominal moins 10Y reel ; le comparer au rendement reel donne la part inflation vs croissance dans les taux.
- Les snapshots de la courbe (now / 6m / 12m) utilisent la valeur la plus proche AVANT la date cible, donc une comparaison directe et fiable de la pente.
- Donnees en cache 12h : les valeurs ne sont pas du temps reel intraday, le snapshot peut dater de quelques heures.
- Source FRED uniquement (Treasury US) : aucune autre zone (zone euro, UK, etc.) n'est couverte ici.
- Si FRED est injoignable une serie peut rester vide et un KPI ou une courbe afficher
—; en cas d'echec total l'API renvoie une erreur 502. - Le premier chargement apres expiration du cache declenche un telechargement de 10 series FRED et peut etre un peu lent.
USD Liquidity
Cette section calcule l'indice de liquidité nette en USD à partir de trois séries officielles de la Réserve fédérale (via FRED) : Liquidité = Bilan Fed (WALCL) − Treasury General Account (WTREGEN) − Reverse Repo (RRPONTSYD), exprimée en milliards USD. Elle capture la quantité de cash réellement disponible sur les marchés financiers, une mesure historiquement très corrélée aux actifs risqués (actions, crypto / BTC notamment), mais avec du décalage (lag). La page affiche le niveau actuel, ses variations sur 1/3/6/12 mois, et deux graphiques (composite 5 ans et décomposition des trois composantes).
À consulter en analyse macro de fond, avant de décider de l'orientation directionnelle ou du niveau de levier : une liquidité en hausse est un vent porteur (tailwind) pour le risque, une liquidité en baisse est un vent contraire (headwind). Sert de filtre de contexte, pas de signal d'entrée précis.
Connexion internet pour télécharger les CSV publics de FRED (fred.stlouisfed.org) — séries WALCL, WTREGEN, RRPONTSYD. Aucune clé API ni licence payante requise. Données mises en cache 12h localement.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Bouton d'aide « i » (helpShow('mac_liquidity')) | Ouvre l'infobulle expliquant à quoi sert la section et comment lire l'indice (hausse = tailwind risque, baisse = headwind). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Liquidity (liq-cur) | Niveau de liquidité nette actuel, formaté en B (milliards) ou T (milliers de milliards, au-delà de 1000B). Sous-titre = date de la dernière observation. |
| Δ 1m (liq-d1m) | Variation de liquidité vs il y a ~30 jours. Vert si positif, rouge si négatif. Le signe indique vent porteur/contraire à 1 mois. |
| Δ 3m (liq-d3m) | Variation de liquidité vs il y a ~90 jours. Couleur verte/rouge selon le signe. |
| Δ 6m (liq-d6m) | Variation de liquidité vs il y a ~180 jours. Couleur verte/rouge selon le signe. |
| Δ 12m (liq-d12m) | Variation de liquidité vs il y a ~365 jours. Couleur verte/rouge selon le signe ; donne la tendance de fond sur 1 an. |
| Liquidity composite (5 ans, weekly) | Graphique en aire de la liquidité nette sur ~5 ans (environ 260 points hebdomadaires). Pente montante = liquidité en expansion (favorable au risque). |
| Composantes — Fed BS / TGA / RRP | Graphique des trois composantes individuelles : Bilan Fed (fed_bs), Treasury General Account (tga) et Reverse Repo (rrp), toutes en milliards USD. Permet de voir laquelle pilote la variation de liquidité. |
Comment faire
- Une hausse du TGA (compte du Trésor) ou du RRP (reverse repo) draine de la liquidité même si le bilan de la Fed est stable : le graphique des composantes montre exactement d'où vient le mouvement.
- Privilégier la tendance des Δ multi-horizons (surtout 3m/6m/12m) plutôt que le niveau brut, car la corrélation aux actifs risqués agit avec du lag.
- Le cache de 12h évite de surcharger FRED : inutile de recharger la page en boucle, la donnée FRED est de toute façon hebdomadaire.
- Les données sont hebdomadaires (weekly) : il n'y a aucune granularité intraday ni temps réel, et la dernière valeur peut dater de plusieurs jours.
- Aucun contrôle interactif (pas de sélecteur de période, d'export ni de bouton refresh) : la page n'affiche que la vue par défaut chargée automatiquement.
- Si FRED est indisponible ou renvoie une série vide / moins de 30 dates communes, l'API répond une erreur 502 et la page reste vide (les cartes restent masquées) ; une connexion internet est indispensable au premier chargement.
- Les variations Δ utilisent la dernière observation antérieure ou égale à la date cible (J-30/90/180/365) ; sur une série hebdomadaire le décalage réel peut différer de quelques jours du libellé du mois.
- Corrélation forte mais avec lag : ce n'est pas un signal d'entrée mais un indicateur de régime macro à interpréter comme contexte.
Risk On/Off
Cette section calcule un composite Risk-On / Risk-Off : un seul chiffre (un z-score) qui resume l'humeur globale du marche. Il combine 6 indicateurs (proxies) classiques de stress en moyennant leurs z-scores sur 252 jours glissants : le VIX, le spread de credit High Yield (HY OAS), la paire AUD/JPY (proxy de carry trade), le ratio Or/Cuivre, le ratio SPY/TLT (actions vs obligations) et le Bitcoin. Certains indicateurs sont inverses pour que, dans tous les cas, un score positif = risk-on (appetit pour le risque) et un score negatif = risk-off (fuite vers la securite). La page affiche une grosse jauge avec le z-score, le regime detecte, le detail de chaque composante et l'historique sur 5 ans.
A consulter avant de prendre des positions pour savoir si le contexte general du marche est porteur (risk-on) ou stresse (risk-off). Utile comme filtre macro de haut niveau pour adapter son exposition ou eviter de trader a contre-courant du sentiment dominant.
Connexion Internet : les donnees sont telechargees automatiquement depuis yfinance (VIX, AUD/JPY, GLD, CPER, SPY, TLT, BTC-USD) et FRED (serie BAMLH0A0HYM2 pour le HY OAS). Aucune cle ni licence payante requise. Resultats mis en cache 6 heures.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Bouton aide i (helpShow mac_risk) | Ouvre l'infobulle explicative de la section (titre : A quoi sert cette section ?). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Composite z-score (rs-z-value) | Le chiffre central de la jauge : moyenne des z-scores des 6 proxies. Signe + = risk-on, signe - = risk-off. Echelle de lecture de -2 a +2 environ. |
| Regime (rs-regime-label) | Etiquette du regime deduite du z-score. STRONG RISK-ON (z >= 1.0), RISK-ON (z >= 0.3), NEUTRAL (-0.3 < z < 0.3), RISK-OFF (-1.0 < z <= -0.3), STRONG RISK-OFF (z <= -1.0). |
| Description du regime (rs-regime-desc) | Texte d'accompagnement du regime : STRONG RISK-ON = Risk assets bid, stress tres bas ; RISK-ON = Marche en mode appetit pour le risque ; NEUTRAL = Pas de signal directionnel net ; RISK-OFF = Stress en hausse, prudence ; STRONG RISK-OFF = Stress majeur, flight to safety. |
| Jauge graduee (rs-gauge-canvas) | Barre coloree rouge a vert avec un curseur positionne selon le z-score (borne entre -2 et +2). Rouge = risk-off, gris au centre = neutre, vert = risk-on. |
| Composantes - z-score par proxy (rs-comp-body) | Tableau d'une ligne par proxy avec : nom (VIX, HY OAS spread, AUD/JPY carry, Gold/Copper ratio, SPY/TLT ratio, Bitcoin), categorie (Volatility, Credit, FX, Commodities, Cross-asset, Crypto) et mention (inv) si l'indicateur est inverse, valeur brute actuelle, z-score actuel colore (vert si fort positif, rouge si fort negatif), et mini-barre visuelle centree sur zero. |
| Historique composite 5 ans (rs-hist-canvas) | Courbe du composite sur l'historique (jusqu'a 1500 derniers points, ~5 ans). Lignes de reference a -2, -1, 0, 1, 2 ; bandes vertes/rouges entre +/-1 et +/-2 sigma ; dernier point colore vert si positif, rouge si negatif. |
Comment faire
- Le signe est deja normalise : un z-score positif signifie toujours appetit pour le risque, meme pour les proxies inverses comme le VIX ou le HY OAS (la mention (inv) le rappelle dans le tableau).
- Quand le composite est extreme (au-dela de +/-2 sigma, dans les bandes coloriees de l'historique), c'est souvent une zone de retournement potentiel.
- Regardez quelle composante domine : un risk-off porte uniquement par le Bitcoin n'a pas le meme poids macro qu'un risk-off confirme par le VIX et le credit HY.
- Donnees retardees : le cache dure 6 heures, ce n'est donc PAS un flux temps reel intraday mais une lecture de fond quotidienne/horaire.
- Le composite n'est calcule que sur les dates communes a toutes les composantes valides ; il faut au moins 60 dates communes sinon l'API renvoie une erreur 502.
- Une composante avec moins de 60 points de donnees ou un echec de telechargement (yfinance/FRED) est ecartee et affichee en italique (data insuffisante / message d'erreur), ce qui reduit le nombre de proxies moyennes.
- Le z-score glissant a besoin d'au moins 30 points dans la fenetre de 252 jours, sinon il vaut 0 pour ce point (debut d'historique).
- Aucun reglage utilisateur : les 6 proxies, la fenetre de 252 jours et les seuils de regime sont codes cote serveur.
Inflation
Cette section décompose l'inflation américaine (CPI) par grandes catégories à partir des données publiques de la FRED. Elle affiche pour chaque composante (Headline, Core, Shelter, Services, Goods, Énergie, Food) son taux annuel YoY (year-over-year), sa variation par rapport au mois précédent, son poids estimé dans le panier, et une estimation de sa contribution en points de pourcentage. Deux graphiques complètent le tableau : les contributions actuelles à l'inflation et l'historique YoY des 5 dernières années.
À consulter quand vous voulez comprendre les moteurs de l'inflation avant d'anticiper les décisions de taux des banques centrales : un core ou un shelter encore élevé suggère une Fed restrictive plus longtemps, alors qu'une désinflation tirée par l'énergie est souvent considérée comme transitoire.
Accès internet pour récupérer les séries publiques FRED (https://fred.stlouisfed.org). Aucune clé ni licence payante requise. Données mises en cache 12h côté serveur.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Bouton aide (i) — helpShow('mac_inflation') | Ouvre la fiche d'aide expliquant à quoi sert la section et comment lire la décomposition (core sticky vs désinflation énergie). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Cartes de composantes (infl-stats-row) | Une carte par composante CPI. Headline CPI et Core CPI sont surlignés (bordure accent). Couleur du YoY : rouge >4%, orange >2%, vert clair >0%, vert <=0% (plus c'est rouge, plus la pression est forte). |
| YoY (current_yoy) | Inflation sur 12 mois de la composante, en %. C'est le chiffre principal de chaque carte. Repère clé : la cible Fed est de 2%. |
| poids (weight) | Poids approximatif de la composante dans le panier CPI (importance relative BLS Dec 2024, hardcodée). Ex : Headline 100%, Core 80.1%, Shelter 36.4%, Core Services 60.4%, Core Goods 19.7%, Énergie 6.5%, Food 13.4%. |
| Δ (yoy_change) | Variation du YoY par rapport au mois précédent, en points. Positif = l'inflation de la composante accélère ; négatif = elle ralentit (désinflation). |
| Contributions actuelles à l'inflation (pp) — infl-contrib-canvas | Graphique en barres horizontales triées : contribution estimée de chaque sous-composante (Shelter, Core Services, Core Goods, Énergie, Food) en points de pourcentage = YoY × poids/100. Repère de lecture : la barre la plus longue indique le principal moteur de l'inflation. Note : approximation visuelle, pas la décomposition BLS officielle. |
| YoY historique 5 ans — infl-hist-canvas | Courbes du taux YoY de chaque composante sur 5 ans. Lignes de repère : 0% et la cible Fed 2% (pointillés rouges). Permet de voir si l'inflation d'une composante converge vers la cible ou reste collante. |
| Composantes disponibles | Headline CPI (CPIAUCSL), Core CPI ex Food & Energy (CPILFESL), Shelter (CUSR0000SAH1), Core Services ex Energy (CUSR0000SASLE), Core Goods ex F&E (CUSR0000SACL1E), Energy (CPIENGSL), Food (CPIUFDSL). |
| Message d'erreur par composante | Si une série FRED échoue ou est vide, la carte correspondante s'affiche en grisé avec le message d'erreur au lieu du YoY. |
Comment faire
- Le Core CPI (ex Food & Energy) et le Shelter sont les composantes dites sticky : si elles restent élevées, anticipez une Fed restrictive plus longtemps.
- Une baisse du YoY tirée par l'Énergie est souvent transitoire ; vérifiez si le Core suit avant de conclure à une désinflation durable.
- Le champ Δ (yoy_change) montre l'accélération/décélération du dernier mois : utile pour repérer un retournement avant qu'il n'apparaisse dans le niveau.
- Les poids des composantes sont hardcodés (valeurs BLS récentes 2024-2025) et ne se mettent pas à jour automatiquement chaque année.
- La contribution affichée (YoY × poids/100) est une approximation visuelle, pas la décomposition officielle BLS basée sur les changements de prix.
- Données uniquement américaines (CPI US via FRED) ; pas de zone euro ni autres pays.
- Cache serveur de 12h : les chiffres ne reflètent pas l'instant présent et le CPI lui-même est publié avec retard (mensuel).
- Si FRED est injoignable, l'API renvoie une erreur 502 ou les cartes affichent un message d'erreur ; la section ne propose pas de bouton de rafraîchissement manuel.
Surprise Index
Le Macro Surprise / Momentum Index calcule un z-score sur 12 mois glissants pour 8 indicateurs macro americains telecharges depuis FRED (source publique gratuite). Il les regroupe en deux composites : un score croissance (NFP, production industrielle, ventes de detail, mises en chantier, chomage inverse) et un score inflation (CPI headline, Core CPI, PPI). L'indice Macro Surprise = croissance z - inflation z : positif = scenario favorable au risque (type goldilocks), negatif = inflation domine. Ce n'est pas une vraie surprise de consensus (qui exigerait des estimations payantes), mais un proxy base sur l'ecart de la derniere donnee a sa tendance recente.
A consulter pour situer le regime macro du moment (croissance vs inflation) avant de choisir un biais directionnel ou un univers d'actifs. Utile pour comprendre si les donnees economiques s'ameliorent ou s'essoufflent, en complement du calendrier macro et de la courbe des taux.
Aucune cle ni licence. Donnees telechargees automatiquement depuis FRED (Federal Reserve de St. Louis, CSV public). Necessite simplement un acces internet ; cache local 12h.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Bouton aide (i) | Ouvre l'infobulle d'explication helpShow('mac_surprise') : a quoi sert la section et comment lire les z-scores |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Regime momentum | Carte affichant le regime macro deduit des deux composites courants : GOLDILOCKS (croissance haute, inflation basse, meilleur cas risk), OVERHEATING (croissance + inflation hautes, Fed hawkish), STAGFLATION (croissance basse, inflation haute, pire cas), DEFLATION (les deux bas, bons du Tresor long bid), NEUTRAL (pas de signal net). Seuils declencheurs : z >= +0.3 ou <= -0.3 |
| Growth z-score | Composite croissance courant (moyenne des z-scores croissance + chomage inverse). Vert si > +0.3, rouge si < -0.3, neutre entre les deux |
| Inflation z-score | Composite inflation courant (moyenne CPI, Core CPI, PPI). Code couleur inverse : rouge si > +0.3 (inflation chaude, mauvais pour les bonds), vert si < -0.3 |
| Macro Surprise (Growth - Inflation) | Difference growth z - inflation z. Positif (vert > +0.3) = configuration goldilocks-like favorable au risque ; negatif (rouge < -0.3) = l'inflation l'emporte |
| Composite history (5 ans) | Graphique des trois series sur ~5 ans : ligne verte = Growth z, ligne rouge = Inflation z, ligne grise = Macro Surprise (G-I). Echelle z-score de -2.5 a +2.5 avec ligne zero |
| Composantes - z-score | Tableau detaille par indicateur, groupe en Growth / Labor / Inflation. Colonnes : nom de l'indicateur + transformation (YoY, MoM, diff, level ; (inv) si inverse) + date de la derniere donnee ; valeur courante ; z-score courant colore (vert si >= 1, vert clair >= 0.3, gris neutre, orange < -0.3, rouge < -1) ; barre visuelle centree sur zero |
Comment faire
- L'indice mesure la dynamique (acceleration/deceleration des donnees), pas le niveau absolu : un z-score qui monte signifie que les donnees surprennent positivement par rapport aux 12 derniers mois.
- Le chomage (UNRATE) est inverse (marque (inv)) : un chomage bas compte comme une bonne nouvelle pour la croissance.
- Croiser le regime avec la section Yield Curve et le Macro Calendar pour une lecture macro plus complete.
- Ce n'est pas une vraie surprise de consensus : c'est un ecart a la tendance trailing 12 mois, pas un actual-vs-estimate (qui necessiterait des donnees payantes type TradingEconomics/Bloomberg).
- Couverture 100% USA : tous les indicateurs proviennent de series FRED americaines (PAYEMS, CPIAUCSL, etc.), aucune donnee zone euro / autre pays.
- Donnees rafraichies au mieux toutes les 12h (cache) ; le composite n'est calcule que sur les dates communes a tous les indicateurs, donc la derniere valeur peut accuser un leger retard sur la release la plus recente.
- Si FRED est injoignable, l'API renvoie une erreur 502 et la page reste vide (les cartes ne s'affichent pas) ; il n'y a pas de bouton de refresh manuel dans le panneau.
Outils
Les utilitaires transverses : catalogue de tickers, analyse quant, VPIN, on-chain, logs, performance des comptes.
Catalogue tickers
Cette section liste tous les symboles que tu peux backtester, classés par source de données. L'onglet LSE affiche le catalogue complet (actions, forex, indices, crypto, ETF, matières premières) — un snapshot d'environ 4000+ symboles tiré du serveur de données. L'onglet Databento affiche les futures CME câblés dans le moteur (index, métaux, énergie, taux, FX, crypto), avec les alias CFD acceptés et le symbole réellement résolu. Clique un ticker pour le copier dans le presse-papier, prêt à coller dans n'importe quelle config de backtest.
Utilise-le dès que tu ne sais pas quel symbole exact taper pour un actif (ex. tu veux le Nasdaq mais tu hésites entre NAS100USD et NQ), ou pour vérifier qu'un actif existe bien dans la source que tu comptes utiliser avant de lancer un backtest, FAO ou Options Lab.
Le catalogue LSE provient du fichier lse_catalog.json (snapshot du serveur de données). L'onglet Databento liste les futures CME du dataset GLBX.MDP3 (CME Globex) : pour réellement charger ces données il faut un abonnement Databento couvrant ce dataset (licence CME). Le catalogue lui-même s'affiche sans abonnement.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Onglet LSE | Affiche le catalogue complet de la source LSE (actions, forex, indices, crypto, ETF, matières premières). |
| Onglet Databento | Affiche les futures CME câblés dans le loader historique, avec leurs alias CFD et le contrat résolu. |
| Champ de recherche LSE (dc-lse-search) | Filtre les tickers LSE en direct : cherche dans le ticker ET dans le nom affiché (ex. EURUSD, gold, nasdaq, AAPL). Réinitialise la pagination à la page 0. |
| Puces de catégories LSE (Tout / Forex / Indices / Matières 1ères / Crypto / ETF / Actions) | Filtrent la table LSE par catégorie d'actif ; chaque puce affiche le nombre de symboles. 'Tout' enlève le filtre. |
| Clic sur un ticker (code) | Copie le ticker dans le presse-papier (navigator.clipboard) et affiche un message de confirmation '✓ ... copié'. |
| Pagination LSE (Précédent / Suivant / Aller à) | Navigation par pages de 500 lignes quand le filtre renvoie beaucoup de symboles ; le champ 'Aller à' (visible au-delà de 2 pages) saute directement à une page. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Table LSE — colonne Ticker | Le symbole exact à taper (cliquable pour copier). C'est la valeur à coller dans la config de backtest. |
| Table LSE — colonne Nom | Libellé lisible de l'actif (champ display du catalogue) ; sert à reconnaître l'instrument. |
| Table LSE — colonne Catégorie | Famille d'actif (Forex, Indices, Matières 1ères, Crypto, ETF, Actions). |
| Compteurs de catégories (sur les puces) | Nombre de symboles par catégorie ; la puce 'Tout' porte le total du catalogue (count). |
| Bandeau pagination | Indique 'Page X / N · lignes a–b sur total' : utile pour situer ta recherche dans un catalogue volumineux (500 lignes/page). |
| Bannière Databento | Affiche le dataset actif (GLBX.MDP3 — CME Globex), une note sur l'abonnement requis, et les timeframes supportés par le loader. |
| Table Databento — colonne Ticker | Symbole futures continu à taper (cliquable pour copier), regroupé par famille (Index futures, Métaux, Énergie, Taux, FX futures, Crypto futures). |
| Table Databento — colonne Contrat | Nom du contrat futures (ex. E-mini S&P 500, Micro Gold, Crude Oil WTI). |
| Table Databento — colonne Alias CFD acceptés | Alias CFD qui pointent vers ce futures (ex. NAS100, US500, XAUUSD…) ; tu peux taper l'alias à la place du ticker. '—' si aucun alias. |
| Table Databento — colonne Symbole résolu | Le symbole réel chargé par le loader (mapping continu), pour comprendre ce qui sera téléchargé via Databento. |
Comment faire
- La recherche LSE matche aussi le nom lisible : tape 'gold' ou 'nasdaq' si tu ne connais pas le code exact.
- Sur Databento, tu peux taper un alias CFD (ex. NAS100, XAUUSD) au lieu du ticker futures : le loader le résout vers le contrat CME équivalent.
- Ajoute ?refresh=1 à l'URL /api/data_catalog pour forcer un re-fetch du catalogue LSE depuis le serveur /tables (sinon il lit le snapshot lse_catalog.json en cache).
- L'onglet Databento ne liste QUE les futures câblés du dataset GLBX.MDP3 ; les autres datasets Databento (actions XNAS, options OPRA…) ne sont pas branchés dans le loader de backtest.
- Voir un futures dans le catalogue ne veut pas dire que tu peux le charger : il faut un abonnement Databento couvrant le dataset CME (licence CME).
- Le catalogue LSE est un snapshot (lse_catalog.json) : un symbole listé peut ne pas remonter toute l'historique demandée (profondeur limitée par la source).
- Si le fichier lse_catalog.json est absent ou si le loader Databento échoue, l'onglet affiche 'indisponible' avec le message d'erreur, sans planter le reste.
Quant Tools
Quant Tools applique 8 outils d'analyse quantitative individuels sur la liste de trades issue d'un backtest. Chaque outil se lance separement et affiche une carte de resultats dediee (KPI, graphiques) : GARCH(1,1) (memoire des gains/pertes), HMM 3 etats (regimes de marche), VaR / CVaR (risque de perte), XGBoost Predictor (predictibilite des trades), Autoencoder (detection d'anomalies), plus 3 outils d'analyse avancee : Drawdown Distribution, Regime-Conditional Perf et Trade Clustering. Les calculs tournent en local sur le serveur (route /api/quant/run_tool), avec des fallbacks automatiques si une librairie Python manque.
A utiliser apres un backtest, quand vous voulez disséquer un outil precis (par ex. verifier si vos pertes s'enchainent avec GARCH/Clustering, ou si XGBoost detecte un edge predictible). Pour un scoring global tout-en-un, passez plutot par la page Analyse Quant qui enchaine les 5 modules de base et produit une note.
Une source de trades : soit le dernier backtest charge en memoire serveur, soit un rapport JSON importe. Librairies Python recommandees (sinon fallback degrade) : arch (GARCH), hmmlearn (HMM), xgboost, sklearn, scipy. Aucune connexion courtier ni flux temps reel requis.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Dernier backtest (qtLoadLastBacktest) | Charge les trades du dernier backtest stocke cote serveur comme source de donnees pour tous les outils. |
| Importer JSON (qtImportJSONFile) | Importe un rapport de backtest au format .json et en extrait les trades a analyser (champ caché qt-json-input). |
| qt-source-status | Zone de statut indiquant le nombre de trades charges ou un message d'erreur si la source est vide. |
| Verifier les modules (qtLoadDeps) | Interroge /api/quant/deps et liste les modules disponibles (arch, hmmlearn, GMM fallback, xgboost, sklearn, scipy, Rust) avec l'impact en cas de module manquant. |
| GARCH(1,1) (qtRunTool garch) | Lance le modele GARCH sur les returns PnL normalises : mesure la persistance (memoire) des sequences de gains/pertes. |
| HMM 3 etats (qtRunTool hmm) | Detecte les regimes de marche (TRENDING / RANGING / CHOPPY) via un modele de Markov cache a 3 etats. |
| VaR / CVaR (qtRunTool var) | Calcule la Value-at-Risk multi-methodes (historique, parametrique, Cornish-Fisher) et la CVaR sur la serie de PnL. |
| XGBoost Predictor (qtRunTool xgboost) | Entraine un classifieur WIN/LOSS et mesure l'AUC en cross-validation + l'importance des features pour evaluer la predictibilite des trades. |
| Autoencoder (qtRunTool autoencoder) | Detecte les trades anormaux par PCA (erreur de reconstruction) pour reperer les executions atypiques. |
| Drawdown Distribution (qtRunTool drawdown_dist) | Analyse fine des drawdowns : Ulcer Index, Recovery Factor, Calmar, duree des DD. |
| Regime-Conditional Perf (qtRunTool regime_perf) | Croise les regimes HMM avec le PnL pour calculer le Sharpe par regime et juger si l'edge est universel. |
| Trade Clustering (qtRunTool trade_clustering) | Mesure l'autocorrelation des resultats et les sequences de pertes consecutives (risque type martingale). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Modules disponibles (qt-deps-list) | Etat OK / fallback / manquant de chaque librairie. Reperе : si arch manque, GARCH bascule en EWMA ; si sklearn manque, l'AUC XGBoost est fige a 0.5. |
| GARCH — Persistance α+β | Memoire des resultats. Repere de lecture : <0.70 Independant (vert), 0.70-0.85 Faible memoire, 0.85-0.95 Persistant, >0.95 Tres persistant (rouge = les pertes s'enchainent / drawdown prolonge). |
| GARCH — Demi-vie du choc (half_life_days) | Nombre de jours pour qu'un choc de volatilite se resorbe de moitie. Plus c'est long, plus la memoire est forte. |
| GARCH — α (choc recent) / β / methode | α = reaction au dernier choc, β = inertie. method indique GARCH(1,1) ou le fallback EWMA(λ=0.94). Une serie de vol conditionnelle est aussi tracee. |
| HMM — Regime actuel (current_regime) | TRENDING / RANGING / CHOPPY / UNKNOWN, code couleur. Indique l'etat de marche dominant a la fin de la periode. |
| HMM — Stabilite (stability_score) | Score 0-100 % : a quel point le regime tient dans le temps (longueur des series). Eleve = regimes nets et durables. |
| HMM — Duree (current_duration_bars) + Distribution % | Duree en barres du regime courant et repartition % du temps passe dans chaque regime, avec timeline historique. |
| HMM — methode | HMM Gaussien 3 etats, ou fallback GaussianMixture EM (qualite quasi-identique), ou Rolling statistics (mode degrade, moins precis). |
| VaR Hist / CVaR / VaR Param / VaR C-Fisher | Pertes attendues au niveau de confiance affiche (95 % par defaut). VaR Hist = perte max historique du percentile, CVaR = perte moyenne dans la queue, VaR Param = normale, C-Fisher = ajustee asymetrie/kurtosis. |
| VaR — Sharpe Daily / Skewness | Sharpe annualise (vert si >1.5, rouge si bas) et asymetrie de la distribution (rouge si <-0.5 = grosses pertes possibles). |
| VaR — Max DD / Pertes consec / Kurtosis / Mean PnL | Statistiques complementaires de risque : drawdown max, plus longue serie de pertes, exces de kurtosis (queues epaisses), PnL moyen. Courbe de capital + histogramme PnL traces. |
| XGBoost — CV AUC (cv_auc ± cv_auc_std) | Predictibilite WIN/LOSS en cross-validation. Repere : >=0.65 Predictible (vert), 0.55-0.65 Modere, <0.55 Aleatoire (rouge). AUC anormalement haute = suspicion de leakage. |
| XGBoost — Win Rate / Feature principale (top_feature) | Taux de reussite et feature la plus discriminante. Une feature future (ex. lie au resultat) signale une fuite de donnees. |
| XGBoost — Distribution de confiance (proba_dist) | Repartition des predictions en haute / moyenne / faible confiance + importance des features (top 10). |
| Autoencoder — Anomalies detectees (n_anomalies) / Taux (anomaly_rate_pct) | Nombre de trades atypiques et leur proportion. Repere : <10 % = execution saine (vert), au-dela = elevе. |
| Autoencoder — Variance expliquee (explained_var_pct) + detail | Part de variance captee par la PCA. Liste les top anomalies (#idx, feature anormale odd_feature, score, profit gagnant/perdant). |
| Drawdown Distribution — Ulcer / Recovery / Calmar / Duree DD | Ulcer Index (profondeur+duree de la douleur), Recovery Factor, Calmar ratio, duree max du drawdown, nombre de DD significatifs. Score sur 12 pts. |
| Regime-Conditional Perf — Sharpe par regime | Sharpe / win rate / nombre de trades par regime, regime dominant, et flag is_universal indiquant si l'edge tient dans tous les regimes. Score sur 12 pts. |
| Trade Clustering — Pertes consecutives | Autocorrelation des resultats, max pertes consecutives, longueur moyenne des series de pertes (alerte risque martingale). Score sur 6 pts. |
Comment faire
- Le bouton i (help) de chaque outil ouvre une aide contextuelle (helpShow) expliquant a quoi il sert.
- GARCH ici tourne sur des returns PnL normalises : la metrique utile est la persistance α+β (memoire gains/pertes), pas la volatilite absolue affichee.
- Une AUC XGBoost tres elevee n'est pas forcement une bonne nouvelle : c'est souvent le signe d'une fuite de donnees (leakage), surtout sur petit echantillon.
- Si vous n'avez pas hmmlearn, le fallback GaussianMixture EM donne une qualite quasi-identique pour le HMM : pas besoin de l'installer en urgence.
- Sans source de trades chargee, chaque outil renvoie l'erreur "Aucun trade disponible — lance d'abord un backtest".
- Seuils mini de donnees : GARCH >=20 returns, HMM >=30, VaR/Autoencoder >=10 trades, Trade Clustering >=20. En dessous, l'outil renvoie une erreur "Pas assez".
- Les outils d'analyse avancee (drawdown_dist, regime_perf, trade_clustering) ne s'activent que si le module
quant_engine_extraest present cote serveur, sinon les boutons restent sans effet. - Si une librairie manque, le calcul ne plante pas mais bascule en fallback moins precis (ex. VaR parametrique normale sans scipy, AUC figee a 0.5 sans sklearn) — verifiez le badge methode affiche.
- Cette page ne fait QUE lancer des outils individuels ; le scoring global, les patches actionnables et le Vol Scanner appartiennent a la page Analyse Quant distincte.
VPIN
PROTOS Trading LiveVPIN (Volume-Synchronized Probability of Informed Trading) mesure le desequilibre achat/vente du flux d'ordres en decoupant le volume en buckets de taille fixe (et non en barres temporelles). Pour chaque symbole suivi, PROTOS calcule le VPIN sur 3 horizons simultanes (F=Fast, M=Medium, S=Slow), le convertit en percentile historique (CDF), classe chaque horizon dans un regime (calm / normal / toxic / krach), puis agrege le tout en un score unifie 0-100 et signale les zones toxiques quand plusieurs horizons basculent ensemble. Le dashboard se met a jour en direct via WebSocket depuis le serveur de données Databento (port 5055).
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A utiliser en seance pour surveiller la microstructure des marches CME que tu trades : un VPIN qui grimpe dans les hauts percentiles annonce souvent un flux informe et un risque accru de mouvement violent ou de retournement. Sert de filtre de contexte (eviter d'entrer, resserrer les stops, ou ne pas trader) pendant les phases toxiques.
Le serveur de microstructure le serveur de données Databento doit tourner (port 5055), avec une connexion live Databento valide. Seuls les symboles CME du catalogue (CME_SYMBOLS) sont disponibles : ce sont ceux qui disposent d'un flux trades de qualite. Sans serveur, le dashboard affiche la banniere hors-ligne.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Ajouter symbol (vpin-add-sym) | Liste deroulante des symboles CME disponibles (catalogue Databento) non encore suivis ; selectionne celui a tracker. |
| Bootstrap jours (vpin-add-boot) | Nombre de jours d'historique de trades a rejouer pour pre-calibrer les percentiles CDF (0 a 10, defaut 3). 0 = CDF demarre vide, il faut alors ~50 buckets en live avant que les percentiles soient fiables. |
| Subscribe (bouton) | Lance le suivi du symbole choisi : calibre la taille de bucket sur le volume daily moyen puis seed le CDF selon le bootstrap demande (appelle /api/vpin/subscribe). |
| Settings (bouton) | Ouvre la modale de configuration globale VPIN (s'applique a tous les symboles suivis). |
| Reessayer (bouton offline) | Tente de reconnecter au serveur VPIN quand il est detecte hors-ligne (relance initVPIN). |
| Unsubscribe / x (par symbole) | Retire le symbole du suivi VPIN (chip ou bouton de la carte ; appelle /api/vpin/unsubscribe). |
| Buckets par jour (settings: buckets_per_day) | Nombre de buckets par jour servant a calibrer la taille de chaque bucket = volume daily moyen / buckets_per_day (defaut 50). Plus eleve = buckets plus petits = VPIN plus reactif. |
| Windows (settings: windows F/M/S) | Taille de la fenetre glissante (en buckets) de chaque horizon Fast/Medium/Slow (defauts 25/50/100). Doivent rester croissantes. |
| Seuils regime (settings: regime_thresholds calm/normal/toxic) | Bornes sur le percentile CDF (0-1) qui delimitent les regimes (defauts calm 0.55, normal 0.72, toxic 0.88). En-dessous de calm = calm, puis normal, toxic, et au-dela de toxic = krach. |
| Poids TF (settings: tf_weights F/M/S) | Ponderation de chaque horizon dans le score unifie (defauts 0.5/0.3/0.2 ; Fast pese le plus comme indicateur avance). La somme est renormalisee. |
| Severite par regime (settings: regime_severity) | Contribution de chaque regime au score unifie (defauts calm 0.0, normal 0.30, toxic 0.65, krach 1.0). |
| Zone toxique : min TFs (settings: toxic_zone_min_tfs) | Nombre minimum d'horizons en regime toxic ou krach simultanement pour declarer une zone toxique active (defaut 2). |
| Sauvegarder / Annuler (settings) | Sauvegarder applique la config en runtime (POST /api/vpin/config) ; Annuler ferme sans appliquer. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Statut serveur (vpin-server-status) | Etat de la connexion au serveur VPIN : en ligne (vert) ou hors-ligne (rouge). |
| MAJ (vpin-last-update) | Heure de la derniere mise a jour recue par WebSocket. |
| Chips symboles actifs | Pastille par symbole suivi : pastille coloree selon le regime global + score unifie ; clic x pour retirer. |
| Hero strip — Symbols actifs | Nombre de symboles actuellement suivis. |
| Hero strip — Regime pire | Pire regime observe parmi tous les symboles suivis (ordre calm < normal < toxic < krach), avec sa couleur. |
| Hero strip — Score max | Plus haut score unifie cross-symbole (s'affiche en ambre au-dela de 30). |
| Hero strip — Zones toxiques | Nombre de symboles actuellement en zone toxique active (rouge si > 0). |
| Hero strip — Alertes cumul | Somme des compteurs d'alertes sur tous les horizons de tous les symboles. |
| Hero strip — Buckets fermes | Total des buckets de volume clotures (mesure de l'historique accumule). |
| Carte symbole — regime global | Badge regime du symbole = le pire regime de ses 3 horizons ; couleur verte (calm) a rouge (krach). |
| Badge TOXIC ZONE | S'affiche (rouge, carte surlignee) quand la zone toxique du symbole est active, c.-a-d. au moins toxic_zone_min_tfs horizons en toxic/krach. |
| closed_buckets / V=bucket_size | Nombre de buckets clotures et taille de bucket calibree (volume) pour ce symbole. |
| MTF alignment (matrice F/M/S) | Pour chaque horizon : son nom, son regime (couleur) et son percentile CDF (P##). Permet de voir l'alignement des 3 horizons. |
| Score unifie (cercle) | Score 0-100 = somme ponderee (severite du regime x poids TF) x 100. 0 = tous calmes, 100 = tous en krach. Couleur : vert <10, jaune 10-30, orange 30-65, rouge >65. |
| Par horizon — VPIN (jauge vpin_pct) | VPIN brut du bucket courant en pourcentage (desequilibre achat/vente, 0-100%). |
| Par horizon — CDF (jauge cdf_pct) | Percentile historique du VPIN courant (0-100%) : sa rarete vs l'historique de ce symbole. C'est le CDF qui pilote le classement de regime. |
| Par horizon — med / avg / peak | Mediane mobile (10 derniers buckets), moyenne mobile (20 derniers) et pic de VPIN observe, en pourcentage. |
| Par horizon — sparkline | Mini-graphe de la serie des derniers VPIN (jusqu'a 100 valeurs) pour visualiser la tendance. |
| Par horizon — calib N/50 | Indique que l'horizon est en calibration : moins de 50 echantillons CDF, percentiles pas encore fiables. |
| Bucket en cours · % rempli | Progression du remplissage du bucket de volume en cours (barre + pourcentage). |
| Badge de navigation (vpin-nav-badge) | Pastille d'alerte dans le menu lateral : s'allume des qu'au moins un symbole est en zone toxique. |
Comment faire
python le serveur de données Databento (port 5055) avec un flux Databento valide ; le statut doit passer a en ligne.- Un Bootstrap de quelques jours evite d'attendre 50 buckets en live avant d'avoir des percentiles exploitables.
- Le CDF (percentile) est plus parlant que le VPIN brut : c'est lui qui declenche les regimes ; vise les hauts percentiles (P80+) comme zone de vigilance.
- Fast (F) reagit le plus vite et pese le plus dans le score : surveille-le comme signal avance, confirme par M et S.
- augmenter buckets_per_day rend le VPIN plus reactif (buckets plus petits) ; le baisser le lisse.
- Outil 100% live : sans
le serveur de données Databentoen marche (port 5055) le dashboard reste hors-ligne, rien ne se calcule. - Seuls les symboles du catalogue CME_SYMBOLS sont disponibles (flux trades de qualite requis) ; les autres ne sont pas proposes.
- Si le volume daily moyen est introuvable pour un symbole, la calibration de bucket_size est sautee et le VPIN ne se calcule pas correctement.
- Tant qu'un horizon est en calibration (< 50 echantillons CDF), son regime n'est pas fiable.
- La config Settings est globale : elle s'applique a TOUS les symboles suivis, pas a un seul.
- Les seuils de regime portent sur le percentile CDF (0-1), pas sur le VPIN brut : ne confonds pas les deux jauges.
Analyse Quant
Analyse Quant prend les trades de ton dernier backtest (ou un rapport JSON importé) et les passe dans une batterie de modules quantitatifs et de machine learning (GARCH, HMM régimes, VaR/CVaR, XGBoost, Autoencoder, plus 3 modules de drawdown, performance par régime et clustering de trades). Elle en sort un verdict global noté de 0 à 100 avec une lettre (A+ à D), des forces, des faiblesses et des recommandations. Sa section Patches actionnables traduit ces recommandations en changements de config chiffrés que tu coches et appliques en 1 clic. Un onglet Vol Scanner séparé suit en plus les indices de volatilité CBOE (VIX/VVIX/SKEW) et suggère des structures d'options.
À utiliser APRÈS un backtest ou une optimisation (FAO/THANOS), pour vérifier que l'edge est réel et pas un artefact de surapprentissage, comprendre dans quels régimes ta stratégie gagne ou perd, et détecter les pièges (leakage XGBoost, séries de pertes, anomalies d'exécution). C'est l'étape de validation/diagnostic avant de pousser une config en avant.
Avoir lancé au moins un backtest dans la session courante (l'analyse lit les trades du dernier backtest en mémoire), ou importer un rapport JSON de trades. L'onglet Vol Scanner récupère VIX/VVIX/SKEW depuis Yahoo Finance (source publique gratuite, aucune clé requise) — nécessite une connexion internet ; les modules GARCH (arch) et HMM (hmmlearn/sklearn) sont optionnels et basculent en mode dégradé s'ils sont absents.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Lancer l'analyse complète (bouton) | Démarre l'analyse en arrière-plan sur les trades du dernier backtest (POST /api/quant/analyse), affiche une barre de progression et enchaîne GARCH → HMM → VaR → XGBoost → Autoencoder. |
| Onglet Analyse ML | Affiche le verdict global, les patches actionnables et les 8 cartes de modules (vue principale). |
| Onglet Propositions (badge) | Liste les propositions du Live Tracker (état partagé avec Live Optim, tab Quant Tracker) ; un badge rouge indique le nombre de propositions en attente. |
| Onglet Vol Scanner (badge !) | Bascule vers le scanner de volatilité CBOE (VIX/VVIX/SKEW), calendrier macro, strikes suggérés et historique IV Rank. |
| Auto-sélection (bouton patches) | Pré-coche automatiquement les patches priorité haute, et les patches moyens dont le gain de score est > 3. |
| Rollback (bouton patches) | Annule les derniers patches appliqués en restaurant le snapshot de config précédent (visible seulement si un snapshot existe). |
| Cases à cocher des patches | Sélectionnent individuellement chaque correctif chiffré à appliquer ; le compteur indique combien sont sélectionnés sur le total. |
| Appliquer les patches sélectionnés (bouton) | Écrit les changements de config (config_changes) cochés dans la configuration courante. |
| Alertes auto (case à cocher, Vol Scanner) | Active la surveillance des nouveaux signaux de volatilité (poll toutes les 5 min) avec son et notification bureau. |
| Rafraîchir (bouton, Vol Scanner) | Force le rechargement immédiat des indices VIX/VVIX/SKEW (sinon cache 5 min). |
| Catalyseurs Macro ↺ (bouton) | Charge le calendrier macro (FOMC + CPI + NFP) des 21 prochains jours (cache 1h). |
| DTE (menu déroulant, Strikes) | Choisit l'échéance des options pour les strikes suggérés : 21, 30, 45 (défaut), 60 ou 90 jours. |
| Strikes ↺ (bouton) | Calcule l'Expected Move et les structures d'options suggérées (Iron Condor, Straddle, Call Spread, Calendar) pour le SPX au DTE choisi. |
| Historique IV Rank ↺ (bouton) | Calcule sur 2 ans les win rates Iron Condor et Straddle par tranche d'IV Rank (calcul itératif ~3s, cache 2h). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Score global (cercle) + Grade + Label | Note 0-100 du backtest. Grade : A+ (≥85 EXCELLENT), A (≥75 ROBUSTE), B (≥60 CORRECT), C (≥45 À AMÉLIORER), D (<45 FAIBLE). Plus c'est haut, plus l'edge est jugé robuste. |
| Forces / Faiblesses / Recommandations | Listes textuelles : points forts validés, problèmes détectés (×), et recommandations validées par simulation (sweeps) directement sous le verdict. |
| Patches actionnables | Correctifs chiffrés (label, raison, priorité haute/moyenne/basse, gain de score estimé, changements de config en code). Prêts à cocher et appliquer. |
| GARCH — Persistance α+β | Mémoire des gains/pertes sur PnL normalisés. α+β proche de 1 = les pertes s'enchaînent (drawdown prolongé) ; <0,70 Indépendant, <0,85 Faible mémoire, <0,95 Persistant, sinon Très persistant. Affiche aussi demi-vie du choc, α, β. |
| HMM — Régimes de marché | Régime actuel (TRENDING/RANGING/CHOPPY/UNKNOWN), stabilité %, durée en barres, distribution % par régime et timeline. Méthode indiquée : HMM Gaussien, GMM EM (fallback fiable) ou Rolling stats (mode dégradé). |
| VaR / CVaR — Risque de perte | VaR historique et CVaR (perte moyenne de queue) au niveau de confiance (95%), VaR paramétrique, VaR Cornish-Fisher, Sharpe daily, Skewness, Kurtosis, Max DD, pertes consécutives. Courbe de capital + histogramme PnL. |
| XGBoost — Prédictibilité des trades | CV AUC (±écart-type) : ≥0,65 prédictible, ≥0,55 modéré, sinon aléatoire. Win Rate, feature principale, importance des features (top 10) et distribution de confiance. Attention : un AUC ≥0,99 signale un leakage (sweep dédié). |
| Autoencoder — Détection d'anomalies | Nombre d'anomalies, taux d'anomalie (<10% = Normal), variance expliquée, et top trades anormaux avec la feature aberrante et leur PnL. |
| Drawdown Distribution (score /12) | Max DD %, Ulcer Index (profondeur ET durée des DDs ; <1 bon), Recovery Factor (×), Calmar, durée max de DD en trades, nombre de DDs > 5%. |
| Regime-Conditional Perf (score /12) | Sharpe par régime et nombre de trades par régime, régime dominant. Edge UNIVERSEL si Sharpe > 0,3 dans tous les régimes (≥5 trades), sinon edge conditionnel fragile au changement de régime. |
| Trade Clustering (score /6) | Autocorrélation des signes (proche 0 = trades i.i.d. indépendants), autocorr des valeurs, max wins/losses consécutifs (≤5 = pas de risque martingale), longueur moyenne et nombre de séries de pertes. |
| Bandeau modules optionnels | Avertit si arch (GARCH→EWMA) ou hmmlearn/sklearn sont absents ; orange = vraiment dégradé, vert = fallback GMM fiable. |
| Vol Scanner — VIX / VVIX / SKEW | Valeur courante, variation %, range 52 semaines de chaque indice CBOE. VIX affiche IV Rank et IV Percentile sur 52 semaines avec jauge (0% acheter vol → 100% vendre vol). |
| Vol Scanner — Signaux + Calendrier Macro | Interprétations contextuelles (acheter/vendre vol) avec stratégies suggérées ; catalyseurs macro (FOMC/CPI/NFP) des 21 prochains jours avec impact et délai. |
| Strikes Suggérés (SPX) | Expected Move ±1σ et ±2σ (pts et %) à partir du VIX et du SPX, plus structures d'options (Iron Condor, Straddle, Call Spread, Calendar) : legs, strikes, zone de profit, max loss, probabilité de profit, crédit estimé. |
| Historique IV Rank — Win Rates (2 ans) | Par tranche d'IV Rank : nombre d'observations, win rate Iron Condor et Straddle, meilleure structure et direction VIX 30j après ; la tranche correspondant à l'IV Rank actuel est surlignée. |
Comment faire
- GARCH ici tourne sur les PnL trade-par-trade, pas sur les prix : α+β proche de 1 est souvent un artefact mathématique. La vraie source de vérité du clustering est l'autocorr des signes du module Trade Clustering.
- Un AUC XGBoost ≥0,99 n'est pas un bon signe : c'est presque toujours du leakage (feature post-trade comme mfe_r/mae_r). Le sweep XGBoost no-leaky recalcule l'AUC honnête.
- Installe arch (GARCH) et hmmlearn+sklearn pour éviter les modes dégradés ; le fallback GMM EM (sklearn) reste de qualité équivalente au HMM gaussien.
- Le scoring est adaptatif par classe d'actif (crypto, commodity, index, forex, stock) : un CHOPPY élevé est normal sur commodities/indices mais pénalisé en crypto.
- Pour le Vol Scanner : IV Rank bas = acheter la vol (straddles), IV Rank haut = vendre la vol (Iron Condor) — l'historique 2 ans confirme quelle structure marche par tranche.
- Sans trades en mémoire, l'analyse renvoie une erreur Aucun trade disponible — il faut un backtest récent ou un import JSON.
- La route /api/quant/patches fait partie de Sprint 11 : si elle renvoie une erreur HTTP, il faut redémarrer le serveur PROTOS pour charger le module.
- Un sweep avec moins de 30 trades restants après filtrage est marqué non fiable — les chiffres deviennent indicatifs uniquement (augmente le nombre de barres).
- Le Vol Scanner dépend de Yahoo Finance : pas de connexion = indices à ERR/—. Données mises en cache 5 min (indices), 1h (macro), 2h (historique).
- Le Live Tracker a été déplacé dans Live Optim (tab Quant Tracker) ; l'onglet Propositions ici ne fait que partager le même état.
- Les strikes et structures d'options sont des suggestions calculées sur SPX/VIX (avec disclaimer) — ce n'est pas un conseil d'investissement ni une exécution réelle.
Onchain
Onchain Pulse est un tableau de bord en lecture seule qui agrège des données on-chain (sur la blockchain), c'est-à-dire ce qu'aucun flux de bourse centralisée (CEX) ne montre. Il affiche quatre blocs : l'activité d'impression des stablecoins (variation 24h de la capitalisation de USDT, USDC, DAI, etc.), le volume des échanges décentralisés (DEX) sur 24h, l'état du mempool Bitcoin (transactions en attente et frais), et les transferts de baleines > $1M. Les données proviennent de sources publiques gratuites et le panneau se rafraîchit automatiquement toutes les 60 secondes.
À consulter pour prendre le contexte macro-crypto avant de trader ou backtester : un net positif d'impression de stablecoins signale de la liquidité fraîche entrant dans le marché, un mempool BTC congestionné indique un stress on-chain, et les transferts de baleines révèlent des mouvements de capitaux importants. C'est un outil d'observation du marché, pas un module de backtest.
Le serveur Chart Live (port 5055) doit être en ligne car le panneau interroge /api/crypto/onchain proxié vers le serveur PROTOS. Sources gratuites sans clé : DefiLlama (stablecoins + volume DEX), CoinGecko (deltas de capitalisation, débit limité), mempool.space (mempool BTC + frais). Le bloc Whale Alert reste inactif tant que la variable WHALE_ALERT_API_KEY n'est pas définie dans le fichier .env (offre gratuite : 1000 requêtes/jour).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Refresh | Force un rafraîchissement immédiat des quatre blocs en rappelant l'API (appelle onchainRefresh()). Un auto-refresh tourne aussi en tâche de fond toutes les 60 secondes. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Dernière maj | Heure (HH:MM:SS) du dernier instantané reçu, dérivée du timestamp ts renvoyé par le serveur. |
| Stablecoin printer · net (en-tête) | Somme des variations 24h de capitalisation de tous les stablecoins suivis. Vert si positif (impression nette = liquidité fraîche), rouge si négatif (rachats/retrait de liquidité). |
| Stablecoins — Symbol | Ticker du stablecoin suivi (USDT, USDC, DAI, USDS, FDUSD, PYUSD, USDe). |
| Stablecoins — Market cap | Capitalisation actuelle en USD (source CoinGecko), formatée en B/M/k. |
| Stablecoins — Δ 24h ($) | Variation de capitalisation sur 24h en USD ; vert = émission nette, rouge = contraction. |
| Stablecoins — Δ 24h (%) | Même variation exprimée en pourcentage. |
| Stablecoins — Mech. | Mécanisme de peg du stablecoin (ex. fiat-backed, crypto-backed, algorithmic) tel que classé par DefiLlama ; '—' si inconnu. |
| DEX volume · total (en-tête) | Volume agrégé 24h de tous les DEX en USD, suivi entre parenthèses de la variation 24h en % (source DefiLlama). |
| DEX — nom du protocole | Top 5 des DEX par volume 24h (Uniswap, PancakeSwap, etc.). |
| DEX — barre de part de marché | Barre proportionnelle à la part (share) du DEX dans le volume total 24h. |
| DEX — volume 24h (USD) | Volume échangé sur 24h par ce protocole, formaté en B/M/k. |
| DEX — variation 24h (%) | Évolution du volume du protocole sur 24h ; vert = hausse, rouge = baisse. |
| BTC mempool · résumé (en-tête) | Nombre de transactions en attente (pending_tx) suivi de 'tx pending'. |
| BTC — Pending tx | Nombre de transactions Bitcoin en attente de confirmation dans le mempool. |
| BTC — Mempool size | Taille virtuelle du mempool en Mo (vsize) ; plus c'est gros, plus le réseau est congestionné. |
| BTC — Fast fee | Frais recommandés pour une confirmation rapide, en sat/vB (source mempool.space). |
| BTC — Med fee (½h) | Frais recommandés pour une confirmation sous ~30 min, en sat/vB. |
| BTC — Slow fee (1h) | Frais recommandés pour une confirmation sous ~1h, en sat/vB. |
| BTC — Min fee | Frais minimum acceptés par le réseau, en sat/vB. |
| Whale Alert · statut (en-tête) | Indique 'API key absente' si non configuré, 'erreur' en cas d'échec, ou le nombre de transferts détectés sur la dernière heure. |
| Whale — Heure | Heure (HH:MM) du transfert, dérivée du timestamp de la transaction. |
| Whale — Chain | Blockchain sur laquelle le transfert a eu lieu (ex. ethereum, bitcoin, tron). |
| Whale — Asset | Ticker de l'actif transféré (BTC, ETH, USDT…). |
| Whale — Amount USD | Valeur du transfert en USD (filtré à > $1M). |
| Whale — From | Propriétaire de l'adresse émettrice (ex. binance, unknown) avec son type entre parenthèses (exchange, wallet…). |
| Whale — To | Propriétaire de l'adresse réceptrice avec son type entre parenthèses. |
| Whale — Type | Type de transaction tel que classé par Whale Alert (transfer, mint, burn…). |
Comment faire
WHALE_ALERT_API_KEY=… dans .env et redémarre le serveur.- Le 'net' des stablecoins est l'indicateur le plus actionnable : positif = printer ON = liquidité entrante, négatif = retrait de liquidité.
- Les frais BTC élevés (Fast fee en sat/vB) et un mempool gros en Mo trahissent un stress on-chain et une pression sur les mineurs.
- Inutile de rafraîchir frénétiquement : le serveur met les données en cache ~25s (et chaque source a son propre TTL), donc des refresh rapprochés renvoient le même instantané.
- Le panneau dépend entièrement du serveur Chart Live sur le port 5055 ; s'il est hors-ligne, tous les blocs affichent une erreur.
- Le bloc Whale Alert est désactivé par défaut : sans
WHALE_ALERT_API_KEYdans.env, il n'affiche que la consigne de configuration. - CoinGecko (deltas de capitalisation) a un débit limité (offre gratuite) : si un stablecoin est rate-limité ou en 404, sa ligne peut manquer dans le tableau.
- Les variations de capitalisation des stablecoins viennent de CoinGecko, pas de DefiLlama ; DefiLlama ne fournit ici que le mécanisme de peg (Mech.) et le nom.
- C'est un outil d'observation en lecture seule : aucune donnée n'est branchée sur le backtest ou les signaux, et il ne nécessite aucune connexion courtier.
Logs
Cette section affiche la console serveur de PROTOS, c'est-a-dire le journal d'evenements ecrit par le moteur pendant qu'il travaille. Chaque ligne est horodatee au format [HH:MM:SS] et decrit une action reelle : lancement d'un backtest, fin d'une optimisation, changement de configuration, alerte du watchdog, usage memoire, etc. C'est un affichage en lecture seule : tu ne saisis rien, tu lis. La liste se met a jour toute seule pendant que tu utilises la plateforme.
Ouvre cette section quand quelque chose se passe mal ou semble bloque (un backtest qui ne finit pas, une optimisation sans resultat, un message d'erreur ailleurs dans l'interface) : le log te dit ce que le serveur a vraiment fait. C'est aussi l'endroit pour confirmer qu'une action a bien demarre ou s'est terminee correctement.
Aucun. Le serveur PROTOS doit simplement tourner ; le journal se remplit de lui-meme au fil de tes actions.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Vider | Efface l'affichage de la console a l'ecran (log-console.innerHTML = ''). Attention : ne vide que l'affichage cote navigateur, pas le journal cote serveur. A la prochaine actualisation automatique, les lignes encore presentes dans le tampon serveur reapparaissent. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Console serveur | Zone de texte defilante (hauteur 500 px) qui liste les messages du serveur, du plus ancien (haut) au plus recent (bas). Le defilement se positionne automatiquement en bas pour montrer la derniere ligne. Le tampon cote serveur conserve au maximum les 500 dernieres lignes (les plus anciennes sont jetees au-dela). L'affichage se rafraichit automatiquement toutes les ~2 secondes via l'appel /api/logs. |
| Ligne de log (format) | Chaque entree commence par un horodatage [HH:MM:SS] suivi du message. Exemples reels : Backtest: SYMBOL TF | mode | N barres, Backtest OK: N trades, [ERREUR backtest] ..., WFA terminee: N folds, Config: ..., Config reinitialisee, [WATCHDOG] ..., [RES] RAM=...MB threads=... handles=..., [BT-Multi] ..., [COSTS] table sauvee, [Tradovate] .... |
| Ligne rouge (erreur) | Toute ligne contenant le mot ERREUR (ex. [ERREUR backtest], [ERREUR WFA]) est affichee en rouge. C'est ton signal pour reperer immediatement un probleme. |
| Ligne en couleur d'accent (succes) | Toute ligne contenant le mot OK (ex. Backtest OK) est affichee dans la couleur d'accent du theme. Indique qu'une operation s'est terminee correctement. |
Comment faire
- Garde cette section ouverte dans un second onglet pendant un long backtest ou une optimisation : tu vois la progression et la fin reelles sans deviner.
- Les lignes
[RES] RAM=... threads=... handles=...servent a surveiller la consommation memoire ; une RAM qui grimpe sans cesse explique un backtest qui finit par figer. - Les lignes
[WATCHDOG]signalent qu'un backtest precedent etait bloque et a ete interrompu : utile pour comprendre un comportement etrange.
- Vider n'efface que l'affichage du navigateur, pas le journal cote serveur : les messages encore presents dans le tampon reapparaissent a la prochaine actualisation (~2 s).
- Le tampon est limite a 500 lignes : sur une session intense, les plus anciens messages sont definitivement perdus (le journal n'est pas un fichier persistant consultable ici).
- Le coloriage est purement textuel : une ligne est rouge si elle contient le mot ERREUR et en accent si elle contient OK ; un message d'echec qui n'emploie aucun de ces deux mots restera de couleur neutre.
- La console reflete tout le serveur, pas seulement la section que tu regardes : tu y vois les messages de tous les modules (backtests, optimisations, couts, courtier, ressources).
Performance (comptes)
PROTOS Trading LiveCette section est un moniteur de performance technique servi en iframe par le serveur de données Databento (port 5055) via la page autonome performance.html. Elle affiche en continu l'etat des processus PROTOS (CPU, RAM, threads, uptime), les metriques applicatives instrumentees (latences d'endpoints, debit WebSocket, etc.) regroupees par famille, et un comparateur Machine vs Human qui chiffre le gain de vitesse, le temps economise et l'alpha capture par rapport a des baselines humaines de la litterature. Tout se rafraichit automatiquement (toutes les 2s par defaut).
Cette section relève de l'exécution en temps réel et nécessite la licence PROTOS Trading Live (en plus de la licence standard de recherche).
A utiliser quand vous voulez surveiller la sante technique de la plateforme pendant qu'elle tourne (backtests, FAO, signal live), reperer un endpoint lent ou un process qui sature le CPU, ou objectiver le gain d'automatisation (combien d'humains a plein-temps il faudrait pour egaler la machine). C'est un outil de diagnostic et de mise en valeur, pas un outil de trading.
Le serveur le serveur de données Databento doit tourner sur le port 5055 (sinon l'ecran affiche Serveur databento_server hors-ligne avec un bouton Reessayer). Aucune licence ni donnee de marche requise : les metriques sont collectees automatiquement par les process PROTOS qui poussent leurs snapshots vers le collector central (endpoint /api/perf/ingest).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Reessayer | Re-sonde le serveur de données Databento (appelle initPerformance()) et recharge l'iframe une fois le serveur en ligne. |
| ON / OFF (btn-toggle) | Active ou desactive le collector de metriques (POST /api/perf/toggle). Le point passe au vert (ON) ou au rouge (OFF). |
| Fenetre | Fenetre d'agregation des stats : 60s, 5min (defaut), 15min ou 1h. Recharge le snapshot a chaque changement. |
| Refresh | Intervalle d'auto-rafraichissement : 1s, 2s (defaut) ou 5s. Redemarre le minuteur a chaque changement. |
| Refresh now | Force un rechargement immediat du snapshot (loadSnapshot()). |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Host CPU | CPU total de la machine hote en %. Vire au jaune (warn) au-dessus de 50%, au rouge (bad) au-dessus de 80%. |
| RAM | Memoire utilisee sur memoire totale, en Go (ex. 8.2G/16.0G). |
| Cores | Nombre de coeurs CPU detectes sur l'hote. |
| Processes | Nombre de processus PROTOS detectes et suivis. |
| Sources actives | Nombre de sources distinctes (process) qui poussent des metriques au collector central. |
| Speedup moyen | Acceleration moyenne (moyenne geometrique) machine vs humain, ex. x42. Plus c'est haut, plus la machine surclasse l'humain. |
| Time saved | Temps cumule economise par l'automatisation, en heures, sur la fenetre choisie. |
| FTE eq. | Equivalent temps plein : nombre d'humains a plein-temps qu'il faudrait pour egaler le debit de la machine. |
| alpha gain | Avantage d'alpha moyen en % (modele de decroissance exponentielle de l'edge selon la latence), pondere par le nombre d'operations. Vert si positif. |
| infini humain | Nombre de metriques ou la tache est juge impossible pour un humain (baseline humaine negative = speedup infini). |
| Cards par famille (modules-grid) | Une carte par famille de metriques, generee dynamiquement : Signal Engine, FAO Optimizer, HTTP Routes, WebSocket Streams, Order Pipeline, Backtest, Grid Search, Autres. Le tag indique le nombre de metriques. |
| Ligne de metrique (mrow) | Pour chaque metrique : prefixe [source], nom nettoye, 3 stats compactes selon le type (latency_ms: p50/p95/n ; throughput: rate/s, tot, n ; gauge: last/avg/n), le type (kind) et une sparkline (mini-courbe) issue de /api/perf/series. |
| Tableau Machine vs Human - Metrique | Nom de la metrique machine comparee. |
| Machine vs Human - Categorie | Categorie de la baseline humaine (perception, decision, execution, compute/calcul mental, recherche) qui determine la half-life de l'edge. Les lignes sans baseline affichent no baseline. |
| Machine vs Human - Machine p50 | Latence mediane mesuree cote machine (p50). |
| Machine vs Human - Humain ref. | Baseline humaine de reference issue de la litterature (±50%), ou impossible si la tache est hors de portee humaine. |
| Machine vs Human - Speedup | Rapport baseline humaine / p50 machine (ex. x300), ou infini si impossible pour un humain. |
| Machine vs Human - N ops | Nombre d'operations comptees sur la fenetre. |
| Machine vs Human - Time saved | Temps total economise pour cette metrique = (baseline - machine) x N ops. |
| Machine vs Human - alpha gain | Avantage d'alpha en % pour cette metrique (vert si positif). Le tableau est trie par alpha decroissant, les lignes sans baseline en bas. |
| Tag Machine vs Human (mvh-tag) | Ratio metriques mappees sur total, ex. 12/40 mapped. |
| Tableau Processes systeme | Une ligne par process : PID, Script, CPU % (rouge si >60, ambre si >20), RAM MB, Threads, Uptime (formate s/m/h). |
| Pastilles Sources | Chips en haut a droite : nom de la source, nombre de metriques et age (local ou Xs depuis le dernier signal). Point vert = local, point cyan = remote. |
| Last update / fetch-status | Heure de la derniere mise a jour (MAJ hh:mm:ss) et duree du dernier fetch (ex. fetched in 18ms), ou message d'erreur. |
Comment faire
le serveur de données Databento (port 5055) si l'ecran affiche Serveur databento_server hors-ligne, puis cliquez Reessayer.performance.html et se rafraichit automatiquement.- Pour un diagnostic fin, baissez la Fenetre a 60s et le Refresh a 1s ; pour une vue de tendance, montez a 15min/1h.
- Les sparklines (mini-courbes) montrent l'evolution recente de chaque metrique : un pic visible signale une degradation ponctuelle.
- Coupez le collector (OFF) si vous voulez geler la collecte ou reduire la charge ; les metriques cessent alors d'etre mises a jour.
- Les pastilles de source en cyan (remote) avec un age qui grimpe indiquent un process qui a cesse de pousser ses metriques.
- La page n'est PAS dans protos_ui.html : c'est une page autonome
performance.htmlservie parle serveur de données Databentoen iframe. Si ce serveur est coupe, la section est entierement hors-ligne. - Seules les metriques de type latency_ms sont comparees a une baseline humaine ; les throughput et gauges n'ont pas de reference temporelle et n'apparaissent pas dans les totaux Machine vs Human.
- Les lignes no baseline ne sont pas un bug : il faut ajouter un mapping dans
human_baselines.MACHINE_TO_HUMANpour qu'une metrique soit comparee. - Les baselines humaines viennent de la litterature avec une marge ±50% : les chiffres de speedup/alpha sont des estimations indicatives, pas des mesures exactes.
- Une famille sans aucune metrique reste masquee (card non affichee), donc une famille absente ne signifie pas une erreur.
Export
Transformer une stratégie validée en algo autonome et portable, exécutable sans PROTOS.
Strategy Builder (export ZIP)
Le Strategy Builder génère un fichier ZIP autonome contenant une ou plusieurs de tes stratégies backtestées, un runner Python, une mini-page web locale et les adapters broker/data que tu choisis. Le destinataire décompresse le ZIP, double-clique run.sh / run.command (macOS) ou run.bat (Windows) et pilote les signaux depuis son navigateur, soit en affichage manuel (signal-only), soit en exécution automatique via un broker connecté. Côté serveur, l'endpoint /api/export/build_zip reconstruit le pack à partir de ta config backtest.
À utiliser à la toute fin du flux, quand une stratégie est validée et que tu veux la livrer à un client ou la faire tourner ailleurs sans installer PROTOS complet. C'est le seul module qui produit un livrable distribuable et déconnecté du moteur propriétaire.
Au moins un backtest en mémoire (onglet Dernier run) ou des entrées dans l'historique local (onglet Historique). PROTECTION IP STRICTE : seules les stratégies basées sur un mode user (CoreMode 200-9999 défini via le Core Mode Developer / DSL), une stratégie externe (mode 99, module dans ext_strategies/), un combo ALL_MODES de modes user, ou une stratégie options (config.options) sont exportables. Les modes natifs PROTOS (< 200) sont refusés car le moteur protos_v8.py n'est jamais inclus dans le ZIP.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Onglet Dernier run | Exporte la stratégie du dernier backtest chargé en mémoire serveur (via /api/export/last_run). |
| Onglet Historique | Exporte une ou plusieurs stratégies piochées dans l'historique local (localStorage) du navigateur. |
| Bouton Recharger (Dernier run) | Recharge depuis le serveur le dernier backtest courant et rafraîchit le récapitulatif. |
| Bouton Tout (Historique) | Coche toutes les stratégies de la liste d'historique. |
| Bouton Aucun (Historique) | Décoche toutes les stratégies de la liste d'historique. |
| Cases à cocher des backtests (Historique) | Sélectionnent individuellement chaque stratégie à inclure dans le ZIP. |
| Sélecteur Plateforme cible (macOS + Windows / macOS / Windows) | Choisit quels scripts de lancement sont mis dans le ZIP : les deux, ou seulement run.command (mac) ou run.bat (windows). |
| Liste Adapters inclus (cases à cocher) | Choisit les adapters broker/data feed packagés ; manual est toujours conservé en secours. |
| Bouton Tout (Adapters) | Sélectionne tous les adapters disponibles. |
| Bouton Aucun (Adapters) | Désélectionne tous les adapters. |
| Bouton Défauts (Adapters) | Restaure la sélection par défaut : Yahoo Finance + MetaTrader 5 Bridge. |
| Bouton Générer le ZIP (Dernier run) | Construit et télécharge le ZIP avec la stratégie courante ; désactivé tant qu'aucun backtest n'est chargé. |
| Bouton Générer le ZIP (Historique) | Construit et télécharge le ZIP avec les stratégies cochées ; désactivé tant qu'aucune n'est sélectionnée. |
| Adapter Affichage signaux seul (manual) | Affiche les signaux dans l'UI sans broker ; ne fournit PAS les bars OHLC, à coupler avec un data feed. |
| Adapter Yahoo Finance (yfinance) | Data feed OHLC gratuit cross-platform (stocks, ETF, indices, FX, crypto), latence ~15min, sans authentification. Sélectionné par défaut. |
| Adapter Binance Public (binance_data) | Bars crypto temps réel via l'API publique Binance (REST + WebSocket), sans clé API. |
| Adapter MetaTrader 5 Bridge (mt5_bridge) | Recommandé Mac. Standalone : le runner ouvre un serveur TCP (port 8765) auquel l'EA PROTOS_Bridge.mq5 fourni se connecte. Sélectionné par défaut. |
| Adapter MetaTrader 5 package officiel (mt5) | Package Python MetaTrader5 officiel ; OK sur Windows natif, pas de wheel pip sur Mac. |
| Adapter Binance trading (binance) | Crypto spot et futures avec exécution ; API key + secret requis (lecture seule possible). |
| Adapter Hyperliquid (hyperliquid) | DEX crypto on-chain ; wallet privé requis. |
| Adapter Interactive Brokers (ibkr) | Multi-asset (stocks, futures, FX) ; nécessite IB Gateway ou TWS ouvert. |
| Adapter TopStepX (topstepx) | Compte funded TopStep (futures) ; username + API key requis. |
| Adapter Tradovate (tradovate) | Futures via Tradovate ; username + password + CID/SEC. |
| Adapter Rithmic (rithmic) | Futures via Rithmic R | Trader Pro ; compte broker live requis. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Récapitulatif Dernier run — Nom | Nom lisible de la stratégie (symbol + timeframe + mode). |
| Récapitulatif Dernier run — Symbol | Instrument du backtest courant. |
| Récapitulatif Dernier run — Timeframe | Unité de temps des bougies. |
| Récapitulatif Dernier run — Mode | Nom (ou numéro) du CoreMode utilisé ; doit être un mode user pour être exportable. |
| Récapitulatif Dernier run — N barres | Nombre de bougies couvertes par le backtest. |
| Récapitulatif Dernier run — Trades | Nombre de trades simulés. |
| Récapitulatif Dernier run — Win rate | Pourcentage de trades gagnants (plus haut = mieux). |
| Récapitulatif Dernier run — Profit factor | Gains bruts / pertes brutes ; > 1 = profitable, repère sain ≥ 1.5. |
| Récapitulatif Dernier run — Expectancy R | Gain moyen attendu par trade exprimé en R (multiple du risque) ; > 0 = positif. |
| Récapitulatif Dernier run — Max DD | Drawdown maximal en % ; plus bas en valeur absolue = mieux. |
| Récapitulatif Dernier run — Score | Score global PROTOS de la stratégie (plus haut = mieux). |
| Récapitulatif Historique — Stratégies | Nombre de stratégies sélectionnées pour le pack. |
| Récapitulatif Historique — Symbols | Liste dédoublonnée des instruments inclus. |
| Récapitulatif Historique — Timeframes | Liste dédoublonnée des unités de temps incluses. |
| Récapitulatif Historique — Trades cumul. | Somme des trades de toutes les stratégies sélectionnées. |
| Récapitulatif Historique — Score moyen | Moyenne des scores des stratégies sélectionnées. |
| Ligne d'historique (sym · tf · mode · date · WR · PF · score) | Aperçu d'un backtest : symbole, timeframe, mode, date, win rate, profit factor et score coloré. |
| Compteur d'adapters | Indique le nombre d'adapters actuellement sélectionnés. |
| Avertissement aucune source de bars | S'affiche si aucun adapter sélectionné ne fournit les OHLC : la stratégie ne pourra pas calculer ses signaux. |
| Statut d'export | Message d'état sous le bouton : Chargement, Génération du ZIP, nom du fichier + taille en KB, ou Erreur. |
| Fichier ZIP téléchargé | Pack autonome nommé p.ex. protos_strategy_<symbol>_<tf>_<date>.zip ou protos_strategies_<N>_<date>.zip (suffixe _mac / _win selon la plateforme cible). |
| Contenu du ZIP | runner.py, strategy_runtime.py, engine.py, scripts de lancement (run.sh/run.command/run.bat), requirements.txt + adapter_deps.txt, dossier adapters/ filtré avec _manifest.json, l'UI web locale, l'évaluateur DSL (core_mode_dsl.py) et le catalogue d'indicateurs, plus un strategies/<slug>.json par stratégie (config + métriques whitelistées + spec DSL) et strategies/_manifest.json. |
Comment faire
- Garde toujours au moins un data feed (Yahoo Finance ou MT5 Bridge) coché, sinon le runner n'a aucune bougie OHLC et ne produit aucun signal.
- Sur Mac, MetaTrader 5 Bridge est le mode broker recommandé : il est standalone (port TCP 8765) et n'exige pas le package pip MetaTrader5 indisponible sur Mac.
- Le bouton Défauts remet rapidement la sélection d'adapters minimale et fonctionnelle (Yahoo Finance + MT5 Bridge).
- L'historique de l'onglet Historique vient du localStorage du navigateur : il se remplit au fil de tes backtests sur cette machine.
- Mode STRICT (protection IP) : un backtest sur un CoreMode natif PROTOS (< 200) est REFUSÉ avec une erreur, car protos_v8.py n'est jamais inclus dans le ZIP. Reconstruis la logique via le Core Mode Developer pour pouvoir l'exporter.
- Pour un mode user, si le fichier user_modes/<slug>.json correspondant est introuvable côté serveur, l'export échoue (spec DSL introuvable).
- Le récapitulatif et les métriques sont fortement whitelistés : les diagnostics internes (Kyle, Monte-Carlo, CPCV, etc.) ne sont jamais embarqués dans le ZIP.
- Le bouton Générer le ZIP reste désactivé tant qu'aucun backtest n'est chargé (Dernier run) ou qu'aucune stratégie n'est cochée (Historique).
- Certains adapters affichés (IBKR, TopStep, Tradovate, Rithmic...) exigent des identifiants/installations côté destinataire ; les cocher ne garantit pas qu'ils soient utilisables sans configuration.
- Un combo ALL_MODES (mode 15) n'est exportable que si TOUS ses sous-modes sont des modes user ; un seul sous-mode natif fait échouer l'export.
Builder
Créer vos propres modes de trading sans code, ou importer une stratégie existante.
Core Mode Developer
Le Core Mode Developer est un editeur visuel qui transforme un assemblage d'indicateurs et de conditions en un mode de signal reel (un nouveau core_mode) compatible avec tout PROTOS. Tu piochles des indicateurs dans un catalogue par famille, tu construis tes conditions d'entree LONG et SHORT avec des operateurs logiques (TOUT/UN/NON), et un graphique d'apercu calcule en direct les valeurs des indicateurs et les signaux generes. A la sauvegarde, le mode est compile par core_mode_dsl.py, recoit un numero de core_mode et devient selectionnable dans le Backtest, le FAO, le Post-FAO et le Quant Validator, exactement comme un mode natif.
Utilise-le des que tu as une idee de strategie (ex: croisement EMA, RSI en survente, breakout Donchian) et que tu veux la tester sans ecrire de code. C'est le point de depart de tout flux de travail PROTOS : on cree le mode ici, puis on le backteste et on l'optimise dans les autres sections.
Aucune licence ni connexion broker requise. L'apercu graphique fonctionne sur des donnees synthetiques par defaut ; pour previsualiser sur des vraies donnees, il faut un symbole + timeframe dont les donnees OHLCV sont accessibles via le cache local (LSE / MT5 / Databento selon disponibilite).
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| + New | Cree un nouveau mode vide (uniquement indicateurs + confluence d'entree, sans SL/TP/risk qui restent dans la sidebar Backtest). |
| Liste User Modes (sidebar gauche) | Affiche tous les modes sauvegardes ; un clic charge le mode pour l'editer. Chaque ligne indique le nombre d'indicateurs, le core_mode= attribue, et un triangle d'alerte si le mode n'a pas compile. |
| Nom du mode (champ) | Nom lisible du mode ; sert aussi a generer le slug (identifiant technique) a la sauvegarde. |
| Description (champ) | Texte libre optionnel decrivant la strategie. |
| Statut | Indique en clair l'etat courant : Nouveau mode, Modifications non sauvees, ou Sauve avec le slug attribue. |
| Assistant | Ouvre un wizard local (zero token, sans LLM) qui pose des questions (edge, timeframe, actif, regime, latence, nombre d'indicateurs) et recommande des indicateurs classes avec leurs pros/cons. |
| Chat | Ouvre un chat hybride : reponses par pattern-matching local plus repli IA locale (Ollama si disponible) pour poser des questions sur les indicateurs. |
| Backtest | Sauve le mode, l'active dans la config Backtest (core_mode) et bascule sur la page Backtest pret a etre lance. |
| Supprimer | Supprime definitivement le mode courant (confirmation requise) et le retire des moteurs de signaux. |
| Sauver | Valide le mode via /api/user_modes/validate puis l'enregistre ; il est aussitot recompile et injecte dans la liste des core_modes du Backtest. |
| Onglet Indicateurs | Onglet principal : catalogue d'indicateurs, apercu graphique et liste des indicateurs ajoutes. Le compteur indique le nombre d'indicateurs du mode. |
| Onglet Confluence d'entree | Construit les arbres de conditions LONG (BUY) et SHORT (SELL). |
| Onglet Patterns Library | Bibliotheque de setups documentes pre-faits applicables en un clic. Le compteur indique le nombre de patterns charges. |
| Onglet JSON | Affiche le mode courant sous forme JSON brut (le DSL genere). |
| Filtrer (catalogue) | Filtre le catalogue d'indicateurs par texte (ex: RSI, BB). |
| Arbre catalogue par famille | Liste les indicateurs regroupes par famille (repliable) ; un clic ajoute l'indicateur au mode, le survol affiche une infobulle avec description et presets. |
| symbol (apercu) | Symbole pour charger de vraies donnees dans l'apercu ; vide = donnees synthetiques. |
| TF (apercu) | Timeframe de l'apercu : M1, M5, M15, M30, H1, H4, D1. Requis avec un symbole pour des vraies donnees. |
| nbars (apercu) | Nombre de barres a charger pour l'apercu (defaut 500, borne entre 100 et 20000). |
| Source apercu (indicateur src) | Affiche la provenance des donnees affichees : demo (synthetique) ou reelle. |
| Rafraichir apercu (boutton flèche) | Recalcule indicateurs et signaux et redessine le graphique. |
| Replay : Debut / -1 bar / Play / +1 bar / Fin | Controles de relecture barre par barre pour faire defiler l'historique et observer l'evaluation des conditions. |
| Replay : scrub (slider) | Curseur pour se positionner directement sur une barre de l'historique d'apercu. |
| Vitesse (replay) | Vitesse de lecture automatique : 0.5x, 1x (250ms), 2x, 5x, 10x. |
| Dans ce mode (liste ajoutes) | Liste les indicateurs ajoutes au mode avec leur compteur ; permet de regler leurs parametres et de les retirer. |
| ENTREE LONG / ENTREE SHORT (arbres) | Deux arbres de conditions independants pour les signaux d'achat (BUY) et de vente (SELL). |
| Operateur de groupe | Selecteur logique du groupe : TOUT (AND), UN (OR) ou NON (NOT). |
| + Condition | Ajoute une condition feuille (left / operateur / right) dans le groupe. |
| + Groupe | Ajoute un sous-groupe imbrique pour combiner plusieurs logiques. |
| Reference gauche (condition) | Selecteur de la valeur de gauche : close, open, high, low, volume ou un indicateur ajoute (et ses sorties multiples le cas echeant). |
| Operateur (condition) | Comparateur entre les deux cotes : >, <, >=, <=, ==, !=, crossover, crossunder. |
| Reference / nombre droite (condition) | Valeur de droite : une autre reference ou un nombre litteral. |
| Supprimer condition/groupe (croix) | Retire la feuille ou le sous-groupe correspondant. |
| Chercher (Patterns) | Recherche texte dans la bibliotheque de patterns (ex: ORB, RSI, Connors, Donchian). |
| Categorie (Patterns) | Filtre les patterns par categorie. |
| Filtres Timeframe / Actifs / Difficulte / Indicateurs (chips) | Filtres multi-selection de la bibliotheque de patterns par timeframe, classe d'actif, complexite et nombre d'indicateurs. |
| Reinitialiser filtres (Patterns) | Efface tous les filtres chips actifs. |
| Carte pattern (clic Appliquer) | Charge le mode_json pre-construit du pattern dans l'editeur en un clic. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| core_mode= (numero de mode) | Identifiant entier attribue au mode sauve (zone USER_MODE) ; c'est ce numero que le Backtest et les autres sections selectionnent pour utiliser ta strategie. |
| slug | Identifiant technique en minuscules derive du nom (a-z0-9 et underscores), utilise dans les URL et le stockage du mode. |
| compiled / triangle d'alerte | Indique si le mode a bien ete compile par le DSL ; un triangle rouge dans la liste signale un mode non compile (erreur a corriger). |
| Erreurs de validation | Liste des erreurs renvoyees par la validation du DSL (references inconnues, structure invalide) ; bloque la sauvegarde tant qu'elles existent. |
| Graphique prix (chart preview) | Trace les bougies/prix avec les indicateurs superposes (overlay) et les fleches de signaux LONG/SHORT generes. |
| Graphique oscillateur | Sous-graphe dedie aux indicateurs de type oscillateur (RSI, Stoch, etc.). |
| Legende (chips) | Liste les series d'indicateurs affichees avec leur couleur. |
| Source / symbol / timeframe (apercu) | Indique si l'apercu tourne sur donnees real ou synthetic, et sur quel symbole/timeframe ; H1 (synth) signale le mode demo. |
| bars (apercu) | Nombre reel de barres calculees dans l'apercu. |
| Panneau Conditions (cmb-cond-panel) | Evaluation en direct de chaque condition au niveau de la barre courante du replay, avec coche verte (vrai) ou croix rouge (faux) et la valeur testee. |
| Position replay (pos) | Indique la barre courante sur le total (ex: 300/300) pendant la relecture. |
| Valeurs d'indicateurs (data.indicators) | Series numeriques calculees par indicateur (ou par sortie pour les indicateurs multi-sorties), utilisees pour dessiner le graphique. |
| sig_long / sig_short | Tableaux booleens des signaux d'entree achat et vente generes par la strategie sur les donnees d'apercu. |
| JSON du mode | Le DSL complet du mode (indicators + entries.long/short) ; c'est la representation exacte de ce qui sera compile et sauve. |
| Recommandations Assistant (ranked) | Liste d'indicateurs classes par score avec role, pros, cons et indicateurs complementaires (pairs_with), plus une explication textuelle. |
Comment faire
- L'Assistant et le Chat sont 100% locaux (zero token) : sers-t'en pour choisir des indicateurs sans cout.
- Le panneau Conditions evalue tes regles barre par barre pendant le replay : c'est le moyen le plus sur de comprendre pourquoi un signal se declenche ou non.
- Pour un apercu fidele, renseigne un symbol + TF reels ; sans cela le graphique tourne sur un random-walk deterministe (donnees demo).
- Patterns Library contient des setups deja construits : applique-en un puis adapte-le plutot que de partir de zero.
- SL / TP / Break-Even / filtres / gestion du risque ne se reglent PAS ici : ce sont des reglages de la sidebar Backtest standard. Le Core Mode ne definit que le generateur de signal (indicateurs + entrees).
- Un mode peut etre sauve mais non compile : surveille le triangle rouge dans la liste et les erreurs de validation, sinon le mode ne produira aucun signal en backtest.
- Les references dans les conditions doivent exister : seuls close/open/high/low/volume et les indicateurs reellement ajoutes (et leurs sorties) sont des refs valides ; sinon la validation echoue.
- L'apercu real depend du cache local de donnees (LSE/MT5/Databento) ; si le chargement echoue, PROTOS retombe silencieusement sur les donnees synthetiques (load_err est renseigne).
- nbars est borne entre 100 et 20000 cote serveur, meme si tu saisis une valeur hors limites.
Strategy Importer
Le Strategy Importer prend du code source de strategie que tu colles (Python avec talib/pandas_ta, MQ5/MQL5, Pine Script v4/v5, C++ TA-Lib/Sierra ACSIL, C#/NinjaScript, ou ATAS order-flow) et le decode automatiquement. Il detecte les indicateurs, leurs parametres et les conditions d'entree long/short, puis te propose un mode pre-rempli a creer dans le Core Mode Builder. C'est un parser deterministe (AST + regex + table d'alias indicator_aliases.py) : aucune boite noire LLM dans le chemin de conversion. Chaque element detecte recoit un score de confidence et un statut que tu peux cocher/decocher avant de creer le mode.
Utilise-le quand tu as deja une strategie ecrite ailleurs (TradingView, MetaTrader, NinjaTrader, un script Python) et que tu veux la rejouer dans PROTOS sans la reconstruire a la main. C'est le point d'entree pour migrer une idee existante vers le builder avant de la backtester ou de l'optimiser.
Aucune source de donnees ni licence requise pour l'analyse (tout est local et deterministe). Le bouton optionnel Analyser avec PROTOS AI necessite que le service AI local Ollama soit demarre sur le port 11434, sinon il affiche simplement un message d'indisponibilite.
Réglages & contrôles
| Contrôle | Rôle |
|---|---|
| Selecteur de langage (Detection auto / Python (talib/pandas_ta) / MQ5 / MQL5 / Pine Script (v4/v5) / C++ (TA-Lib / Sierra ACSIL) / C# / NinjaScript (NinjaTrader) / ATAS (order-flow)) | Force la langue du parser ou laisse PROTOS la deviner via detect_language. Envoye comme language a l'API ; auto = detection automatique. |
| Seuil confidence (0.40 permissif / 0.50 / 0.70 strict) | Seuil minimum de confidence pour mapper un indicateur. En dessous du seuil, l'indicateur est flague a revoir (low_confidence) au lieu d'etre importe. Envoye comme min_confidence (defaut 0.50). |
| Analyser (bouton) | Lance le parsing : POST /api/strategies/parse_and_import avec le code, le langage et le seuil. Remplit le panneau de detection a droite. |
| Effacer (bouton) | Vide la zone de code, ferme les panneaux de resultat et d'analyse AI, et reinitialise l'etat. |
| Zone de code source (textarea) | Champ ou tu colles le code de la strategie a analyser (limite serveur : 200 ko). |
| Exemples rapides (chips) | Charge un exemple pre-ecrit dans la zone de code et fixe le langage adapte : RSI + Bollinger (Python), EMA Cross (Pine v5), RSI + EMA (MQ5), RSI + EMA (C++ TA-Lib), EMA Cross + RSI (NinjaScript), Imbalance OF (ATAS), CVD divergence (Python). |
| Nom de la strategie (champ texte) | Nom du mode a creer ; pre-rempli avec le nom detecte ou Imported strategy. Sert a generer le slug du user_mode. |
| Cases a cocher par element (report) | Chaque indicateur/condition detecte a une case. Decocher exclut l'element du mode cree. Pre-cochees pour les statuts ok et approximated. |
| Analyser avec PROTOS AI (bouton) | Optionnel. POST /api/strategies/parse_and_import/explain vers l'IA locale Ollama : explique la strategie, son contexte de marche, ses risques et propose des indicateurs PROTOS a ajouter. Active seulement apres une analyse reussie. |
| Creer dans le builder (bouton) | Cree le user_mode : POST /api/user_modes/<slug> avec les seuls elements coches, puis redirige vers le Core Mode Builder (Developer). Active uniquement si le mode contient au moins un indicateur. |
Ce que ça affiche
| Métrique / sortie | Signification |
|---|---|
| Langue (si-lang-detected) | Langage source detecte ou impose, affiche en tete du panneau (res.language). |
| indicateurs OK (summary indicators_mapped) | Nombre d'indicateurs mappes avec succes (statut ok ou approximated). Plus c'est eleve, mieux la strategie a ete reconnue. |
| a revoir (summary indicators_low_conf) | Nombre d'indicateurs sous le seuil de confidence : reconnus mais incertains, a verifier avant import. |
| non reconnus (summary unrecognized) | Nombre d'elements sans correspondance dans le CATALOG PROTOS (statut skipped) : a ajouter manuellement dans le builder. |
| conditions (summary conditions) | Nombre de conditions d'entree (long/short) extraites du code. |
| Liste des elements detectes (report) | Une ligne par indicateur ou condition. Pour un indicateur : source -> mapped_to (cle CATALOG PROTOS). Pour une condition : le texte source. Affiche aussi le type (kind: indicator/condition/unrecognized), la ligne source et le statut. |
| Badge de confidence (par element) | Pourcentage 0-100 colore : vert (high, >= 70%), jaune (mid, 40-69%), rouge (low, < 40%). Les elements >= 70% sont surs. |
| Statut / code couleur (bordure gauche) | ok (vert), approximated (orange, proche equivalent — lire les notes), low_confidence (jaune, a revoir), skipped (rouge, non reconnu). |
| Notes par element | Avertissements affiches en orange, ex. raison d'une approximation ou message confidence < seuil. |
| Banniere d'avertissement (message) | Bandeau orange affiche surtout pour les imports ATAS order-flow : signale que la strategie est approximative et a reconstruire avec les indicateurs OF suggeres. |
| Analyse PROTOS AI local (panneau) | Texte markdown genere par l'IA locale Ollama, structure en sections : Ce que fait la strategie, Quand elle declenche, Contexte de marche favorable, Risques et limites, Recommandations PROTOS (indicateurs a ajouter, prefixe OF_ pour order flow). |
Comment faire
- Commence avec le seuil 0.50 ; passe a 0.70 (strict) si tu veux seulement les indicateurs surs, ou 0.40 (permissif) pour capter le maximum d'elements a trier ensuite.
- Les elements oranges (approximated) sont des equivalents proches : lis les notes pour comprendre la substitution avant de les garder.
- Pour une strategie ATAS order-flow, attends-toi a la banniere d'avertissement : l'import est approximatif, reconstruis avec les indicateurs OF_ suggeres.
- Le mode cree atterrit dans le Core Mode Builder (Developer) ou tu peux completer manuellement ce qui n'a pas ete reconnu.
- Parser deterministe : seuls les indicateurs/fonctions presents dans la table d'alias et le CATALOG PROTOS sont reconnus. Un indicateur custom ou exotique sera marque non reconnu (skipped).
- Le code est limite a 200 ko ; au-dela le serveur renvoie une erreur.
- Le filtrage des conditions par checkbox est grossier : si tu decoches toutes les conditions, le mode est cree sans aucune entree ; sinon toutes les conditions cochees sont conservees (pas de filtrage condition par condition fin).
- Le bouton Creer reste desactive si aucun indicateur n'est present dans le mode.
- Analyser avec PROTOS AI exige le service Ollama local (port 11434) demarre ; sinon le panneau affiche seulement un message d'indisponibilite. L'analyse AI peut prendre 10-60 s.
- Si la langue ne peut pas etre detectee, l'analyse echoue avec un message demandant de preciser python / mql5 / pine / cpp / csharp / atas.
Référence
Les catalogues complets (modes, indicateurs, sources, API), les bonnes pratiques, le glossaire et le dépannage.
Catalogue des modes intégrés (Core Modes)
Un Core Mode est la logique de trading active. PROTOS embarque une large bibliothèque de modes pré-programmés, classés par familles. Le défaut est STRUCTURE (cassures de niveaux), robuste et universel.
Microstructure/Smart Money
| Mode | Ce qu'il fait |
|---|---|
| STRUCTURE | Cassure de structure (Break of Structure / BOS) sur swing points, entree sur le retest de la zone cassee. |
| DOM_MICROSTRUCTURE | Lecture du carnet d'ordres (Market Depth / DOM) en live uniquement, gate Databento. |
| ORDER_BLOCK_REJECTION | Trade le rejet en wick d'un Order Block (zone demande/offre) institutionnel encore actif. |
| LIQUIDITY_SWEEP_RECLAIM | Stop hunt ICT : balayage de liquidite (PDH/PDL/swing) puis reclaim et entree dans le sens inverse. |
| FAIR_VALUE_GAP_FILL | Fair Value Gap : imbalance sur 3 barres, trade le retour du prix dans le gap a combler. |
| CUMULATIVE_DELTA_DIVERGENCE | Divergence prix vs delta cumule (proxy Lee-Ready) : flux acheteur/vendeur contredisant le prix. |
Tendance
| Mode | Ce qu'il fait |
|---|---|
| IMPULSE_CONTINUATION | Trade la continuation apres une bougie d'impulsion forte, dans le sens de l'elan momentum. |
| TREND_PULLBACK_EMA | Entree sur pullback vers une EMA dans le sens de la tendance etablie. |
| SESSION_RANGE_BREAKOUT | Cassure du range d'une session (Asie/Londres/US), trade la sortie directionnelle du range. |
| SQUEEZE_BREAKOUT | Detecte la compression de volatilite (Bollinger dans Keltner) et trade le breakout d'expansion. |
| INSIDE_BAR_NR7 | Breakout de compression : inside bar + NR7 (plus petit range sur 7 barres) puis cassure. |
| OPENING_RANGE_BREAKOUT | Cassure du range des N premieres minutes de session (Opening Range Breakout). |
| TURTLE_DONCHIAN | Breakout de canal Donchian sur N barres, systeme suiveur de tendance Turtle. |
| KALMAN_TREND | Ligne de tendance estimee par filtre de Kalman, entree sur pullback vers la trajectoire filtree. |
Mean-reversion
| Mode | Ce qu'il fait |
|---|---|
| VWAP_MEAN_REVERSION | Fade des extensions de prix loin du VWAP, retour vers la moyenne ponderee par le volume. |
| BBKC_MEAN_REVERSION | Retour a la moyenne via Bollinger Bands / Keltner Channels : fade des touches de bande externe. |
| RSI2_STOCH_SCALP | Scalp mean-reversion sur RSI(2) + Stochastique en zones de survente/surachat. |
| SPREAD_ZSCORE | Fade des extremes de spread bid/ask en z-score, retour a la moyenne du spread. |
| FAILED_BREAKOUT_FADE | Fade des faux breakouts : entree contre-tendance apres reclaim du niveau casse a tort. |
Meta/ensemble
| Mode | Ce qu'il fait |
|---|---|
| ALL_MODES | Combine les signaux de tous les modes selectionnes avec un seuil minimum d'accord (vote consensus). |
| BANDIT_MODE_SELECTOR | Selecteur multi-armed bandit (Thompson sampling) qui pondere ALL_MODES selon la performance recente. |
| STACKED_ENSEMBLE_VOTE | Vote d'ensemble empile, pondere chaque mode par sa performance rolling pour le signal final. |
Regime adaptatif
| Mode | Ce qu'il fait |
|---|---|
| ADX_REGIME_DUAL | Switch ADX : ADX eleve = breakout suiveur, ADX faible = fade du range mean-reversion. |
| VOLATILITY_REGIME_PULSE | Z-score d'ATR : expansion = momentum, compression = squeeze, adapte la logique au regime de vol. |
| HURST_REGIME_SWITCH | Exposant de Hurst : H>0.55 = trend-following, H<0.45 = mean-reversion. |
Volume profile
| Mode | Ce qu'il fait |
|---|---|
| VOLUME_PROFILE_POC_REJECT | Rejet du Point of Control (POC) journalier du profil de volume, fade vers les zones de valeur. |
| VPOC_BREAK_RECLAIM | Cassure puis reclaim du POC volume : trade la confirmation de prise/perte du niveau de controle. |
Pairs/Stat-arb
| Mode | Ce qu'il fait |
|---|---|
| COINTEGRATION_PAIRS | Cointegration Engle-Granger sur une paire, trade le spread mean-reverting (exclu de ALL_MODES). |
| STAT_ARB_PAIRS | Pairs trading stat-arb sur spread cointegre 2 symboles (hedge OLS ou Kalman), signaux z-score, bypass single-asset. |
Machine learning
| Mode | Ce qu'il fait |
|---|---|
| GRADIENT_BOOST_FILTER | Gradient Boosting / score composite multi-features filtrant les setups par probabilite de succes. |
| REGIME_CLUSTERING_KMEANS | KMeans sur features de marche, mappe chaque cluster a son rendement forward attendu. |
| ANOMALY_DETECTION_HALT | Isolation Forest : detecte les outliers extremes et fade (ou stoppe) sur anomalie de marche. |
| PCA_COMPOSITE_SIGNAL | PCA sur multi-indicateurs, projette PC1 en signal scalaire directionnel composite. |
| VOLATILITY_FORECAST_GARCH | Proxy EWMA/GARCH : forecast de volatilite future pour adapter le timing et le filtrage d'entree. |
Lancez STRUCTURE sur votre instrument, comparez 2-3 modes adaptés au contexte, puis laissez l'<a href='#sec-full_auto_optimizer'>Optimizer/FAO</a> ou <a href='#sec-thanos'>THANOS</a> tester les modes pour vous.
Catalogue des indicateurs
Les indicateurs sont les briques du Core Mode Developer et du Strategy Builder. Chacun a un alias à utiliser dans les conditions (ex. ema, rsi, bb.upper). Les colonnes brutes open/high/low/close/volume sont toujours disponibles.
Tendance
| Indicateur | Alias | Description |
|---|---|---|
| SMA | SMA | Moyenne mobile simple sur N barres. |
| EMA | EMA | Moyenne mobile exponentielle (poids decroissant exponentiel). |
| WMA | WMA | Moyenne mobile ponderee lineairement (barres recentes plus lourdes). |
| DEMA | DEMA | Double EMA, retard reduit par rapport a l'EMA. |
| TEMA | TEMA | Triple EMA, encore moins de retard, plus reactif. |
| HMA | HMA | Hull Moving Average, rapide et lisse (Alan Hull). |
| KAMA | KAMA | Kaufman Adaptive MA, accelere en tendance, ralentit en range. |
| LinReg | LinReg | Valeur de la regression lineaire glissante au point courant. |
| LinRegSlope | LinRegSlope | Pente de la regression lineaire glissante (direction du trend). |
| SuperTrend | SuperTrend (.trend / .direction) | Ligne de tendance ATR-based + direction +1/-1. |
| Parabolic SAR | ParabolicSAR (.sar) | Stop and Reverse parabolique de Welles Wilder, niveau de stop suiveur. |
| Ichimoku | Ichimoku (.tenkan / .kijun / .senkou_a / .senkou_b) | Ichimoku Kinko Hyo, systeme a 4 lignes (Tenkan, Kijun, Senkou A/B). |
| Kalman Trend | Kalman (.smoothed) | Filtre de Kalman 1D, lissage adaptatif du prix. |
Momentum
| Indicateur | Alias | Description |
|---|---|---|
| RSI | RSI | Relative Strength Index (Wilder), oscillateur overbought/oversold 0-100. |
| Stochastic | Stoch (.k / .d) | Oscillateur stochastique %K et %D (George Lane). |
| Stochastic RSI | StochRSI (.k / .d) | Stochastique applique au RSI, plus reactif que le RSI seul. |
| MACD | MACD (.macd / .signal / .hist) | Moving Average Convergence Divergence, ligne + signal + histogramme. |
| CCI | CCI | Commodity Channel Index (Lambert), ecart au prix typique normalise. |
| Williams %R | WilliamsR | Oscillateur Williams %R borne [-100, 0]. |
| ROC | ROC | Rate of Change, variation en % vs N barres avant. |
| Momentum | Momentum | Momentum brut, difference vs N barres avant. |
| TSI | TSI | True Strength Index (Blau), momentum double-lisse. |
| TRIX | TRIX | ROC d'une EMA triple-lissee, filtre le bruit. |
| Awesome Oscillator | AwesomeOsc | SMA(HL2, rapide) - SMA(HL2, lent) (Bill Williams). |
| Ultimate Oscillator | UltimateOsc | Momentum pondere multi-timeframe (Larry Williams). |
| KST | KST (.kst / .signal) | Know Sure Thing (Pring), somme ponderee de 4 ROC lisses. |
| Coppock Curve | Coppock | Oscillateur long terme, WMA de la somme de deux ROC. |
| DPO | DPO | Detrended Price Oscillator, retire la tendance par decalage de SMA. |
Volatilite
| Indicateur | Alias | Description |
|---|---|---|
| ATR | ATR | Average True Range (Wilder), amplitude moyenne des barres. |
| Bollinger Bands | Bollinger (.upper / .mid / .lower) | Bandes de Bollinger, SMA +/- mult x ecart-type. |
| Bollinger Band Width | BBWidth | Largeur des bandes (upper-lower)/mid, mesure de compression. |
| Bollinger %B | BBPercentB | Position du prix dans les bandes [0..1]. |
| Keltner Channels | Keltner (.upper / .mid / .lower) | Canaux de Keltner bases sur l'ATR. |
| Donchian Channels | Donchian (.upper / .mid / .lower) | Plus haut / plus bas sur N barres (systeme Turtle). |
| Standard Deviation | StdDev | Ecart-type glissant du prix. |
| Historical Volatility | HistVol | Volatilite historique annualisee a partir des log-returns. |
| Chaikin Volatility | ChaikinVol | ROC d'une EMA de l'amplitude high-low. |
| Envelope | Envelope (.upper / .lower) | Enveloppe de moyenne mobile +/- un pourcentage. |
Volume
| Indicateur | Alias | Description |
|---|---|---|
| OBV | OBV | On-Balance Volume (Granville), volume cumule signe par la direction. |
| VWAP | VWAP | Volume Weighted Average Price ancre a la journee. |
| MFI | MFI | Money Flow Index, RSI pondere par le volume. |
| CMF | CMF | Chaikin Money Flow, flux monetaire net sur N barres. |
| A/D Line | ADLine | Ligne d'accumulation / distribution cumulee. |
| Force Index | ForceIndex | Force Index (Elder), variation de prix x volume lissee. |
| Ease of Movement | EOM | Ease of Movement (Arms), facilite du mouvement de prix par unite de volume. |
| Klinger Volume Oscillator | Klinger (.kvo / .signal) | Oscillateur de volume de Klinger, KVO + signal. |
| Volume ROC | VolumeROC | Rate of Change du volume. |
Regime
| Indicateur | Alias | Description |
|---|---|---|
| ADX / DMI | ADX (.adx / .di_plus / .di_minus) | Average Directional Index + DI+/DI- (Wilder), force et direction du trend. |
| Aroon | Aroon (.up / .down / .osc) | Aroon Up/Down + oscillateur, detecte debut/fin de tendance. |
| Hurst Exponent | Hurst | Exposant de Hurst glissant, <0.5 mean-reversion, >0.5 trend. |
| ATR Percentile | ATRPctile | Rang percentile de l'ATR (0..100), classe les regimes de volatilite. |
Price action
| Indicateur | Alias | Description |
|---|---|---|
| Swing High | SwingHigh | Barre formant un sommet pivot (high > N barres a gauche et a droite). |
| Swing Low | SwingLow | Barre formant un creux pivot. |
| Pin Bar | PinBar (.bullish / .bearish) | Bougie de rejet, meche >= ratio x corps. |
| Inside Bar | InsideBar | Barre dont le range est contenu dans celui de la precedente. |
| Outside Bar | OutsideBar | Barre dont le range englobe la precedente. |
| Fair Value Gap | FVG (.bullish / .bearish) | Gap d'imbalance sur 3 barres (FVG). |
| Doji | Doji | Doji, corps tres petit vs range, indecision. |
| Hammer | Hammer | Marteau, longue meche basse, reversal haussier potentiel. |
| Shooting Star | ShootingStar | Etoile filante, longue meche haute, reversal baissier potentiel. |
| Long Body | LongBody | Corps long, corps > mult x corps moyen sur N barres. |
| Marubozu | Marubozu | Marubozu, corps remplit quasi tout le range, barre directionnelle forte. |
| Bullish Engulfing | BullishEngulf | Avalement haussier, bougie verte englobant le corps rouge precedent. |
| Bearish Engulfing | BearishEngulf | Avalement baissier, bougie rouge englobant le corps vert precedent. |
| Tweezer Top | TweezerTop | Pince haute, 2 hauts quasi identiques apres une hausse. |
| Tweezer Bottom | TweezerBottom | Pince basse, 2 bas quasi identiques apres une baisse. |
| Morning Star | MorningStar | Etoile du matin, reversal haussier sur 3 barres. |
| Evening Star | EveningStar | Etoile du soir, reversal baissier sur 3 barres. |
| Three White Soldiers | ThreeWhiteSoldiers | Trois soldats blancs, 3 hausses consecutives. |
| Three Black Crows | ThreeBlackCrows | Trois corbeaux noirs, 3 baisses consecutives. |
| NR7 | NR7 | Narrow Range N, plus petit range des N dernieres barres. |
| Wide Range Bar | WideRangeBar | Barre a large amplitude, range > mult x ATR (impulsion). |
| Structure Break Up | StructureBreakUp | Cassure structurelle haussiere, close > plus haut N barres (Bai-Perron). |
| Structure Break Down | StructureBreakDown | Cassure structurelle baissiere, close < plus bas N barres. |
| Trend Shift Up | TrendShiftUp | Bascule de tendance haussiere court terme, premier close > micro swing high. |
| Trend Shift Down | TrendShiftDown | Bascule de tendance baissiere court terme, premier close < micro swing low. |
| Demand Zone | DemandZone | Zone de demande, derniere bougie baissiere avant impulsion haussiere (Kyle 1985). |
| Supply Zone | SupplyZone | Zone d'offre, derniere bougie haussiere avant impulsion baissiere. |
| Stop Run Low | StopRunLow | Chasse de stops bas, meche perce le plus bas N barres puis reclame (Osler 2003). |
| Stop Run High | StopRunHigh | Chasse de stops haut, meche perce le plus haut N barres puis reclame. |
| Higher High | HigherHigh | Sommet plus haut que le precedent (uptrend). |
| Higher Low | HigherLow | Creux plus haut que le precedent (uptrend). |
| Lower High | LowerHigh | Sommet plus bas que le precedent (downtrend). |
| Lower Low | LowerLow | Creux plus bas que le precedent (downtrend). |
| Consecutive Up | ConsecutiveUp | N bougies haussieres consecutives. |
| Consecutive Down | ConsecutiveDown | N bougies baissieres consecutives. |
| Inside Range N | InsideRangeN | N dernieres barres contenues dans le range de la (N+1)e. |
| Squeeze | Squeeze | Squeeze (Carter), bandes de Bollinger a l'interieur des Keltner, precurseur d'expansion. |
| Volatility Expansion | VolExpansion | Expansion de volatilite, ATR courant > mult x ATR moyen long terme. |
| Volatility Contraction | VolContraction | Contraction de volatilite, ATR courant < mult x ATR moyen long terme. |
| Opening Range High | OpeningRangeHigh | Plus haut des N premieres barres de session (Crabel 1990). |
| Opening Range Low | OpeningRangeLow | Plus bas des N premieres barres de session. |
| Opening Range Breakout Up | OpeningRangeBreakUp | Cassure haussiere de l'opening range, close > OR high apres la fenetre. |
| Opening Range Breakout Down | OpeningRangeBreakDown | Cassure baissiere de l'opening range, close < OR low apres la fenetre. |
| Session London | SessionLondon | Masque de la session de Londres (07:00-16:00 UTC). |
| Session New York | SessionNY | Masque de la session de New York (13:00-22:00 UTC). |
| Session Asia | SessionAsia | Masque de la session asiatique (00:00-09:00 UTC). |
| Session Overlap | SessionOverlap | Masque du recouvrement Londres-NY (13:00-16:00 UTC). |
| Day of Week | DayOfWeek | Jour de la semaine, 0=lundi .. 6=dimanche. |
| Hour of Day | HourOfDay | Heure de la journee, 0..23 UTC. |
Statistique
| Indicateur | Alias | Description |
|---|---|---|
| Returns | Return | Rendements simples en % (pct_change). |
| Log Returns | LogReturn | Rendements logarithmiques. |
| Z-Score | ZScore | Z-score glissant, (x - moyenne) / ecart-type. |
| Distance to SMA % | DistSMAPct | Distance du prix a sa SMA en %. |
| Volume Ratio | VolRatio | Volume / SMA(volume, N), detection de pics de volume. |
| Range % | RangePct | Amplitude de la barre / close, taille relative de la barre. |
| Gap % | GapPct | Gap entre l'ouverture et la cloture precedente en %. |
| Drawdown | Drawdown | Drawdown glissant, courant vs plus haut sur N barres. |
| Skewness | Skewness | Asymetrie glissante de la distribution des prix. |
| Kurtosis | Kurtosis | Aplatissement (kurtosis) glissant de la distribution des prix. |
Order Flow
| Indicateur | Alias | Description |
|---|---|---|
| Delta | OF_Delta | Delta de volume signe par barre ou somme glissante. Tick exact si dispo, sinon Lee-Ready. |
| CVD | OF_CVD | Cumulative Volume Delta, pression directionnelle nette cumulee. |
| CVD Slope | OF_CVDSlope | Pente du CVD sur N barres, vitesse d'accumulation/distribution. |
| CVD Divergence Bull | OF_CVDDivBull | Divergence CVD haussiere, prix baisse mais CVD monte (absorption acheteuse). |
| CVD Divergence Bear | OF_CVDDivBear | Divergence CVD baissiere, prix monte mais CVD baisse (distribution). |
| Imbalance Ratio | OF_ImbalanceRatio | Ratio buy_vol / total_vol [0,1], >0.5 dominance acheteuse. |
| Imbalance Long | OF_ImbalanceLong | Imbalance acheteur, ratio >= seuil (defaut 65%). |
| Imbalance Short | OF_ImbalanceShort | Imbalance vendeur, (1-ratio) >= seuil. |
| Stacked Imbalance Long | OF_StackedImbLong | N barres consecutives d'imbalance acheteur (pattern footprint Bookmap). |
| Stacked Imbalance Short | OF_StackedImbShort | N barres consecutives d'imbalance vendeur. |
| Absorption | OF_Absorption | Barre d'absorption, gros volume + petit range (offre absorbee). |
| Absorption Flip Long | OF_AbsorptionFlipLong | Absorption sur barre baissiere puis reversal haussier, setup long. |
| Absorption Flip Short | OF_AbsorptionFlipShort | Absorption sur barre haussiere puis reversal baissier, setup short. |
| Delta Exhaustion Long | OF_DeltaExhLong | Delta vendeur extreme + reversal haussier, capitulation vendeuse. |
| Delta Exhaustion Short | OF_DeltaExhShort | Delta acheteur extreme + reversal baissier, euphorie acheteuse. |
| VPOC | OF_VPOC | Volume Point Of Control glissant, niveau de prix le plus echange (magnetisme). |
| VAH | OF_VAH | Value Area High, borne haute du value area (defaut 70% du volume). |
| VAL | OF_VAL | Value Area Low, borne basse du value area. |
| Value Area | OF_ValueArea (.vpoc / .vah / .val) | Sortie triple VPOC+VAH+VAL en un passage (Market Profile, Steidlmayer). |
| VPOC Distance | OF_VPOCDistance | Distance signee close-VPOC en multiples d'ATR(14). |
| POC Rejection Long | OF_POCRejectLong | Prix touche le VPOC par le bas et rebondit, setup long sur POC. |
| POC Rejection Short | OF_POCRejectShort | Prix touche le VPOC par le haut et rejette, setup short sur POC. |
| Above Value Area | OF_AboveVA | close > VAH, prix au-dessus du value area (surcote). |
| Below Value Area | OF_BelowVA | close < VAL, prix sous le value area (sous-cote). |
| Footprint Cluster | OF_FootprintCluster | Cluster de footprint, N visites a fort volume au meme bin de prix (HVN). |
| Iceberg | OF_Iceberg | Signature iceberg, gros volume mais agression directionnelle faible. |
| VPIN | OF_VPIN | VPIN simplifie (Easley/LdP 2012), toxicite de flux 0..1. |
| Liquidity Sweep High | OF_SweepHigh | Sweep haut, meche perce le plus haut N barres puis close revient sous (chasse de stops longs). |
| Liquidity Sweep Low | OF_SweepLow | Sweep bas, meche perce le plus bas N barres puis close revient au-dessus (chasse de stops shorts). |
Sources de données
La qualité des données conditionne tout le reste. La source se choisit dans le champ Data Source du Backtest.
| Source | Pour qui / quand | Requiert / notes |
|---|---|---|
| LSE (London Strategic Edge) | Source par défaut, gratuite et recommandée pour tous les débutants. Sert les données historiques OHLCV (forex, indices, métaux, énergie, crypto, actions) pour le Backtest, le FAO et THANOS. Dans le menu Source de données elle correspond aux options auto (LSE + cache automatique) et lse (téléchargement direct). C'est ce qui tourne quand on ne configure rien. | L'API LSE est asynchrone (système de jobs) et ne renvoie QUE du M1 : PROTOS télécharge le M1 puis le resample localement vers le timeframe voulu (M5, M15, H1, H4, D1…). Historique disponible depuis 2010 (LSE_MIN_YEAR). Cache local dans le dossier data_cache/ : fichiers M1 par année + un cache par timeframe. Les années passées sont gardées 365 jours (immuables), l'année en cours rafraîchie chaque jour. Limite connue : LSE ne sert l'historique qu'année par année (au-delà → erreur), donc PROTOS boucle année par année ; le téléchargement initial sur 5-10 ans peut être lent, mais une fois en cache c'est instantané. Pas de bascule MT5 silencieuse : si LSE échoue, PROTOS garde le cache existant ou passe en données démo synthétiques (signalées clairement comme NON exploitables). |
| Databento (futures CME) | Pour les utilisateurs avancés qui veulent les vrais contrats futures CME (et non des prix CFD habillés) : indices (ES, NQ, YM, RTY + micros), métaux (GC, SI), énergie (CL, NG), taux (ZN, ZB), FX futures (6E, 6J, 6B) et crypto CME (BTC, ETH). Modèle « apporte ta clé » dans la version distribuée. Quand Databento est choisi, le backtest passe automatiquement en mode futures (P&L en dollars par contrat). | Récupère les contrats continus front-month back-adjusted (ex : NQ → NQ.v.0). Seuls les tickers câblés dans le loader sont supportés (voir mapping). Cache local dans .databento_cache/ au format .parquet, un fichier par symbole/schéma/année : années passées immuables, année en cours rafraîchie chaque jour. Téléchargement par tranches de 90 jours (au-delà Databento timeout), avec retry sur erreurs 502/504. Historique plafonné à 10 ans (Databento accessible depuis ~2010). Si la clé est absente ou l'abonnement impayé, PROTOS bascule en repli LSE automatique (jamais MT5). |
| MT5 (MetaTrader 5) | Option avancée pour récupérer les données directement depuis ton propre terminal MetaTrader 5 (forex / CFD de ton broker local). À choisir explicitement (option mt5 du menu Source de données). Jamais utilisé en repli automatique : il faut le sélectionner soi-même. | Charge via l'API MT5 (copy_rates_from_pos ou copy_rates_range pour une plage de dates). Limite dure de 1 000 000 barres (MAX_BARS) pour éviter de saturer la RAM. Pièges fréquents : MT5 ne renvoie que l'historique déjà téléchargé localement — si le graphique n'a pas été scrollé en arrière, on obtient un historique partiel (PROTOS prévient si < 70 % des barres demandées). Minimums absolus par timeframe (ex : 1 500 barres en H1, 200 en D1) en dessous desquels l'analyse est annulée. Attention : l'option MT5 qui apparaît ailleurs dans l'UI (ajout de bot) est un backend d'exécution live, pas une source de données. |
| Import CSV (mes propres données) | Pour apporter tes propres données (OHLCV, ticks, trades, quotes) quand un actif n'est pas couvert par LSE/Databento, ou pour utiliser un export de ton broker. Bouton Importer mes données (CSV / tick) sous le menu Source de données. Pensé pour la version distribuée client. | Le CSV importé est normalisé au format PROTOS (DatetimeIndex + open/high/low/close/tick_volume ; si pas de volume, mis à 1) puis écrit dans le cache LSE sous le nom de symbole choisi. Du coup il est ensuite utilisé automatiquement par la source auto (le cache local est prioritaire sur le téléchargement). On peut aussi pointer un fichier directement via cfg.csv_path (chargé tel quel, prioritaire sur toute autre source). Les timestamps en double sont dédupliqués (dernière occurrence gardée). |
| Données démo (synthétiques) | Dernier recours automatique : si AUCUNE source réelle ne renvoie de données (mauvais symbole, pas de réseau, pas de clé…), PROTOS génère des bougies aléatoires pour que l'app ne plante pas. Ce n'est PAS une vraie source à choisir. | PROTOS affiche un avertissement très visible indiquant que les résultats sont NON exploitables. À ne jamais confondre avec un vrai backtest : si tu vois ce message, c'est qu'il faut corriger le nom du symbole, la connexion ou la source de données. |
Mapping automatique des futures
| Symbole saisi | Relié à |
|---|---|
| NQ | E-mini Nasdaq 100 (futures CME ; alias CFD : NAS100, US100). Cote Databento : NQ.v.0. Proxy LSE/CFD : USTEC |
| MNQ | Micro E-mini Nasdaq 100 (micro futures). Cote Databento : MNQ.v.0. Proxy CFD : USTEC |
| ES | E-mini S&P 500 (futures CME ; alias CFD : SP500, US500, SPX500). Cote Databento : ES.v.0. Proxy CFD : US500 |
| MES | Micro E-mini S&P 500 (micro futures). Cote Databento : MES.v.0. Proxy CFD : US500 |
| YM | E-mini Dow Jones (futures CME ; alias CFD : DJ30, US30). Cote Databento : YM.v.0. Proxy CFD : US30 |
| MYM | Micro E-mini Dow (micro futures). Cote Databento : MYM.v.0. Proxy CFD : US30 |
| RTY | E-mini Russell 2000 (futures CME ; alias CFD : RUS2000, US2000). Cote Databento : RTY.v.0. Proxy CFD : US2000 |
| M2K | Micro E-mini Russell 2000 (micro futures). Cote Databento : M2K.v.0. Proxy CFD : US2000 |
| GC | Gold Futures (Or) (futures CME ; alias CFD : XAUUSD). Cote Databento : GC.v.0. Proxy CFD : XAUUSD |
| MGC | Micro Gold (Micro Or) (micro futures). Cote Databento : MGC.v.0. Proxy CFD : XAUUSD |
| SI | Silver Futures (Argent) (futures CME ; alias CFD : XAGUSD). Cote Databento : SI.v.0. Proxy CFD : XAGUSD |
| MSI | Micro Silver (Micro Argent) (micro futures). Cote Databento : MSI.v.0. Proxy CFD : XAGUSD |
| CL | Crude Oil WTI (Pétrole) (futures CME ; alias CFD : USOIL, WTI, OILUSD). Cote Databento : CL.v.0. Proxy CFD : WTIUSD |
| MCL | Micro Crude Oil (Micro Pétrole) (micro futures). Cote Databento : MCL.v.0. Proxy CFD : WTIUSD |
| NG | Natural Gas (Gaz naturel) (futures CME, Databento uniquement). Cote Databento : NG.v.0 |
| ZN | 10-Year T-Note (futures de taux 10 ans ; alias CFD : US10Y). Cote Databento : ZN.v.0 |
| ZB | 30-Year T-Bond (futures de taux 30 ans ; alias CFD : US30Y). Cote Databento : ZB.v.0 |
| 6E | Euro FX futures (futures CME, Databento uniquement). Cote Databento : 6E.v.0 |
| 6J | Japanese Yen futures (futures CME, Databento uniquement). Cote Databento : 6J.v.0 |
| 6B | British Pound futures (futures CME, Databento uniquement). Cote Databento : 6B.v.0 |
| BTC | Bitcoin futures (CME) (Databento uniquement). Cote Databento : BTC.v.0 |
| ETH | Ether futures (CME) (Databento uniquement). Cote Databento : ETH.v.0 |
Référence API (routes)
PROTOS expose son moteur via une API HTTP locale (~389 routes). Cette référence regroupe les routes par domaine — utile pour l'export, l'automatisation ou le dépannage avancé. Vous n'avez pas besoin de l'API pour utiliser l'app : tout passe par l'interface.
Backtest
Lancement, suivi et resultats des backtests (mono/multi-modes, replay, montecarlo, stress).
/api/backtest /api/backtest/result /api/backtest/stop /api/backtest/multi_modes /api/backtest/replay_data /api/montecarlo /api/stress /api/stress/result /api/equity_fit /api/rolling /api/multitf /api/multitf/result /api/benchmark /api/is_oos /api/cpcv/run /api/cpcv/last /api/wfa /api/wfa/result
Optimisation/FAO
Optimiseurs de parametres et Full-Auto-Optimizer (FAO) : start/status/result, streaming, robustesse, walk-forward, sensibilite, post-FAO, surfaces et fronts de Pareto.
/api/optimizer/a /api/optimizer/b /api/optimizer/result /api/optimizer/apply /api/quick_optimize /api/quick_optimize/result /api/quick_optimize/stop /api/full_auto_optimizer/start /api/full_auto_optimizer/status /api/full_auto_optimizer/result /api/full_auto_optimizer/stop /api/full_auto_optimizer/param_catalog /api/full_auto_optimizer/periods /api/full_auto_optimizer/apply_config/<int:rank> /api/full_auto_optimizer/download_config/<int:rank> /api/full_auto_optimizer/download_report /api/full_auto_optimizer/load_report /api/fao/stream /api/fao/stream/health /api/post_fao/scan /api/post_fao/analyze /api/post_fao/apply/<int:composite_rank> /api/post_fao/auto_optimize/start /api/post_fao/auto_optimize/status /api/post_fao/result /api/post_fao/top /api/robustness/pareto /api/robustness/sensitivity /api/robustness/walk_forward_opt /api/sensitivity/2d_sweep /api/sensitivity/result /api/sensitivity/status /api/pareto/front /api/pareto/candidates /api/surface /api/surface/result /api/auto_reoptim/start /api/auto_reoptim/status /api/auto_reoptim/result /api/core_mode_optimizer /api/signal_optimizer
THANOS
Moteur THANOS : lancement de runs, certificats, librairie de profils, presets propfirm, import/export de runs.
/api/thanos/start /api/thanos/status /api/thanos/stop /api/thanos/result /api/thanos/library /api/thanos/profiles /api/thanos/propfirm_presets /api/thanos/certificate /api/thanos/certificate/<int:rank> /api/thanos/run/<run_id> /api/thanos/run/<run_id>/export /api/thanos/run/import
Quant
Boite a outils quant : analyse, execution d'outils, gestion de patches, tracker de propositions, scanner de volatilite, optimiseur quant, feature mining et recherche symbolique.
/api/quant/analyse /api/quant/run_tool /api/quant/status /api/quant/result /api/quant/patches /api/quant/apply_patches /api/quant/rollback_patches /api/quant/deps /api/quant/import_json /api/quant/load_state_trades /api/quant/tracker/start /api/quant/tracker/status /api/quant/tracker/unseen /api/quant/tracker/validate /api/quant/tracker/backtest_proposal /api/quant/vol_scanner /api/quant/vol_scanner/alerts /api/quant/vol_scanner/strikes /api/quant/vol_scanner/macro /api/quant_optimizer/start /api/quant_optimizer/status /api/quant_optimizer/result /api/quant_toolbox/status /api/feature_mining/run /api/feature_mining/result /api/feature_mining/status /api/symbolic/run /api/symbolic/result /api/symbolic/status /api/kelly
Reco
Recommandation finale et orchestration : calcul/deploiement de la reco finale, orchestrateur multi-strategies, optimisation cross-symbol/cross-TF, pairs trading, validator, A/B shadow.
/api/final_reco/compute /api/final_reco/deploy /api/final_reco/last /api/final_reco/clear /api/orchestrator/deploy /api/orchestrator/undeploy /api/orchestrator/status /api/orchestrator/enable /api/orchestrator/exec_mode /api/orchestrator/exposure_cap /api/orchestrator/close_all /api/cross_symbol/run /api/cross_symbol/status /api/cross_symbol/result /api/cross_symbol/presets /api/cross_tf/run /api/cross_tf/status /api/cross_tf/result /api/pairs/discover /api/pairs/analyze /api/pairs/backtest /api/validator/start /api/validator/status /api/validator/result /api/shadow_ab/records /api/shadow_ab/stats /api/watchlist /api/watchlist/result
Propfirm
Simulation et comparaison de regles prop-firm : simulate, optimal, comparaison, sensibilite et presets.
/api/propfirm/simulate /api/propfirm/optimal /api/propfirm/compare /api/propfirm/sensitivity /api/propfirm/presets
Macro
Donnees et regimes macro : COT, inflation, liquidite, courbe des taux, risk-sentiment, saisonnalite, correlations, evenements economiques et carte macro (cables/navires/meteo/news).
/api/macro/cot/series /api/macro/cot/all /api/macro/cot/extremes /api/macro/cot/markets /api/macro/inflation/data /api/macro/liquidity/data /api/macro/yield_curve/data /api/macro/regime/data /api/macro/risk_sentiment/data /api/macro/seasonal/data /api/macro/surprise/data /api/macro/correlations/matrix /api/macro/correlations/rolling /api/macro/events /api/macro/toggle_filter /api/macro_map/layers /api/macro_map/cables /api/macro_map/ships /api/macro_map/news /api/macro_map/weather_alerts /api/macro_map/internet_outages /api/events/dashboard /api/events/economic /api/events/earnings/<date_iso> /api/events/implied_move/<symbol>
Microstructure/Databento
Microstructure de marche et flux Databento : snapshots, signaux, Kyle/PnL, SL/TP, VPIN, GEX/options, crypto on-chain, news-react et ship/macro trackers temps reel.
/api/microstructure/snapshot /api/microstructure/signal /api/microstructure/signals_log /api/microstructure/sltp /api/microstructure/pnl_live /api/microstructure/pnl_register /api/microstructure/reset_kyle /api/databento/signals /api/data/databento_status /api/data/databento_key /api/vpin /api/vpin/config /api/vpin/subscribe /api/vpin/unsubscribe /api/vpin/symbols /api/options/gex /api/options/symbols /api/options_lab/run /api/options_lab/optimize /api/gex_horizon /api/crypto/dashboard /api/crypto/funding /api/crypto/onchain /api/crypto/open_interest /api/crypto/stablecoins /api/news_react/predict /api/news_react/event_types /api/tail_risk/dashboard /api/tail_risk/timeseries/<indicator_id> /api/ship_tracker/snapshot /api/ship_tracker/regions /api/ship_tracker/region/<region_id> /api/ship_tracker/track/<int:mmsi>
HMM
Moteur de regimes par chaines de Markov cachees : configuration, ingestion/seed de barres, refit, etats, transitions et statistiques multi-TF.
/api/hmm/configure /api/hmm/ingest_bars /api/hmm/refit /api/hmm/state /api/hmm/multi_state /api/hmm/series /api/hmm/statistics /api/hmm/transitions /api/hmm/transition_log /api/hmm/reset_engine /api/hmm/reset_transitions /api/hmm/seed_databento /api/hmm/seed_multi_tf
Signaux/Live
Trading live et signaux : bots, dashboard, drift detection, auto-reoptim live, signaux en attente/execution, trading manuel, MT5/Tradovate, scanners et news-watch.
/api/live/start /api/live/stop /api/live/status /api/live/dashboard /api/live/bots /api/live/bot/add /api/live/bot/stop/<bot_id> /api/live/drift/all /api/live/drift/<bot_id> /api/live/drift/<bot_id>/auto_reoptim /api/live/drift/strat/<strat_id> /api/live/pending_signals /api/live/signal_execute /api/live/signal_dismiss /api/live/signal_test /api/live/execution_quality /api/live/history /api/live/mt5_check /api/live/tradovate_check /api/cockpit/signals /api/manual/order /api/manual/close /api/manual/compute_sltp /api/sltp/config /api/scanner/add /api/scanner/list /api/scanner/history /api/scanner/stop/<sc_id> /api/news_watch/start /api/news_watch/status /api/news_watch/latest /api/news_watch/check_now /api/confluence_checker /mt5/order /mt5/close /mt5/close_all /mt5/positions /mt5/modify_sltp /mt5/status /mt5/subscribe /mt5/symbols /scan/start /scan/status /scan/stop
Donnees
Gestion des donnees de marche : download, import/detection CSV, cache, mapping symboles, catalogue, cles LSE/Databento, tickers et quotes.
/api/data/download /api/data/info /api/data/import_csv /api/data/detect_csv /api/data/csv_template /api/data/mapping /api/data/cache /api/data/cache/clear /api/data/lse_key /api/data/lse_status /api/data_catalog /api/ticker/quotes /api/ticker/defaults /api/tradovate/symbol_map /symbols /prices /history /history/gap /restart-feed
Export
Export des resultats et strategies : build de ZIP, dernier run, parsing/import de strategies et payloads live.
/api/export /api/export/build_zip /api/export/last_run /api/import /api/strategies /api/strategies/<strat_id> /api/strategies/<strat_id>/export /api/strategies/<strat_id>/live_payload /api/strategies/import /api/strategies/parse_and_import /api/strategies/parse_and_import/aliases /api/strategies/parse_and_import/explain
Config
Configuration systeme et utilisateur : config app, reset, profils de couts, enums, modes utilisateur (advisor/chat/patterns), preferences nav, edition systeme.
/api/config /api/config/reset /api/cost_profiles /api/cost_profiles/resolve /api/pnl_mode/resolve /api/enums /api/nav_prefs /api/system/edition /api/user_modes/list /api/user_modes/<slug> /api/user_modes/advisor /api/user_modes/chat /api/user_modes/chat/status /api/user_modes/recommend /api/user_modes/preview /api/user_modes/validate /api/user_modes/patterns /api/user_modes/patterns/<pattern_id> /api/user_modes/indicator_catalog
Divers
Pages UI, sante/statut, performance/PnL tracking, analytics, audit, logs, portfolio, competition et synthetique.
/ /health /book /cinema /layer3 /performance.html /api/status /api/health /api/logs /api/audit /api/analyse /api/analytics/bundle /api/correlate /api/pipeline/context /api/perf/metrics /api/perf/equity_curve /api/perf/series /api/perf/trades /api/perf/signals /api/perf/summary /api/perf/snapshot /api/perf/ingest /api/perf/state /api/portfolio/accounts /api/competition /api/synthetic/run /api/synthetic/status /api/ml/status /api/ml/overlay/status /api/ml/overlay/refit
Bonnes pratiques & pièges à éviter
À faire
- Valider avant d'optimiser, et arbitrer (Reco Finale) avant de déployer.
- Coûts réalistes (spread, commissions, slippage) dès le backtest — voir Coûts broker et Confluence Checker.
- Assez de trades (MinTRL passe) avant de croire à un Sharpe élevé.
- Paper trading avant le capital réel.
- Surveiller la dérive en live et réduire à la moindre alerte sérieuse.
- Sauvegarder vos configs (Export JSON / bibliothèque) régulièrement.
À éviter
- Déployer sur un seul beau backtest.
- Optimiser jusqu'aux chiffres parfaits : c'est du surapprentissage (regardez PBO et DSR).
- Se fier au seul Win Rate : croisez avec Profit Factor et Expectancy.
- Ignorer le drawdown : un gros rendement avec un drawdown ingérable n'est pas tradable.
- Intégrer une découverte (Feature Mining / Symbolic GP) sans revalidation hors échantillon.
Glossaire
| Terme | Définition |
|---|---|
| Absorption | Signal d'order flow où un gros volume est exécuté sans faire bouger le prix : un acteur "absorbe" les ordres en face. Souvent signe d'un retournement proche, car un gros vendeur (ou acheteur) bloque le mouvement. |
| Backtest | Test d'une stratégie sur des données de marché passées pour estimer ses performances avant de risquer de l'argent réel. Attention : de bons résultats en backtest ne garantissent pas le futur (voir Overfitting). |
| Beta (Bêta) | Sensibilité de la stratégie aux mouvements du marché de référence. Un bêta proche de 0 signifie que la performance est indépendante du marché (recherché), un bêta élevé qu'elle suit le marché. |
| Calmar | Ratio rendement annualisé / Max Drawdown. Mesure le gain obtenu par unité de pire perte subie. Repère : plus c'est haut, mieux c'est ; au-dessus de 3 est très bon. |
| Carry | Gain ou coût lié au simple fait de garder une position ouverte dans le temps (intérêts, frais de financement, roulement). PROTOS l'inclut dans certains ajustements de coûts pour ne pas surestimer la performance. |
| Cointégration | Relation statistique entre deux actifs dont l'écart de prix (spread) revient toujours vers une moyenne. Base du pair trading : on parie sur le retour à la normale du spread. PROTOS la teste avant d'autoriser une stratégie de paire. |
| Commission | Frais fixes prélevés par le courtier à chaque trade (à l'ouverture et/ou à la clôture). PROTOS l'intègre au backtest pour donner une performance réaliste, frais déduits. |
| Convexité (Propfirm) | Capacité d'une stratégie à survivre à un challenge de prop firm tout en maximisant le gain espéré : peu de risque de toucher la perte maximale, mais gros potentiel à la hausse. Note informative dans PROTOS, sans poids sur le score final. |
| Core Mode | Type de moteur de signal utilisé par une stratégie PROTOS. Exemples : 1 HFT, 2 STRUCTURE, 3 SWING, 4 ABSORPTION, 6 VPIN, 10 DOM_MICRO, 99 EXT_STRATEGY (stratégie importée). Chaque mode a sa logique d'entrée propre. |
| CPCV | Combinatorial Purged Cross-Validation — validation croisée qui teste la stratégie sur de multiples découpages "purgés" des données pour vérifier sa robustesse. Une faible dispersion des résultats entre les découpages est un bon signe. |
| CVaR | Conditional Value at Risk (ou Expected Shortfall). Perte moyenne dans les pires scénarios au-delà du seuil VaR. Répond à : "si ça tourne vraiment mal, je perds combien en moyenne ?". Plus parlant que la VaR seule. |
| CVD / Delta | Le Delta est la différence entre volume acheteur et vendeur sur une barre. Le CVD (Cumulative Volume Delta) en est la somme cumulée : il montre la pression directionnelle nette. Une divergence CVD/prix peut annoncer un retournement. |
| Drawdown / Max DD | Le Drawdown est la baisse depuis un sommet de capital. Le Max DD (Drawdown Maximum) est la pire chute subie sur toute la période. Repère : un Max DD de 20% signifie qu'à un moment le compte a perdu 20% de son plus haut. |
| DSR (Deflated Sharpe) | Deflated Sharpe Ratio de Bailey & López de Prado. Corrige le Sharpe en tenant compte du grand nombre de stratégies testées pour le trouver. Un DSR élevé (proche de 1) indique que la performance n'est probablement pas due au hasard. |
| Edge (Avantage) | L'avantage statistique réel d'une stratégie : ce qui fait qu'elle gagne en moyenne sur le long terme, au-delà de la chance. Sans edge, les frais finissent par tout manger. |
| Embargo | Période de données mise "en quarantaine" autour des découpages de test pour éviter qu'une info du passé immédiat ne fuite vers le test. Évite de tricher sans le vouloir lors de la validation (voir CPCV). |
| Equity curve | Courbe de l'évolution du capital au fil des trades. Une bonne courbe monte régulièrement avec peu de creux ; en dents de scie ou en escalier brutal, elle révèle de l'instabilité. |
| Expectancy R | Gain moyen attendu par trade exprimé en multiples de risque R (1R = le risque initial). Une expectancy de 0,3R signifie qu'en moyenne chaque trade rapporte 0,3 fois le montant risqué. Doit rester positive après frais. |
| GARCH | Modèle statistique qui détecte le régime de volatilité du marché (LOW / MEDIUM / HIGH / EXTREME). PROTOS utilise un GARCH(1,1) pour adapter les positions : on serre le risque quand la volatilité explose. |
| HMM | Hidden Markov Model — modèle qui classe le marché en états cachés, ici TRENDING / RANGING / CHOPPY (tendance / range / haché). Permet d'activer la bonne logique selon le contexte de marché détecté. |
| Iceberg | Gros ordre découpé en petites tranches visibles pour cacher sa taille réelle (comme un iceberg). Détecter un iceberg révèle la présence d'un acteur important et de niveaux de prix défendus. |
| In-sample / Out-of-sample | L'In-sample (IS) est la période sur laquelle on optimise la stratégie ; l'Out-of-sample (OOS) est une période jamais vue servant à vérifier qu'elle tient encore. Une grosse chute IS→OOS trahit du surapprentissage. |
| Kelly / Kelly demi | Le critère de Kelly calcule la taille de position qui maximise la croissance du capital à long terme. Le Kelly demi (half-Kelly) en prend la moitié : on sacrifie un peu de croissance pour bien moins de volatilité. Le plein Kelly est jugé trop risqué. |
| Kyle lambda | Mesure de l'impact prix : de combien le prix bouge pour un volume donné (Kyle's λ). Un lambda élevé = marché peu liquide et sensible ; PROTOS s'en sert pour filtrer le régime de microstructure et placer des stops adaptés. |
| Lot / Contrat | Unité de taille d'une position. Un lot standard sur le Forex vaut 100 000 unités de devise ; un contrat (futures) représente une quantité fixe de l'actif. C'est le levier de réglage de l'exposition au risque. |
| MAE / MFE | Pendant un trade, le MAE (Maximum Adverse Excursion) est la pire perte latente atteinte, et le MFE (Maximum Favorable Excursion) le meilleur gain latent. Comparer les deux aide à mieux placer stops et objectifs. |
| MinTRL | Minimum Track Record Length (Bailey & López de Prado) : nombre minimal de trades nécessaires pour que le Sharpe observé soit statistiquement crédible. Si le nombre de trades est inférieur au MinTRL, les résultats sont jugés non significatifs. |
| Monte Carlo | Simulation qui rejoue des milliers de scénarios aléatoires (en mélangeant ou en perturbant les trades) pour estimer la plage de résultats possibles. Montre à quoi ressemble le pire cas, pas seulement le scénario moyen. |
| OBI (Order Book Imbalance) | Déséquilibre du carnet d'ordres : compare le volume d'achat et de vente en attente. Un OBI fortement positif signale une pression acheteuse. PROTOS suit son EMA et détecte les "flips" (retournements) pour sortir vite. |
| Order Flow | Analyse du flux d'ordres réel (achats vs ventes au marché, carnet d'ordres) plutôt que des seules bougies de prix. Famille d'indicateurs PROTOS : delta, CVD, absorption, VPOC, VPIN, iceberg, sweeps. |
| OU half-life | Demi-vie d'un processus d'Ornstein-Uhlenbeck : temps moyen que met un spread à revenir à mi-chemin de sa moyenne. Utilisée en cointégration pour savoir si un retour à la moyenne est assez rapide pour être tradable. |
| Overfitting (Surapprentissage) | Quand une stratégie est tellement "collée" aux données passées qu'elle a appris le bruit au lieu d'un vrai edge. Elle brille en backtest puis échoue en réel. Tout l'arsenal PROTOS (DSR, PBO, CPCV, OOS) sert à le débusquer. |
| Pareto | Front de Pareto : ensemble des meilleurs compromis entre objectifs contradictoires (ex. plus de rendement vs moins de drawdown). Aucune solution du front n'est strictement meilleure qu'une autre sur tous les critères. |
| PBO | Probability of Backtest Overfitting — probabilité que la stratégie choisie soit en réalité issue du hasard et déçoive hors échantillon. Repère : plus bas = mieux ; un PBO élevé est un drapeau rouge de surapprentissage. |
| Profit Factor | Total des gains divisé par total des pertes. Repère : 1,0 = à l'équilibre, au-dessus de 1,5 est solide, au-dessus de 2,0 excellent. En dessous de 1, la stratégie perd de l'argent. |
| Prop firm | Société qui finance des traders : on passe un challenge (atteindre un objectif de gain sans dépasser une perte maximale) pour piloter son capital et partager les profits. PROTOS évalue la convexité d'une stratégie face à ces règles. |
| PROTOS Trading Live | Mode d'exploitation en temps réel : PROTOS génère les signaux sur données live (chart live / microstructure) et les transmet au courtier pour exécution réelle, par opposition au backtest sur historique. |
| ROC | Rate of Change — indicateur de momentum mesurant la variation de prix en pourcentage sur N barres. Sert souvent de proxy de rendement dans les stratégies importées de PROTOS. |
| Régime | État actuel du marché (tendance, range, haché, volatilité basse/haute…) détecté par les modèles (HMM, GARCH). Adapter la stratégie au régime évite d'appliquer une logique de tendance dans un marché sans direction. |
| Sensitivity (Sensibilité) | Analyse de robustesse : on fait légèrement varier les réglages (paramètres) pour voir si la performance reste stable. Une stratégie très sensible (qui s'effondre au moindre changement) est probablement surapprise. |
| Sharpe | Rendement excédentaire rapporté à la volatilité totale : combien on gagne par unité de risque pris. Repère : au-dessus de 1 correct, 2 très bon, 3 excellent. Mesure de référence du couple rendement/risque. |
| Slippage | Écart entre le prix attendu et le prix réellement obtenu à l'exécution (à cause de la vitesse du marché). PROTOS le simule pour ne pas surestimer la performance d'un backtest. |
| Sortino | Variante du Sharpe qui ne pénalise que la volatilité baissière (les pertes), pas les gains. Plus juste pour évaluer le risque réellement subi. Repère : plus haut = mieux, typiquement supérieur au Sharpe. |
| Spread | Écart entre le prix d'achat (ask) et de vente (bid) d'un actif : un coût payé à chaque entrée/sortie. Un spread large grignote la performance, surtout en trading rapide (HFT). |
| Sweep | Balayage agressif de plusieurs niveaux du carnet d'ordres en une fois (gros ordre marché). Signe d'urgence d'un acteur : peut marquer un début de mouvement fort ou un piège à liquidité. |
| VaR | Value at Risk — perte maximale attendue sur un horizon donné, à un niveau de confiance choisi (ex. 95%). Une VaR 95% de 1000€ veut dire : 95% du temps on ne perd pas plus de 1000€ sur la période (voir aussi CVaR). |
| VPIN | Volume-synchronized Probability of Informed Trading (Easley/López de Prado). Mesure la toxicité du flux de 0 à 1 : une VPIN élevée signale la présence de traders informés et un risque accru de mouvement brutal. |
| VPOC / VAH / VAL | Niveaux du profil de volume. Le VPOC (Volume Point of Control) est le prix où le plus de volume s'est échangé. VAH / VAL sont les bornes haute/basse de la value area (souvent 70% du volume). Ce sont des zones de support/résistance majeures. |
| Walk-Forward | Validation où l'on optimise sur une fenêtre, on teste sur la suivante (jamais vue), puis on décale la fenêtre et on recommence. Imite le ré-entraînement périodique d'une stratégie en conditions réelles. |
| Win Rate | Pourcentage de trades gagnants. Attention : un Win Rate élevé n'est pas suffisant seul — quelques grosses pertes peuvent effacer beaucoup de petits gains. À lire avec l'Expectancy R et le Profit Factor. |
Dépannage rapide
| Symptôme | Solution |
|---|---|
| « Connexion refusée » | Le serveur n'a pas fini de démarrer : attendez « Serveur actif » puis actualisez. |
| Interface / réglages vides | Attendez le chargement complet ; vérifiez que le serveur est actif. |
| « Licence invalide » | L'empreinte a changé (nouveau matériel/OS) : demandez une nouvelle licence. |
| Section Trading grisée | Ces fonctions nécessitent la licence PROTOS Trading Live. |
| Module avancé indisponible | Certaines fonctions (microstructure) nécessitent une source adaptée (Databento). |
| Backtest avec trop peu de trades | Augmentez N Bars, élargissez la période, assouplissez les filtres. |
| Export refusé pour une stratégie | Elle utilise un mode interne : reconstruisez-la en mode utilisateur. |
La section Logs est la première source de diagnostic en cas de comportement inattendu.