Statut

Chargement...

Actions rapides

Nouvelle stratégie

Chargement...

Éditer la stratégie

Enregistrer cree une nouvelle version (les anciennes restent conservees).

Chargement...

Bibliothèque

Chargement...

Nouveau backtest

Si coché, le backtest tourne hors process API. Avec CLOUD_OPTIMIZATION_BACKEND=gcp il part sur Cloud Run Jobs (même infra que les optis). Sinon worker local isolé.
1er run pour mesurer T (percentile de durée en barres), puis 2e run : sortie forcée avant chaque trou > 2h, pas d'entrée sur les T barres précédentes.
Uniquement les bar sizes déjà téléchargés.
Dans la plage téléchargée du bar size.
% interpolé selon equity − risque ouvert (avant l'entrée).
Fixe = toujours le capital initial. Suivi = equity courante.
Pas de nouvelle entrée tant que le plafond est atteint.
Fenêtres glissantes avec capital remis à zéro.
Doit être ≤ période.
0 = désactivé. Sinon métriques hors top n% winners.
% max
Si le max DD dépasse la cible, relance 1× avec tailles ÷ (DD / cible).
0 = désactivé. Sinon refuse l'entrée si comm. / (stop+comm.) dépasse ce %.
Aucune = ignore le modele broker (test theorique).
Applique aux fills. Slippage = 25% du spread médian.
Cochez les filtres à combiner (ET). Les entrées ne passent que si tous les filtres actifs (tendance + temporels) sont vrais. Aucune case = pas de filtre.
Sessions et jours en heure Europe/Paris. Même logique ET que ci-dessus ; bloquent uniquement les nouvelles entrées (pas de fermeture forcée des positions).

Éditer backtest

Même backend que les optimisations (CLOUD_OPTIMIZATION_BACKEND).
Uniquement les bar sizes déjà téléchargés.
Dans la plage téléchargée du bar size.
% interpolé selon equity − risque ouvert (avant l'entrée).
0 = désactivé. Sinon métriques hors top n% winners.
% max
Cochez les filtres à combiner (ET). Les entrées ne passent que si tous les filtres actifs (tendance + temporels) sont vrais.
Sessions et jours en heure Europe/Paris. Bloquent uniquement les nouvelles entrées.
Chargement...
Chargement...

Ajouter une combinaison

Chargement...
Tant qu'il reste du 1h en file (pas encore lancé), on n'en prend que du 1h. Les jobs déjà en cours n'empêchent pas de remplir les slots libres avec 30 min, puis 15 min…

Nouvelle optimization

Si coché, chaque optimisation (marche × stratégie) est marquée cloud. Avec CLOUD_OPTIMIZATION_BACKEND=gcp elles partent sur Cloud Run Jobs (plafond reglable dans System). Sinon workers locaux isoles.
Mode local uniquement (désactivé si Calcul cloud). Une fois démarrée, l'opti évalue tous ses candidats d'affilée au lieu du round-robin equitable 1/N → 2/N entre optimisations.
Applique à chaque candidat (2 passes : mesure T puis run avec sorties avant trous > 2h).
Critère pour classer et, en recherche locale, recentrer autour du meilleur. Les objectifs « Stab. » exigent l'analyse de stabilité activée. TradeCV, PnL CV, Max/Moy. sous l'eau : plus bas = meilleur (note = −métrique).
% interpolé selon equity − risque ouvert (avant l'entrée).
Fixe = toujours le capital initial. Suivi = equity courante.
Pas de nouvelle entrée tant que le plafond est atteint.
Rejoue chaque candidat par fenêtres (plus long).
0 = désactivé. Applique à chaque candidat si > 0.
% max
Si le max DD dépasse la cible, relance 1× avec tailles ÷ (DD / cible).
0 = désactivé. Refuse l'entrée si comm. / (stop+comm.) > ce %.
Aucune = ignore le modele broker (test theorique).
Applique aux fills. Slippage = 25% du spread médian.
Coché : hors seuil, la note est atténuée par ((actuel - origine) / (seuil - origine))^force (produit des contraintes ET, max dans un groupe OU). Dans le seuil, rien ne change. L'origine (facteur 0) est du côté pire : ≥ / > en dessous du seuil (seuil - |seuil|), ≤ / < au-dessus (seuil + |seuil|). Elle se recalcule quand tu saisis la valeur ou la comparaison ; tu peux la modifier ensuite (ex. ×3). Force 1 = linéaire, 2 = carré (défaut), 3 = cube (défaut trades / trades/mois). Une note négative est empirée, jamais améliorée (y compris TradeCV, PnL CV, Max/Moy. sous l'eau, Min drawdown). Décoché : hors classement si une contrainte tombe. Chaque groupe OU exige au moins une règle vraie. Les groupes OU et les règles obligatoires (ET) se combinent entre eux par ET. Valeur 0 (avec ≥) = règle ignorée. La note atténuée sert au classement des candidats et à la recherche de filtres.
Appliques à tous les candidats. Combinaison ET avec les filtres temporels : chaque entrée doit satisfaire tous les filtres cochés.
Sessions et jours en heure Europe/Paris. Bloquent uniquement les nouvelles entrées (pas de fermeture forcée).
Les candidats sont classes sans recherche de filtres. La recherche n'est lancée qu'une fois, À la fin, sur le gagnant.

Balayage par axes

Chaque passe parcourt les paramètres cochés dans un ordre aléatoire. Flottants : paliers points entre −amplitude % et +amplitude %. Entiers : paliers autour de la base (20 → ±10), élargi si l'amplitude % est plus large, puis borné par min/max et aligné sur le palier (step) déclaré par la stratégie. Le pic retenu est celui du score de zone robuste (médiane − λ×MAD, fenêtre L), pas le max brut. La passe suivante reprend depuis ces valeurs, avec un nouvel ordre.

Flottants : points sur l'axe. Entiers : ±N/2 autour de la base
L voisins pour la médiane / MAD
score = médiane − λ × MAD (0 = médiane seule)
Passages complets (nouvel ordre à chaque passe)

Recherche locale

Timeframe et dates fixes par marche (liste ci-dessous). Le 1er essai utilise les valeurs de base ; ensuite chaque itération perturbe les paramètres cochés de ±% autour du N-ieme meilleur éligible (rang configurable, défaut 5) selon l'objectif choisi.

1 = meilleur, 2 = 2e meilleur…

Tirage aléatoire

Tire N combinaisons distinctes dans les plages cochées « Optimiser » (bornes et paliers de la stratégie). Les paramètres non cochés restent à la valeur fixe. Le coût est N backtests, pas le produit cartésien d'une grille.

Nombre de combinaisons à évaluer (défaut 50)

Stratégies à optimiser

Sélectionnez une stratégie pour afficher ses paramètres, ajustez-les, puis ajoutez-la à la liste - ou ajoutez toutes les stratégies d'un coup (paramètres par défaut selon Léger / Profond). Chaque combinaison marche × stratégie lance une optimisation séparée.

Léger (défaut) : seuils, stops, périodes d'identité (EMA, VWAP, BB). Les lookbacks type 14 restent au défaut. Profond : ajoute les axes secondaires (take-profit, période RSI, etc.). Tu peux encore cocher ou décocher à la main. Les stratégies déjà dans la liste ne changent pas.

Cochez « Optimiser » pour explorer une plage ou une liste (instruments, timeframes, paramètres) ; sinon la valeur fixe est utilisée.

Enregistré automatiquement. Après un lancement, le formulaire est restauré : vous pouvez vider ou changer les marches / la période, puis relancer.
ntfy · métrique = tri actuel
Filtres métriques

Masque les optimisations dont le meilleur résultat ne satisfait pas toutes les conditions (ET). Les jobs sans résultat sont masqués tant qu'un filtre est actif. Décochez Actif pour ignorer un filtre sans le supprimer (seuil conservé). Les métriques du groupe « Données non FTMO » portent sur les stats calendaires du backtest Dukascopy : sans rejeu terminé, le job est masqué.

Instruments Tous

Par défaut : tous. Decochez un instrument pour masquer ses optimisations. La liste propose tous les instruments des optimisations, en cours ou non. Quantites : nombre actuel, puis nombre restant après les filtres métriques.

Aucun instrument.

Exclusion manuelle stratégie × instrument × bar size (ignorée au lancement, sauf N % System).
Chargement...
Chargement...

Pont distant

Echange des snapshots avec l'autre Strategy Lab (URL configuree dans FTMO).

Reçoit ou envoie les snapshots marques (instrument, TF, params, filtres, T, stats). Réutilise le pont FTMO. Aucun run paper/live n'est démarre.

Cases pont :
Configurez le pont, puis chargez le catalogue distant.

Snapshots marques

Performances passees (atelier), validation (quantile choisi), puis moyenne pondérée (base du tri).
Passe (atelier) 50% / 50% Validation
Poids de la moyenne pondérée : à gauche = 100% passe, à droite = 100% validation (défaut 50/50). Les métriques cumulées (PnL, rendement, trades…) et annualisees sont ramenees / mois avant moyenne (passe ÷ durée atelier, validation ÷ durée fenêtre ; exposition / DD / win rate / RoMaD / Sharpe inchanges).
Chaque snapshot est rejoué sur tous les instruments FTMO favoris (étoile dans FTMO), sur sa période atelier. Capital, risque, commissions, spread et fermeture auto : formulaire de validation ci-dessous.
Cases pont :
Cochez les snapshots à envoyer via le pont (bouton Envoyer la sélection ci-dessus). Cocher la sélection finale ajoute les lignes dont l'interrupteur Sélection finale est actif.
Chargement...

Campagne de validation glissante (N-2)

Si coché et qu'un snapshot n'a pas de T : la campagne est bloquée.
Fenêtres entières uniquement (pas de troncature).
% interpolé selon equity − risque ouvert (avant l'entrée).
Applique aux fills. Slippage = 25% du spread médian.

Choisir les meilleures stratégies

1 = un seul EURUSD dans le panier. Vide = illimite.
1 = une seule famille (ex. RSI Mean Reversion). Vide = illimite.
1 = une seule unité de temps (ex. 15 mins). Vide = illimite.
Construction pas à pas (glouton). À chaque étape on fusionne les trades atelier (multiplicateur figé) et on garde l'ajout le plus bénéfique parmi ceux qui respectent les plafonds. Les favoris de ce portefeuille, s'il y en a, sont placés en premier. Un favori d'une autre sélection pas encore calculée est traité comme déjà présent dans cette autre sélection.

Sélection actuelle

Chargement...

PnL cumulé du panier (N-2)

Somme des trades de toutes les stratégies conservees, rejouees avec le même capital / risque que la campagne de validation (onglet 2). Un graphique à barres de PnL cumulé par fenêtre calendaire (capital remis à zéro à chaque fenêtre).
Aucun graphique - lancez le choix pour les générer.

Prévisualisation : indiquez dates, bar sizes et stratégies.

1. Identité et exécution

Les historiques NON-FTMO / Dukascopy sont stockés localement. Le calcul cloud n'est pas disponible pour cette source.

Source des données

Une campagne n'utilise qu'une source. TRAIN, VALID et TEST restent sur FTMO local.

2. Fenêtres

12 mois VALID, paramètres figés. La VALID est également rejouée en 4 trimestres indépendants de 3 mois. Au moins 3 trimestres sur 4 doivent être profitables. Classement par régularité trimestrielle.

24 mois TRAIN. Le champion est d'abord testé sur son instrument principal. Puis les mêmes paramètres sont rejoués sans optimisation sur les autres instruments éligibles pendant les mêmes 24 mois TRAIN. Seuls les champions suffisamment génériques vont en VALID V2.

Le champion local n'est envoyé en VALID que si la même stratégie et le même timeframe produisent indépendamment des champions TRAIN valides sur suffisamment d'autres instruments. Les paramètres peuvent être différents sur chaque instrument.

V2 corrigé, plus une sélection TRAIN feasible-first. Dès qu'un candidat passe Return/an > 0, trades/mois ≥ 3 et RoMaD ≥ 0,20, il est prioritaire sur tout candidat inadmissible. Parmi les admissibles, le meilleur Return/an gagne. VALID, panier et TEST restent identiques à V2.

Profil expérimental V2 : 24m TRAIN / 12m VALID (4×3m) / 6m TEST / shift 6m. 3 trimestres profitables minimum.

V3 - Robustesse cross-instrument
24m TRAIN → cross-instrument TRAIN → 12m VALID V2 → 4×3m, minimum 3/4 positifs → 6m TEST
Cross : minimum 5 instruments actifs, minimum 24 trades/instrument, médiane rendement/an > 0, médiane RoMaD > 0.

V4 - Robustesse multi-instruments de la stratégie
24m TRAIN → filtres TRAIN → strategy breadth → 12m VALID V2 → 4×3m, minimum 3/4 positifs → 6m TEST
Valeurs verrouillées : minimum autres instruments : 5, minimum PASS TRAIN : 50 %.

V5 - TRAIN admissible d'abord
24m TRAIN (sélection feasible-first) → filtres TRAIN → 12m VALID V2 → 4×3m, minimum 3/4 positifs → 6m TEST
Aucun CROSS V3, aucun breadth V4. Les seuils TRAIN restent Return/an > 0, trades/mois ≥ 3, RoMaD ≥ 0,20.

Identique à V5 (TRAIN feasible-first, VALID V2, panier et TEST inchangés), mais le glissement STEP est configurable pour un screening rapide. Mode diagnostic : STEP configurable pour réduire le nombre de fenêtres. Ne remplace pas le protocole complet V5 à STEP 6 mois.

V5 Diagnostic rapide
24m TRAIN figé / 12m VALID figé / 6m TEST figé / STEP éditable (défaut 24m).
Même sélection TRAIN feasible-first que V5. Screening uniquement, pas une évaluation complète.

Portfolio-First R1 conserve plusieurs candidats TRAIN et construit directement le portefeuille sur VALID. Les filtres individuels historiques V5 ne sont pas utilisés comme portes éliminatoires.

R1 utilise TRAIN trim = 0 % et désactive Best Entry Filter Search.
24m TRAIN / 12m VALID / 6m TEST / STEP 6 verrouillé. Bibliothèque Pareto (max 2 par job) puis portefeuille greedy sur VALID (cible 6, minimum 4).

Même logique Portfolio-First R1, avec STEP éditable pour un screening rapide. Ne remplace pas le protocole complet R1 à STEP 6 mois.

R1 Diagnostic rapide
24m TRAIN figé / 12m VALID figé / 6m TEST figé / STEP éditable (défaut 27m). Trim TRAIN 0 %, pas de Best Entry Filter Search.

Mois civils UTC. TRAIN, VALID et TEST sont disjoints. Le glissement doit être ≥ TEST, sinon les TEST se chevauchent et le lancement est bloqué.

3. Univers

Instruments
Bar sizes

Un couple instrument × TF n'entre que s'il couvre TRAIN + VALID + TEST. Pas de mélange FTMO / Non-FTMO.

4. Stratégies

Léger (défaut) : seuils, stops, périodes d'identité. Profond : axes secondaires (take-profit, RSI, etc.). Tu peux encore cocher ou décocher Varier. Les stratégies déjà dans la liste ne changent pas.

Cochez « Varier » pour explorer une plage (GRID / RANDOM) ou une perturbation (AXIS / LOCAL) ; sinon la valeur de base est fixe.

5. Money management TRAIN

Par stratégie (Mode A). Le Mode B n'est qu'une approximation post-traitement, pas l'arbitrage LIVE.
Outil de sélection TRAIN seulement. VALID et TEST rejouent 100 % des trades.
% max
VALID/TEST : multiplicateur et T figés, pas de nouveau DD.

6. Contraintes et filtres d'entrée TRAIN

Pendant TRAIN, uniquement sur le champion. Combinaison max = 1 filtre, pas d'empilement itératif.
Désactivé par défaut : ne pas relancer une recherche de filtres sur des dizaines de champions avant VALID.

7. Filtres TRAIN

Appliqués au champion de chaque job TRAIN (un seul réglage par strategyId × instrument × bar size). Défauts : Rend./an > 0, trades/mois ≥ 3, RoMaD ≥ 0,2.

8. Filtres VALID

PnL > 0, trades ≥ 12, RoMaD ≥ 0,30, Max DD ≤ 15 %, et ratio trades/mois VALID ≥ 50 % du TRAIN (type « Ratio TRAIN »).

9. Panier

Tri RoMaD VALID décroissant, puis SQN, puis id. Glouton déterministe, pas de relâchement. Un panier < taille min. est un échec de sélection (TEST conservé pour l'audit, exclu du concaténé). Pearson signé : une corr négative n'est pas rejetée. US = US30/US100/US500/US2000 ; crypto = BTC/ETH ; or = XAU*.

Brouillon enregistré automatiquement (serveur + navigateur).

Campagne

Fenêtres

Lignes du panier

Mode A - TEST statistique indépendant

Les stratégies sont backtestées séparément puis regroupées. Métrique principale de la campagne de référence (qualité de la sélection).

Mode B - Approximation 1 position globale

Diagnostic secondaire. Approximation post-traitement - ne reproduit pas exactement l'arbitrage LIVE des intentions d'entrée.

Viabilité de la méthode

activation / arrêt / ouverture-fermeture position / échecs
Comptes cTrader / FTMO. Cochez Actif pour les afficher ici et les utiliser en LIVE.

Résultats

Compte FTMO / cTrader (réel) · snapshot auto toutes les 5 min
-
Chargement...

Résultats paper

Simulation panier (fills, commissions, swaps) sur flux réel
Chargement...

Positions ouvertes (comptes)

-
Chargement...

Prochaines news FTMO restreintes

Forex Factory + table officielle. Produits concernes pour verification manuelle. Flatten live = même T que les coupures > 2h (interrupteur System).
Chargement...

Derniers trades clôtures

PAPER et LIVE du panier · PnL net après commissions, slippage et swaps
Chargement...

Flux temps réel (abonnements)

Lecture mémoire uniquement (pas de nouvel abonnement). Rafraichissement UI ~30s - le bot trade en continu.
Aucun run actif.

Stratégies déployées

PAPER et LIVE du panier. Temps live = heures de marche ouvertes. Cumul produit = union (chevauchements non doubles).
Chargement...

Réglages portefeuille

Capital, risque et limites sont propres à chaque compte.
Ex. 0,25 % à 100 000 $ → 1 % à 101 000 $. Interpolation selon equity − risque ouvert (avant l'entrée). Appliqué aussi aux stratégies déjà démarrées.
Toutes lignes du panier confondues.
FTMO hedging : N lignes du panier peuvent chacune tenir 1 position indépendante sur le même symbole (défaut 1). Plafonne par le total ci-dessus. 1 position par ligne.
Défaut pour les nouvelles stratégies ajoutées au panier. Chaque ligne du panier a son propre toggle Réel / Paper. Requiert aussi LIVE_TRADING_ENABLED=true dans le .env pour démarrer du LIVE.
Mode LIVE activé : les ordres seront envoyés sur les comptes cTrader/FTMO cochés dans le panier (une case par compte). Paper reste global. Plusieurs stratégies LIVE peuvent coexister sur le même symbole (hedging), chacune avec sa propre position, dans la limite « Stratégies max par symbole ». Vérifiez MAX_LIVE_ORDER_QUANTITY et LIVE_ALLOWED_INSTRUMENTS (vide = aucune entrée ; * ou ALL = tous les instruments).

Panier live

Ajoutez depuis l'onglet 3. Cochez On, assignez un compte si Réel, puis play / Démarrer.
Chargement...

Journal

Chargement...
ntfy · activation / arrêt / positions / échecs

Démarrer un paper run

Barres live cTrader (+ warmup historique API).
% interpolé selon equity − risque ouvert (avant l'entrée).
Après sizing risque : 63 = 63% des lots (100 = plein, >100 autorise).

Paramètres stratégie

Filtres d'entrée - tendance

Filtres d'entrée - temporels

Chargement...
Chargement...

Pont distant (autre Strategy Lab)

Interroge le catalogue FTMO d'une autre instance (VPS) et télécharge les barres en local. Aucun appel cTrader : les quotas FTMO restent sur le serveur source. Les favoris (étoile) sont ceux de l'instance distante.

Session cTrader (OAuth)

Copie la session cTrader du VPS (tokens OAuth + CLIENT_ID/SECRET de l'app Open API). Les secrets ne passent pas par le navigateur. Une seule session protobuf par compte : arretez paper/live sur le VPS avant d'utiliser cTrader ici. Ne pas activer LIVE sur cet ordinateur.

Dates vides = toute la couverture distante pour le(s) bar size choisi(s).
Configurez l'URL et la cle, puis chargez le catalogue.

1. Explorateur FTMO

2. Tous les produits FTMO

Cliquez pour charger les symboles enabled du compte.

3. Produits enregistrés

Les favoris (étoile) apparaissent en premier. Une asterisque * devant un nom marque une paire FX utilisée pour convertir un favori vers USD. La colonne Contrat montre tick, lots et swaps tels qu'enregistrés (ceux du backtest). Un badge « incomplet » ou « tick suspect » indique un défaut futures (0.25 / 1 lot). Utilisez « Rafraichir les données » pour reimporter les specs cTrader. « Historique recent » complète chaque bar size déjà téléchargée jusqu'à maintenant (chevauchement sur la dernière barre, sans retelecharger tout l'historique). « Réparer les trous » ne retélécharge que les barres manquantes pendant les heures de séance (nuits et week-ends ignorés).

Chargement...

4. Jobs de téléchargement

Chargement...
Chargement...

Instruments mappés

Chargement…

Jobs de téléchargement

Aucun job.

Connexion cTrader

Chargement...

FTMO - perte journalière maximale

Plancher equity du jour = solde a 00:00 CE(S)T − ce montant (défaut 5000).
Equity si tous les SL sont touches doit rester au-dessus du plancher + cette marge (défaut 500). 0 = coller au plancher, sans coussin.

FTMO - challenge (objectif / planchers)

Échelle affichée sur la carte Résultats. Exemple FTMO : 100 000 → 110 000, sans jamais descendre a 90 000. Le maximum journalier est la distance entre l'equity et le plancher du jour (solde minuit − MDL).

FTMO - news restreintes (live / paper)

Défaut: désactivé (challenge). Calendrier Forex Factory + table officielle FTMO, pas le pastille High.

Durée max d'un trade

Ferme automatiquement les positions ouvertes depuis plus longtemps (backtests, optimisations, paper et live). Défaut 1440 (24 h). 0 = désactivé. En live: horloge murale, fermeture des que le plafond est atteint (sans attendre la barre suivante). Un bot déjà lance reprend le nouveau plafond en moins de 30 s.

Historique externe - période de backtest

Borne UTC du bouton atelier Backtester sur les données non FTMO. Intersection avec le 1m Dukascopy déjà téléchargé. Les années calendaires couvertes par moins de 6 mois sont exclues des stats (médiane, années +, pire année).

Défaut : 2010-01-01 → 31 décembre de l'année précédente.

Optimisation - indexation best_summary

Recalcule les résumés utilises pour trier la liste des optimisations par métriques (solde de classement). Utile après un correctif de ranking, ou si un résumé semble faux alors qu'il est déjà marque comme indexe. L'indexation tourne en arriere-plan cote serveur.

Optimisation - workers cloud (GCP)

Plafond d'optimisations « Calcul cloud » lancées en parallele (défaut 50). Effet immediat sur la file d'attente ; surveillez le quota Cloud Run.

Optimisation - réintégration exclusion (N %)

Pour chaque triplet présent dans la liste d'exclusion (atelier), un tirage uniforme 0–100 : s'il est ≤ N, le triplet est quand même lance. Défaut 5.

Notifications Top N (ntfy)

Abonnement serveur persistant (survit au redemarrage). Distinct de l'abonnement topic dans l'app ntfy sur le telephone.

Chargement...
Ouvrir Optimizations

Live - carte Résultats paper

Actuel: affichée. Désactiver masque la carte sur la page Live et evite le calcul des métriques paper.

Retention historique spreads FTMO

Les mesures ask−bid plus anciennes sont purgees à chaque collecte (toutes les 10 min).
Chargement...