LiuGuanYi
- Experts
-
Bo Wen Che
Je suis un trader indépendant et développeur de systèmes de trading algorithmique, principalement spécialisé dans l’or, le Bitcoin, les contrats à terme américains et le marché des changes. - Version: 35.2
- Activations: 5
Il ne s’agit pas d’un EA nécessitant des réglages complexes. Les paramètres essentiels ont déjà fait l’objet de nombreux tests et sont verrouillés à l’intérieur du programme. Je ne souhaite pas que les utilisateurs modifient librement les paramètres internes et finissent par exécuter un système totalement différent du modèle d’origine.
En utilisation réelle, il suffit de comprendre le type de compte, le niveau de capital et la direction de trading. Toute la logique centrale restante est gérée automatiquement par le système.
1|Compte réel disponible pour observation publique https://www.mql5.com/zh/signals/2386318?source=Site+Signals+My
Courtier : EC Markets
Serveur : ECMarkets-MT5-Live01
Compte : 81206286
Mot de passe investisseur : Liuguanyi123@ — avant publication, vérifiez qu’il s’agit bien du mot de passe MT5 en lecture seule
Il s’agit d’un compte réel permettant d’observer le comportement effectif des ordres de l’EA sur le marché réel.
2|Utilisez un compte ECN à faible spread
Ce point est très important.
Mes principaux backtests et mon environnement d’exécution utilisent un compte ECN à faible spread, avec un spread testé d’environ 5 à 8 points et un paramètre de commission de 3.
Le système n’a pas été développé dans un environnement théorique à spread nul et commission nulle. Le spread et la commission font déjà partie des coûts de trading réels de la stratégie.
Cependant, si vous utilisez un compte dont le spread est nettement supérieur à celui de l’environnement de test, avec un slippage anormal, ou un courtier dont les conditions diffèrent fortement d’un environnement ECN standard, le rendement final comme le comportement du drawdown seront modifiés.
Plus les coûts de transaction sont élevés, plus le bénéfice net diminue, plus l’efficacité du capital baisse et plus le profil de drawdown peut se détériorer.
Par conséquent, si vous utilisez un compte à spread élevé, n’attendez pas des résultats identiques à mes tests.
3|La stratégie ne dépend pas d’une latence ultra-faible
Cette stratégie n’est pas un système d’arbitrage de latence, ne dépend pas d’un retard de cotation et n’a pas besoin d’une latence réseau extrêmement faible pour obtenir un avantage.
Lors de tests réalisés avec différentes latences, d’environ 1 ms à 500 ms, les résultats globaux n’ont pas montré de différence structurelle décisive.
Il n’est donc pas nécessaire d’acheter un serveur ultra-faible latence coûteux uniquement pour ce système. Un VPS stable classique ou un ordinateur local suffit.
Pour cette stratégie :
La stabilité de la connexion est bien plus importante que la recherche d’une latence de 1 ms.
4|Les paramètres essentiels sont masqués
Les paramètres internes qui déterminent réellement le comportement du système sont déjà prédéfinis. Je n’ai pas exposé aux utilisateurs un grand nombre de paramètres de recherche.
La raison est simple : si chacun peut modifier librement les seuils internes d’un modèle déjà testé, le système obtenu n’est plus la même stratégie.
L’utilisateur doit uniquement choisir :
Type de compte, niveau de capital et direction de trading.
Tous les autres paramètres essentiels sont contrôlés en interne par le système.
Vous choisissez le niveau de risque ; vous ne redessinez pas la stratégie.
5|Le niveau de capital détermine l’intensité du risque
Si le compte dispose de 2 500 USD, la configuration standard consiste à sélectionner le niveau de capital 2 500 USD ; un compte de 5 000 USD utilise le niveau 5 000 USD ; un compte de 10 000 USD utilise le niveau 10 000 USD. Un compte en cents peut également être utilisé, avec environ 25 USD minimum pour démarrer.
C’est la méthode d’utilisation la plus normale et la plus raisonnable.
Au début du développement, je laissais l’EA déterminer le risque de manière totalement dynamique selon le capital total du compte. Après de nombreux tests, j’ai constaté que cette approche pouvait maintenir le drawdown à un niveau très faible, mais qu’elle laissait également une part importante du capital inutilisée pendant de longues périodes, ce qui réduisait l’efficacité du capital.
J’ai donc finalement décidé de :
Laisser à l’utilisateur le choix du niveau de risque.
Le niveau de capital n’est pas simplement une étiquette correspondant au solde du compte. Il détermine en réalité l’intensité de risque avec laquelle le système fonctionne.
Si le capital réel est égal au niveau sélectionné, il s’agit du risque standard. Si le capital réel est supérieur au niveau sélectionné, le risque relatif diminue. S’il est inférieur, le risque relatif augmente.
6|Si vous acceptez davantage de risque, vous pouvez choisir un niveau de capital supérieur
Par exemple, un compte disposant seulement de 2 500 USD peut tout de même fonctionner avec le niveau de capital 5 000 USD.
Cela signifie que le système exécutera la structure de risque conçue pour le niveau 5 000 USD.
La conséquence est très claire :
Le potentiel de rendement augmente, mais le potentiel de drawdown augmente également.
Ce n’est ni un bug ni une anomalie. Il s’agit d’une décision volontaire de l’utilisateur d’augmenter le niveau de risque.
Si vous ne pouvez pas supporter des fluctuations plus importantes du capital, n’utilisez pas un niveau de capital élevé sur un petit compte.
Une rentabilité plus élevée n’est jamais gratuite.
Informations de backtestPériode publique de backtest :
1er mars 2024 — 5 août 2026
La raison pour laquelle le test commence en 2024 est que, dans mon environnement historique actuel EC Markets, des données tick réelles fiables sont disponibles de manière stable à partir de cette période.
Je n’allongerai pas artificiellement le backtest en mélangeant des données provenant de différentes sources ou en utilisant des historiques dont la qualité ne peut pas être vérifiée.
Je ne montre que ce qui peut réellement être vérifié.
Compte 2 500 USD|Niveau de capital 2 500 USD
Capital initial : 2 500 USD
Bénéfice net final : 6 603 USD
Rendement net : environ 264 %
Capital final : environ 3,64 fois le capital initial
Drawdown maximal depuis un pic d’equity : environ 16 %
Montant maximal de drawdown pendant le test : environ 1 120 USD
Si l’on compare directement 1 120 USD au capital initial de 2 500 USD, cela représente environ 44,8 % du capital initial.
Il faut bien distinguer :
Le drawdown maximal depuis un pic d’equity et le montant maximal de perte exprimé en pourcentage du capital initial ne sont pas la même mesure statistique.
La stratégie calcule dynamiquement le volume réel de trading selon le niveau de capital choisi. Ainsi, si davantage de capital réel est utilisé tout en conservant le même niveau, et que la structure de gains reste similaire, le pourcentage de drawdown relatif diminue généralement davantage.
Compte 10 000 USD|Niveau de capital 10 000 USD
Capital initial : 10 000 USD
Bénéfice net final : 26 395 USD
Rendement net : environ 263,95 %
Drawdown maximal depuis un pic d’equity : environ 16 %
Montant maximal de drawdown pendant le test : environ 4 000 USD
Ce résultat montre qu’en augmentant proportionnellement le niveau de capital, la structure globale risque/rendement du système peut rester relativement cohérente.
Compte 2 500 USD|Exécution avec le niveau de capital 5 000 USD
C’est le test que je considère le plus important à comprendre.
Le capital initial réel n’était que de :
2 500 USD
Mais le système utilisait :
Le niveau de capital 5 000 USD
Bénéfice net final :
13 201 USD
Par rapport aux 2 500 USD initiaux :
Rendement net : environ 528 %
Drawdown maximal depuis un pic d’equity :
Environ 18 %
Montant maximal de drawdown pendant le test :
Environ 2 240 USD
Cela montre qu’un utilisateur acceptant volontairement un risque plus élevé peut modifier le profil global risque/rendement du compte en sélectionnant un niveau de capital supérieur.
Mais il faut le répéter clairement :
Lorsque le potentiel de rendement augmente, le montant absolu de capital exposé au risque augmente lui aussi de manière importante.
Si vous ne pouvez pas supporter ce niveau de fluctuation, n’utilisez pas cette configuration.
Les backtests doivent utiliser des données tick réellesC’est l’un des éléments les plus faciles à négliger après l’achat, et pourtant l’un des plus importants.
Ne pensez pas qu’un simple clic sur le testeur de stratégie MT5 signifie automatiquement que vous utilisez les ticks réels du courtier.
MT5 peut générer des ticks synthétiques à partir de bougies historiques. Pour de nombreuses stratégies classiques à faible fréquence, cette différence peut être peu importante.
Mais cette stratégie contient une dépendance au chemin de prix, des états événementiels et une logique de séquence d’exécution. Même si la bougie finale est exactement identique, une séquence de prix intrabar différente peut déclencher un autre état interne.
Pour un backtest sérieux :
Vous devez sélectionner « Chaque tick basé sur des ticks réels » et utiliser l’historique de ticks réels fourni par le courtier.
Si des ticks synthétiques sont utilisés :
Le rendement du backtest peut être fortement faussé. La plupart des courtiers ne disposent pas d’un historique de ticks réels très long. Par exemple, dans mon environnement EC Markets, les ticks réels fiables commencent en 2024. Un autre courtier peut afficher des données depuis 2017, mais les données plus anciennes peuvent n’être que des bougies reconstruites ou simulées et non un véritable historique tick. Dans ce cas, le bénéfice historique obtenu ne peut pas être considéré comme un résultat authentique basé sur des ticks réels. Cette distinction doit être parfaitement comprise.
Pourquoi j’ai finalement décidé de développer cet EA moi-mêmeJe trade depuis six ans.
Au cours de ces six années, j’ai compris que mon plus grand adversaire n’était en réalité pas le marché.
C’était moi-même.
Lorsque je suis dans un bon état mental, je peux exécuter mes trades avec beaucoup de discipline. Un jour, je peux gagner 200 USD ; un autre, peut-être 1 000 USD.
Le véritable problème n’est pas que je ne sais pas trader. Le problème est le suivant :
Après avoir gagné de l’argent, l’état mental d’une personne change.
Par exemple, si je trade sérieusement ce mois-ci et gagne 5 000 USD, le mois suivant je peux devenir trop confiant, me relâcher, voire devenir arrogant à cause du bénéfice du mois précédent.
La qualité de mes décisions baisse alors et les pertes apparaissent.
Après une perte, je redeviens sérieux. Lorsque je retrouve ma discipline, je recommence à gagner. Puis, après les gains, je recommence progressivement à me relâcher.
Avec les années, j’ai réalisé que je répétais sans cesse le même cycle :
Discipline → Profit → Confiance → Relâchement → Perte → Retour à la discipline
Ce qui me frustrait le plus, c’est que je savais très clairement que :
Lorsque j’exécute strictement mes règles, mes performances s’améliorent nettement.
Mais je ne peux pas garantir que mes émotions, ma discipline et mon état mental resteront exactement les mêmes 365 jours par an.
Pour un être humain, c’est extrêmement difficile.
J’ai donc commencé à me demander :
Si la logique de trading peut être définie, pourquoi ne pas laisser un programme dépourvu d’émotions l’exécuter ?
Un programme ne devient pas euphorique parce qu’il a gagné de l’argent hier. Il ne se croit pas invincible après une série gagnante. Il ne saute pas des conditions parce qu’il est de mauvaise humeur. Et il ne tente pas de tout récupérer immédiatement après une perte.
Il exécute simplement les règles.
Plus tard, j’ai commencé à acheter des EAs et des stratégies développés par d’autres, dans l’espoir de trouver un système automatisé réellement fiable.
Au total, j’ai dépensé environ :
3 000 USD
Mais après de nombreux achats, tests et analyses, j’ai découvert trop de problèmes dans ce marché :
Utilisation d’informations futures, repainting, remplacement de données historiques, commissions ignorées, spreads ignorés, slippage ignoré, pertes flottantes cachées, conditions différentes entre backtest et réel, paramètres constamment ajustés au passé, sélection des périodes les plus favorables et courbes d’equity anormalement parfaites.
J’ai fini par arriver à une conclusion :
Si je continuais à chercher un prétendu EA magique, je pourrais passer ma vie à chercher quelque chose qui n’existe pas.
J’ai donc arrêté d’en acheter.
J’ai décidé de développer le mien.
C’est ainsi que cet EA est né.
Son objectif initial n’était pas de créer la plus belle courbe de backtest possible, mais de :
Transformer quelque chose qu’un trader doit normalement exécuter grâce à la discipline et au contrôle émotionnel en un système automatisé capable d’appliquer les règles de manière constante.
Architecture quantitativeD’un point de vue d’ingénierie, ce système ne suit pas le schéma traditionnel :
Indicateur génère un signal → ordre immédiat
Le véritable processus de décision ressemble davantage à :
Reconnaissance de l’état du marché → analyse structurelle → confirmation de l’événement → évaluation du risque → vérification de l’exécution
Les ordres qui apparaissent finalement sur le graphique MT5 ne sont que la sortie finale produite après que le système interne d’états a franchi plusieurs niveaux de contraintes.
I|Décomposition multi-temporelle de l’espace d’états
Le système utilise une structure d’analyse d’états sur plusieurs unités de temps, chaque horizon remplissant une fonction informationnelle différente.
Structure directionnelle, volatilité locale, événements de marché, état des positions et environnement d’exécution ne sont pas simplement additionnés. Ils sont affectés à différentes couches et déterminent ensemble si une opération obtient l’autorisation d’être exécutée.
Le système ne produit donc pas simplement un signal d’achat ou de vente, mais :
Un état de trading exécutable qui n’obtient l’autorité d’exécution qu’après plusieurs niveaux de confirmation.
II|Routage des états de marché avec hystérésis
L’état du marché ne bascule pas instantanément d’une condition à une autre sur la base d’un seul seuil fixe.
Le système intègre persistance d’état, confirmation, règles de transition asymétriques et mémoire d’état, principalement afin de réduire les basculements fréquents lorsque le marché se trouve près d’une zone frontière.
Lorsqu’un nouveau cycle de trading est établi, certaines variables clés sont figées.
Le marché peut continuer à évoluer, mais le système ne réinterprète pas constamment une structure de risque déjà établie à cause de quelques fluctuations de court terme.
III|Structure de prix normalisée par la volatilité
Le système ne considère pas la distance absolue de prix comme une mesure universelle.
Un même mouvement de 10 USD peut avoir une signification totalement différente dans un marché à faible volatilité et dans un marché à forte volatilité.
Ainsi, le déplacement du prix, la distance structurelle, l’expansion locale et les limites de risque sont évalués dans un espace normalisé par la volatilité.
Autrement dit :
Le système ne mesure pas seulement jusqu’où le prix s’est déplacé, mais l’importance de ce mouvement relativement à la structure de volatilité actuelle.
IV|Évolution d’état dépendante du chemin
Le prix actuel n’est pas la seule variable déterminant le comportement du système.
Le système tient également compte du chemin par lequel le marché a atteint le prix actuel, ainsi que de l’état de trading, de l’état de risque et de la structure des positions déjà construits.
Par conséquent :
Même si le prix revient exactement au même niveau, le système ne prendra pas nécessairement la même décision.
La raison est simple :
Le chemin suivi pour atteindre ce prix peut avoir été totalement différent.
C’est également pourquoi la qualité des données tick réelles est si importante pour cette stratégie.
V|Budget de risque hiérarchique
Le système ne génère pas simplement un signal pour décider immédiatement de la taille de position.
Chaque nouveau cycle de trading établit d’abord son propre budget de risque. Le module interne de planification calcule ensuite la structure réelle d’exposition en fonction de l’espace de risque admissible encore disponible.
La hiérarchie peut être comprise ainsi :
Contrôle du risque du compte > Risque du cycle de trading > Planification des positions > Conditions d’entrée > Signal de trading
Ainsi :
La taille de position n’est pas la première décision du système. Elle est le résultat du calcul complet du risque.
Même lorsque les conditions d’entrée sont valides, le système peut refuser l’exécution si la capacité de risque de niveau supérieur est insuffisante.
VI|Structure non linéaire du risque de position
Lorsque plusieurs positions existent simultanément, le risque total ne peut pas être compris comme la simple somme des risques de chaque ordre individuel.
Chaque modification d’exposition change la quantité de risque que l’ensemble du cycle pourra encore absorber à l’avenir.
Le risque déjà consommé influence directement la possibilité d’ajouter une nouvelle exposition par la suite.
Le système ne gère donc pas des ordres isolés. Il gère :
La structure globale de risque de l’ensemble du cycle de trading, en évolution permanente.
VII|Gestion indépendante des états acheteur et vendeur
Les positions longues et courtes ne sont pas simplement le même programme avec une direction inversée.
Les deux directions maintiennent indépendamment :
État de trading, état de risque, mémoire d’exécution et structure du cycle.
Elles partagent cependant le contrôle du risque de capital au niveau du compte.
Sur le plan architectural, cela ressemble davantage à :
Deux moteurs d’état indépendants partageant une même couche de contrôle du capital du compte.
VIII|Vérification d’exécution en boucle fermée
Dans de nombreux EAs classiques, le processus principal est pratiquement terminé une fois que l’ordre a été envoyé avec succès.
Ici, ce n’est pas le cas.
Après l’envoi de l’instruction, le système continue à vérifier :
État prévu → État réel d’exécution → État final vérifié
Le cycle de vie de l’ordre n’est considéré comme valide que si l’exécution réelle reste cohérente avec l’état interne de risque.
Le système ne contrôle donc pas seulement :
Si l’ordre a été envoyé avec succès
mais également :
Si le résultat réel de l’exécution reste conforme au modèle de risque interne.
IX|Contrôle de l’intégrité de l’environnement de trading
Le marché réel n’est pas un environnement de backtest.
Volume minimum, pas de volume, valeur du tick, taille du contrat, restrictions de stop, restrictions de gel, exigences de marge, spread, slippage et échecs d’ordres peuvent tous modifier le résultat final.
Ces éléments ne font pas partie de la logique directionnelle de la stratégie, mais ils déterminent directement si elle peut être exécutée sur le marché réel comme prévu.
Ainsi :
L’environnement d’exécution lui-même fait partie du système global de risque.
X|Détection des changements d’état du contrat
Le système ne suppose pas qu’un même symbole conservera toujours exactement les mêmes conditions de trading.
Si le courtier modifie le volume minimum, le pas de volume, la valeur du tick, la taille du contrat ou les restrictions de trading, la base du calcul de risque initial peut changer.
Le système enregistre donc les principales caractéristiques d’exécution de l’instrument et surveille les changements critiques de conditions.
Pour un système automatisé de risque :
Le même nom de symbole ne garantit pas exactement les mêmes propriétés économiques à tout moment.
XI|Contrôle de risque en mode « fail-closed »
Le système applique un principe très conservateur face aux états inconnus.
L’impossibilité de vérifier la sécurité ne signifie pas que l’état est sûr.
Si une protection critique ne peut pas être confirmée, qu’un résultat d’exécution ne peut pas être vérifié, que l’environnement devient anormal ou que les conditions de risque sortent de la plage attendue, le système donne la priorité à la limitation des nouvelles positions plutôt qu’à l’ajout d’un risque inconnu.
C’est l’un des principes les plus importants de toute l’architecture.
XII|Reconstruction persistante de l’état
Un VPS peut redémarrer. MT5 peut être mis à jour. Le réseau peut être interrompu. Le programme peut être rechargé.
Le système n’a donc jamais été conçu sur l’hypothèse d’un fonctionnement ininterrompu du processus.
La durée de vie d’un cycle de trading et la durée de vie du processus logiciel ne sont pas la même chose.
Le système tente de conserver et de reconstruire les états de trading existants afin qu’après un redémarrage, il puisse comprendre à quelle étape se trouve déjà le compte, au lieu de traiter toutes les positions existantes comme un nouveau départ.
XIII|Le risque de capital du compte possède l’autorité maximale
Le système dispose d’une hiérarchie claire des autorisations de risque :
Protection du capital du compte > Risque du cycle de trading > Planification des positions > Autorisation d’entrée > Signal de trading
Cela signifie que même une opportunité de trading parfaitement valide peut être rejetée si les conditions de risque au niveau du compte ne permettent pas de la prendre.
Car dans ce système :
L’apparition d’un signal ne signifie pas qu’une opération doit obligatoirement être exécutée.
La logique de trading identifie des possibilités.
Le système de risque du capital décide si le compte est autorisé à prendre ce risque.
Définition finale du systèmeSi l’on devait décrire ce système en termes d’ingénierie, on pourrait le définir comme :
Décomposition multi-temporelle des états, reconnaissance de régime avec hystérésis, structure de prix normalisée par la volatilité, évolution d’état dépendante du chemin, budgétisation hiérarchique du risque, allocation non linéaire de l’exposition, gestion indépendante des états acheteur/vendeur, vérification d’exécution en boucle fermée, détection des changements de l’environnement de trading, récupération persistante de l’état et protection du capital en mode fail-closed.
Ce que vous voyez finalement sur le graphique MT5 n’est qu’un ordre.
Ce qui détermine réellement pourquoi cet ordre est autorisé à exister est toute une structure invisible d’évaluation des états et de contraintes de risque.
Vous pouvez voir où le système trade.
Mais vous ne pouvez pas voir quel état interne a autorisé cette opération.
Avertissement sur les risquesAucun EA, programme de trading automatisé ou système quantitatif ne peut rester efficace en permanence ni garantir des profits.
Les backtests historiques ne garantissent pas les rendements futurs. Les performances historiques d’un compte réel ne garantissent pas non plus les performances futures.
Le résultat final peut être affecté par le spread, les commissions, le slippage, la qualité d’exécution du courtier, les conditions de marché et le niveau de capital choisi par l’utilisateur.
Je publie les données historiques afin que les utilisateurs puissent vérifier eux-mêmes la stratégie, et non pour prétendre que l’avenir reproduira le passé.
Choisissez le niveau de capital en fonction de la perte que vous pouvez réellement supporter.
Si un montant de drawdown peut affecter votre vie normale, alors ce niveau de risque n’est pas adapté à votre situation.
