Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Telegram !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Experts

RegimeRouter — classificateur de tendance/plage doté d'un registre des taux de réussite par régime - expert pour MetaTrader 5

Ali Akbar
Ali Akbar
  • MQL5 Developer & Algorithmic Trading Specialist à  Freelance
  • Pakistan
  • 2106
Hi, I'm Ali. 24 years old, trading for around 5 years, and developing MQL5/MQL4 tools. I mainly work on automating manual strategies, fixing broken EA logic, and building clean indicators. I care more about clean architecture and proper risk management than over-complicated code. Always down to talk
| French English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Vues:
39
Note:
(2)
Publié:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

RegimeRouter — Classificateur de tendance/plage avec un registre du taux de réussite par régime


Le problème

Une règle de suivi de tendance perd de l’argent en période de consolidation. Une règle de retour à la moyenne est anéantie en période de tendance. La plupart des EA en choisissent une et espèrent que le marché leur sera favorable. La solution habituelle consiste à utiliser un simple filtre ADX. L’ADX ne mesure qu’un seul paramètre, la force directionnelle, et ne fournit aucune indication sur la persistance réelle des rendements ou sur leur retour à la moyenne.

Comment il classe

À chaque barre clôturée, il mesure trois propriétés indépendantes de la série de cours récente.

  • ADX — force directionnelle classique.
  • Exposant de Hurst — analyse de la plage re-normalisée (R/S) des rendements logarithmiques. Au-dessus de 0,5, la série est persistante. En dessous de 0,5, elle est anti-persistante. À 0,5, il s’agit d’une marche aléatoire.
  • Autocorrélation de lag-1 — indique si un mouvement a tendance à être suivi d’un autre mouvement dans le même sens, ou d’un rebond.

Chacun attribue un vote : +1 pour la tendance, -1 pour la fluctuation latérale, 0 pour indécis. Les votes sont additionnés. Si la somme dépasse le seuil `InpMinVotes` dans l’une ou l’autre direction, le régime est « TREND » (tendance) ou « RANGE » (fluctuation latérale). Sinon, il est « NEUTRAL » et l’EA n’effectue aucune transaction. Si l’un des trois indicateurs ne peut être calculé, il ne vote pas et la barre est considérée comme NEUTRE. L’essentiel est d’exiger un consensus. Un indicateur seul revient à un tirage au sort avec des étapes supplémentaires.

Comment il achemine les ordres

Régime Module
TENDANCE Fractionnement du plus haut ou du plus bas de la barre N, pris uniquement dans la direction vers laquelle les moyennes mobiles exponentielles (EMA) rapide et lente sont déjà orientées.
RANGE Spéculer sur un z-score étiré du cours par rapport à sa propre moyenne mobile. Acheter sur la queue basse, vendre sur la queue haute.
NEUTRE Rien.

Le registre

Chaque position est ouverte avec un numéro magique composé de InpMagicBase plus l’identifiant du régime, de sorte que le régime à l’origine d’une transaction est associé à celle-ci. Au démarrage, l’EA parcourt l’historique des transactions, regroupe celles-ci par identifiant de position et reconstitue l’historique. Celui-ci est conservé en cas de redémarrage et de transfert vers un autre terminal.

Pour chaque module, il indique le taux de réussite brut, laborne inférieure de Wilson à 95 %, letaux de réussite d'équilibre impliqué par la moyenne des gains et des pertes propres à ce module, le facteur de profit et un verdict.

TREND 96 tr 38 W brut 39,6 % wilson95 30,4 % seuil de rentabilité 34,2 % PF 1,26 net +734,84 [NON ÉPROUVÉ]

Ce sont les deux chiffres du milieu qui comptent. Un suiveur de tendance à 2R est rentable à partir d’environ 34 %. Un système de contre-tendance à 1R doit dépasser les 50 %. Et un taux de réussite brut sur six transactions ne prouve absolument rien. Le verdict consiste simplement à déterminer si la limite inférieure dépasse le seuil de rentabilité, ce qui est la seule interprétation de « ce module fonctionne » qui résiste à un petit échantillon.

Le commutateur A/B

InpForceRegime désactive le routeur et force chaque transaction à passer par un seul module. Exécutez trois fois le même symbole et la même période — AUTO, puis ALWAYS_TREND, puis ALWAYS_RANGE — et vous obtiendrez une mesure directe de l’apport éventuel du classificateur. Les trois résultats sont tout de même enregistrés lors d’un test forcé, ce qui vous permet de voir comment le module forcé s’est comporté sur les barres que le routeur aurait rejetées.

Faites cela avant de vous y fier. Le concept de routage est une hypothèse, pas un résultat.

Backtest

H1 · du 01/01/2026 au 20/09/2026 · 10 000 USD · Délai aléatoire activé · toutes les entrées par défaut. Deux symboles, tous deux affichés.

EURUSD H1

Indicateur Valeur
Bénéfice net total +900,42
Bénéfice brut / perte brute 3 712,84 / 2 812,42
Facteur de rentabilité 1,32
Gain attendu 9,00
Facteur de récupération 1,71
Nombre total de transactions 100
Dépréciation maximale du solde 505,32 (4,56 %)
Baisse maximale des capitaux propres 527,80 (4,76 %)
Module Transactions Gains Brut Wilson 95 % bas Net
TENDANCE 96 38 39,6 % 30,4 % +734,84
PLAGE 4 4 100,0 % 51,0 % +165,58

96 + 4 = 100 transactions et +734,84 + 165,58 = +900,42, le registre correspond donc exactement au rapport du testeur.

XAUUSD H1 — même EA, mêmes paramètres, même période

Indicateur Valeur
Bénéfice net total −1 554,11
Solde final 8 445,89
Nombre total de transactions 85
Module Transactions Gains Brut Wilson 95 % bas Net
TENDANCE 78 26 33,3 % 23,9 % −1 576,33
INTERVALLE 7 4 57,1 % 25,0 % +22,22

78 + 7 = 85 transactions et −1 576,33 + 22,22 = −1 554,11. Celle-ci est déficitaire. Je la publie exprès à côté de la transaction gagnante, car une liste qui ne mentionne que le symbole qui a fonctionné ne vous apprend rien sur l'EA.

Ce que ce résultat montre et ne montre pas

Lisez cette partie avant de l'utiliser.

  • Le module TREND n’a pas fait ses preuves sur aucun des deux symboles. Sur l’EURUSD, son gain moyen était de 93,35 et sa perte moyenne de 48,49 ; il lui fallait donc environ 34,2 % de transactions gagnantes juste pour atteindre le seuil de rentabilité. Il a remporté 39,6 % des transactions. Mais la limite inférieure de Wilson à 95 % pour ce taux de réussite est de 30,4 %, ce qui est inférieur au seuil de rentabilité. Avec cet échantillon, le résultat indique l’absence totale d’avantage. Sur la paire XAUUSD, ce même module affichait un taux de réussite brut de 33,3 % et une limite inférieure de 23,9 %, et il a généré des pertes. Le verdict est le même dans les deux cas : les preuves sont encore insuffisantes.
  • Il faudrait environ 320 transactions au taux de réussite observé sur l’EURUSD pour que la limite inférieure dépasse le seuil de rentabilité. Un symbole sur la période H1 a généré 100 en environ neuf mois ; il s’agit donc d’un problème de portefeuille, et non d’un problème lié à la durée insuffisante du backtest.
  • Le module RANGE n’a pratiquement pas été testé. Quatre transactions sur l’EURUSD, sept sur le XAUUSD. Le taux de réussite de 100 % sur l’EURUSD ne signifie rien, ce qui explique précisément l’existence de la colonne Wilson.
  • Il n’y a pas de test hors échantillon. Une période, un timeframe, deux symboles.
  • La modélisation a été effectuée « à chaque tick », et non sur des ticks réels. Les sorties sont laissées aux niveaux de stop-loss (SL) et de take-profit (TP) du courtier, ce qui signifie que la trajectoire intra-barre est importante. Relancez le test sur des ticks réels avant de tirer des conclusions.

Je publie ces résultats parce que c’est l’appareil de mesure qui est utile, et non parce que j’ai un avantage validé à vous vendre. Effectuez un test A/B. Si le routeur ne surpasse pas ses deux propres modules sur votre symbole, cela vaut également la peine d’être noté.

Remarques sur l’exécution

  • Les signaux sont évalués à la clôture de la barre ; ce modèle est donc conçu pour les timeframes M15 et supérieurs.
  • Les positions s’ouvrent sans stop, puis les stops sont fixés à partir du cours d’exécution réel. Un stop calculé à partir d’un instantané pré-négociation peut déjà être invalide au moment où l’ordre est exécuté.
  • Si l’application des stops échoue, la position est immédiatement clôturée plutôt que laissée sans protection.
  • Les distances des stops sont limitées au niveau des stops et au niveau de gel propres au symbole.
  • Les sorties relèvent des niveaux SL et TP du courtier. Il n’y a pas de clôture forcée manuelle programmée.
  • Stop suiveur ATR optionnel pour les opérations de tendance, appliqué au maximum une fois par barre et jamais sur la barre d’entrée.
  • Une seule position à la fois. Sur un compte de compensation, un deuxième ordre sur le même symbole fusionne avec la position existante au lieu de devenir une transaction distincte, ce qui corromprait silencieusement le registre.
  • Calcul de la taille des lots en fonction du risque, limite de perte quotidienne, plafond quotidien de transactions, filtre de spread, ratio minimum take-profit/spread et filtre de session optionnel.

Principaux paramètres

Entrée Valeur par défaut Fonction
InpForceRegime Auto Force un module à effectuer un test A/B du classificateur
InpMinVotes 2 Votes sur trois requis pour adopter un régime
InpADXTrendLevel / InpADXRangeLevel 25 / 20 Seuils de vote ADX
InpHurstBars 256 Nombre de barres de rendement en retrait par rapport à l'estimation de Hurst
InpHurstAdaptive désactivé Évalue Hurst par rapport à sa propre distribution plutôt qu’à des niveaux fixes
InpAutoCorrThreshold 0,05 L'autocorrélation doit dépasser cette valeur pour être prise en compte
InpBreakoutBars 20 Module de tendance : nombre de barres de haut/bas à franchir
InpRangeZEntry 2,0 Module « Range » : score z à partir duquel effectuer un « fade »
InpRiskPercent 0,5 Risque par transaction, en % du solde
InpMagicBase 772 000 L'identifiant de régime est ajouté à cette valeur

Remarque sur le seuil de Hurst

Il existe un paramètre appelé « InpHurstAdaptive », désactivé par défaut.

La ligne de tendance/plage classique pour l’exposant de Hurst est de 0,5. En pratique, cette ligne est mal placée. L’estimateur R/S présente un biais à la hausse sur un échantillon fini ; ainsi, une estimation sur 256 barres d’une série ordinaire se situe bien au-dessus de 0,5. Mesurées sur l’EURUSD en H1, les valeurs ont affiché une moyenne de 0,568 et ne sont descendues en dessous de 0,45 que deux fois sur 419 observations. Face à une fourchette fixe de 0,45 / 0,55, ce vote ne mesure rien. Il s’agit d’un vote quasi permanent en faveur de la TENDANCE.

L’activation d’InpHurstAdaptive supprime l’échelle absolue et pose à la place une question relative : la série est-elle plus persistante que ne l’a été récemment ce symbole ? Les N dernières valeurs sont conservées et le vote porte sur les centiles de cet historique plutôt que sur 0,5.

Le coût de cette approche est réel. De par sa conception, le « voter » vote alors en faveur de RANGE sur une part fixe de barres, quelle que soit l’évolution du marché. Il s’agit donc d’un commutateur, et non d’une réécriture. Il est désactivé par défaut, car les backtests ci-dessus ont été effectués avec cette option désactivée, et je ne souhaite pas que le paramètre par défaut livré soit un réglage pour lequel je ne dispose d’aucun résultat.

Aucune stratégie n’est garantie de générer des bénéfices. Cela vous offre une structure de test intégrant une mesure. Cela ne vous donne pas d’avantage.

— Ali Rajput


Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/77535

One-Click Trade Manager — taille de lot en fonction du risque, avec point d'entrée, stop et objectif en un seul clic One-Click Trade Manager — taille de lot en fonction du risque, avec point d'entrée, stop et objectif en un seul clic

Il calcule la taille de la position en fonction de votre pourcentage de risque et de la distance de stop, puis ouvre la position avec le stop loss et le take profit déjà définis. Il n'effectue jamais de transactions de manière autonome.

Pending Panel MT5 — One-Click Pending Orders with OCO Pending Panel MT5 — One-Click Pending Orders with OCO

A chart panel for MT5 that places Buy Limit, Sell Limit, Buy Stop and Sell Stop pending orders with one click. Volume, distance and optional SL/TP are set on the panel; OCO cancels the opposite order automatically. Includes bulk delete, a live order list and automatic handling of broker STOPS_LEVEL and filling mode. Execution tool only - no signals, no guaranteed results.

Prior Bar Break Odds with Level Bars and a Rolling Hit Rate Prior Bar Break Odds with Level Bars and a Rolling Hit Rate

Measures, on the chart's own history, how often a bar takes out the prior high or the prior low after bullish and after bearish bars, at up to five levels spaced by the average range. Each level carries a probability bar, and a table scores the favored side over all bars and over the last 200.

ICT Premium / Discount and OTE - dealing range, standard deviations, IPDA ranges ICT Premium / Discount and OTE - dealing range, standard deviations, IPDA ranges

ICT dealing range from confirmed swings: premium and discount zones, equilibrium, the OTE band (62 - 79 %, 70.5 %), standard deviation targets and the IPDA 20 / 40 / 60-day ranges. No repaint. Alerts and EA buffers.