ProRealTime
Pour partager sur le trading automatique, nos algorithmes, nos backtests

Expérience de développement d'EAs

par Fabii » 07 Déc 2018 08:26

Bonjour à tous,

Ce poste à pour objectif de réfuter ou de valider mon approche et peut permettre à ceux qui débutent (étant moi-même débutant) d'éviter certaines erreurs et de gagner du temps sur les stratégies à mettre en place. Je suis parti de zéro. Je me concentre uniquement sur le "day trading" à l'aide d'Expert Advisor (EA) sous Meta Trader 4. Ce choix est dû à mon background, en effet, je suis ingénieur informatique et le langage MQL de MT4 est très facile d'accès.

Chronologiquement, ci-dessous, vous trouverez toutes les modifications que j'ai faites et que je continue à faire pendant cet apprentissage. Ce travail me permet également de mon côté de faire un bilan. Je me suis spécialisé sur l'analyse purement technique et non fondamentale. Donc, je suis la tendance du marché et je n'essaye pas de faire de prédiction ou de parie en fonction des annonces.

Pour RAPPEL, les conclusions ci-dessous sont purement personnelles, il y a probablement des personnes qui réussissent avec d'autres règles ou approches. En 4 mois, voici-ci mon analyse :

0-Arrêter le trading manuel pour ma part. C'est une catastrophe pour moi. J'ai gagné beaucoup et j'ai perdu beaucoup. Psychologiquement, c'est très dur et il faut une rigueur militaire. Ce n'est franchement pas fait pour tout le monde. Quand vous perdez, êtes-vous capable de couper les positions ? Peut-être prenez-vous les gains trop tôt ?

1-Bannir rapidement toutes martingales (j'ai testé beaucoup d'approche avec des formules mathématiques compliquées, il y a trop de risques sur le long terme). Théoriquement, c'est parfait mais dans la pratique cette approche est très risquée même avec un gros capital.

2-Les StopLoss (SL) sont OBLIGATOIRES (pour ne pas "cramer le compte") et les TakeProfit aussi (TP). Il faut absolument prendre les pertes et gains. L'idée de laisser courir les gains ne fonctionne pas de mon côté en day trading (j'ai également banni les TrailingStop). Par contre, j'ai programmé une fonction pour clôturer les positions pour ne pas dépendre uniquement du bon vouloir du broker dans l'exécution du SL.

3-Ce spécialiser sur un ou deux domaines. Au final, j'ai abandonné le Forex et je me suis concentré sur les indices CAC40 et US30. Les signaux sont moins "bruités" à mon goût et je peux déterminer plus facilement les probabilités de mouvements avec les indicateurs techniques (toujours avoir en tête que ce sont des probabilités et NON DES PREDICTIONS).

4-Il faut trouver le bon cocktail, j'ai développé une cinquantaine de stratégies trouvées sur le Web avec un ou deux indicateurs. Ma conclusion est que 99% sont perdantes sur le long terme. Il ne faut pas faire confiance sur ce que l'on lit sur internet, il faut développer sa propre stratégie et son propre robot avec plusieurs indicateurs. Travailler, Tester, Travailler, Perdre est normal pour apprendre. Cette étape n'a pas été inutile car mes 50 Experts Advisor me servent de patterns/librairies et m'ont permis d'apprendre. Il ne faut JAMAIS acheter un robot automatisé sans son code source et surtout si vous ne comprenez pas parfaitement (ligne à ligne) comment il fonctionne. Si vous n'êtes pas capable de le modifier, vous allez perdre.

5-De mon côté, j'ai banni également le Hedging (deux positions opposées simultanées car certain broker n'accepte pas le Hedging et, je constate que ma rentabilité est meilleure sans cela).

6- Ne pas négliger les VOLUMES. Les Volumes ne permettant pas forcément de trouver un point d'entrée mais peuvent CONFIRMER une tendance et un prix attirant les investisseurs.

7- Ce point est important car j'ai mis beaucoup de temps à m'en rendre compte, il faut diversifier la stratégie en fonction d'une probabilité de VENTE ou d'ACHAT. En bref, je n'utilise pas la même gestion pour détecter les ventes et les achats (indicateurs techniques). Par exemple, la tendance à la vente est souvent plus soudaine que l'achat et a de plus fortes probabilités d'avoir lieu. Cela paraît bête mais j'ai mis plusieurs mois à comprendre cela.

8- Les tests ne sont pas à négliger. Faites des "backtests" pour vos EAs. Faites vos tests sur plusieurs brokers, il a des surprises. Il ne faut jamais faire confiance à 100% sur les tests. Cela donne une idée de réussite et NON UNE GARANTIE.

9- Il faut tester également en réel avec des petits montants. Les brokers font de l'argent, n'oubliez pas : Spread, Rollover, Intérêt, Slippage, frais d'exécution des StopLoss Garantie pour certain broker. En DEMO, ce n'est pas visible. Ce sont des frais significatifs.

10- Il faut absolument prendre en compte les Supports & Résistances en plus de vos indicateurs techniques. Ils sont très utilisés par les traders, de ce fait, on peut très bien voir sur les graphiques les rebonds sur les supports et les recule sur les résistances. Il faut oublier la gestion des SL et TP avec une valeur fixe. Sur internet on peut lire des stratégies avec SL=20 points etc. Il faut s'adapter au marché soit avec les supports & résistances ou avec le super-trend par exemple.

11- Le Monitoring (suivi et vérification) des EAs est obligatoire. Tous les jours je vérifie mes robots.

12- L'optimisation des paramètres et du code source est obligatoire. En effet, les courbes ne sont jamais identiques et il faut réadapter les robots au marché. Je pense sincèrement qu'un robot qui est rentable dans tous les cas sur le long terme n'existe pas.

13- Le fameux money management est primordial. En effet, il faut absolument respecter le fait de faire des trades qui mettent en danger seulement 1% de votre capital (un peu plus si vous avez peu d'argent en solde chez votre broker). Il faut vraiment être stricte et si tenir. Le premier objectif de cette expérience est de préserver son capital.

14- Ne pas utiliser les UT en dessous de 15 minutes car on ne peut rien en faire dans l'analyse technique car trop "aléatoires". Il ne faut pas prendre position proche du hasard. De plus, je suis un particulier, les spreads sont trop importants pour avoir une stratégie de "scalping" efficace. D'ailleurs, je suis preneur de vos expériences dans le domaine du scalping automatique.

Au final, après beaucoup d'essais sur ces 4 mois, ci-dessous, vous trouvez les indicateurs que j'utilise entre l'UT M15 et D1 :
-Parabolic SAR (confirmation tendance)
-RSI (point d'entrée)
-Stochastique (point d'entrée)
-Heiken Aishi (confirmation tendance)
-Volume (point d'entrée et confirmation tendance)
-Pivot/Support/Resistance (points d'entrée/sortie)
-Moving Average (confirmation tendance)

Mes questions pour la communauté :
- Que pensez-vous de cette expérience ? Y-a-t-il des analyses avec lesquelles vous êtes en désaccord ? Si oui, pourquoi et quel est votre avis ? S'il y a d'autres points que je n'ai pas encore découvert merci de les partager. Cela me fera gagner du temps :) !
- Je travaille également sur la mise en place de Deep Learning (IA) pour optimiser les probabilités des mouvements. Est-ce que certains d'entre vous ont déjà essayé cette approche dans la pratique ? Avez-vous des résultats à nous partager ?

En conclusion, les marchés ne sont pas un casino géant. Il n'y a pas de secret. C'est un métier d'être trader et je ne suis pas encore au niveau. Il faut douter en permanence et se remettre en question. La période d'apprentissage est extrêmement longue et prenante. C'est passionnant. Il y a également beaucoup de désillusion lorsque l'on débute. Je ne veux pas être trop négatif mais je vois beaucoup de commentaires de gens qui rêvent et pensent que c'est facile. C'est un domaine d'expertise et il faut travailler beaucoup. Je vois des topics sur "vivre du trading" qui donne beaucoup d'espoirs. Mais, au final, sincèrement, il y a peu de réussites concrètes sur le long terme.

Au plaisir de vous lire.
Bien cordialement,
Fabii

Re: Expérience de développement d'EAs

par Toto le Héros » 07 Déc 2018 14:01

Bonjour,
Je partage une grande partie de tes remarques et j'ai un profil similaire au tien dans le sens où j'ai commencé par du trading manuel, avant de me tourner exclusivement vers l'automatique (j'ai depuis repris un peu en manuel, avec un set-up universel exclusif). Tu peux consulter mon journal de trading qui illustre bien mon parcours si tu le lis chronologiquement.
Je suis en particulier d'accord avec toi sur : bannir les martingales, avoir toujours un SL, les EA que l'on trouve sur le net sont tjs perdants, il faut toujours comprendre son code (j'ajoute que cela est valable pour le mode de calcul tout indicateur inclus les bougies heiken ashi), faire des tests poussés, le monitoring, le money management, les UTs (mini 15').
J'ai plusieurs points de désaccords fermes :
- avoir un TP. J'ai écrit beaucoup sur ce sujet déjà. Le TP est une abhération. Une machine à perdre. Le TP traduit l'impatience à saisir des (petits) gains. On coupe sur certaines conditions, sans recours au TP.
- la spécialisation. Se limiter à une dizaine d'instruments pour des questions de spreads (j'avais établi une liste approximative), mais pas moins. L'analyse technique est universelle. Sauf à éventuellement privilégier les stratégies acheteuses sur les indices qui ont "de fait" sur le long terme tendance à monter.
- je serais curieux de voir ta démonstration du point #7. Je ne vois pas ce qui te faire conclure cela. Au contraire, je pense même que sur indice les stratégies acheteuses sont moins risquées par nature. (cf point précédent).
- je programme sur PRT (j'ai testé MT4 et 5). Sur PRT, les tests garantissent le résultat, je n'ai aucun doute à ce sujet avec la fonction "tick by tick". En revanche en effet j'ai eu de mauvaises surpriss sur MT4/5.
- un robot fiable est conçu sur un set-up qui n'exige aucune modification des paramètres dans le temps. Le robot s'adapte de part la construction du code (ex : SL/taille de positions variables suivant taille du risque, pas de TP bien sûr, etc...)

Le Deep Learning n'est pas une source d'investigation pour moi.
Le trading automatique m'a beacoup aidé à revenir faire de temps à autres du trading manuel (en étant capable de couper court et/ou laisser courrir les gains).
Le trading c'est finalement assez peu technique, mais largement "psychologique".

Re: Expérience de développement d'EAs

par Fabii » 07 Déc 2018 17:56

Bonjour,

Merci Toto le Héros d'avoir pris la peine de me lire et de m'avoir éclaircis certains points.

-Compréhension du code : En effet, l'exemple des bougies Heiken Ashi est pertinent car elles ne sont pas par défaut dans MT4. Je ne reprends jamais de code source d'autres personnes car je préfère le faire moi-même pour comprendre et simplifier au maximum (c'est une question d'efficience et de maintenance car souvent les indicateurs ne sont pas développés par des développeurs, beaucoup peuvent être simplifiés). Pour les Heiken Ashi, j'ai redéveloppé cet indicateur qui est très simple.

-Laisser courir les gains : de ce que je comprends, tu utilises des TrailingStop ou des indicateurs pour détecter une fin de tendance ou retournement pour sortir de position au bon moment. Je vais essayer d'expliquer avec un exemple concret ce qui est gênant de mon côté avec cette approche.

Exemple fictif et simplifié sur le CAC 40.
1-le point pivot est à 4950.
2-le support S1 est à 5000.
3-je détecte une hausse, j'entre sur le marché à 4960 (donc, je ne mets pas de TP sur S1)
Qu'est-ce que je fais lorsque le cours atteint 5000 points ? Je change le SL à 5000-spread ou avec une valeur fixe de -10 à 4990 ? L'idée est de sécuriser le gain sur le support S1 car il y a de forte chance que le marché recule ou corrige. Dans mon cas, je préfère clôturer sur S1 et je ne rouvre pas de position immédiatement, j'attends une cassure et que les indicateurs techniques me confirme la continuité de la hausse car S2 est souvent le plus haut de la journée et que S3 est exceptionnellement atteint. C'est une approche très défensive mais efficace et je souhaite toujours sortir rapidement du marché dans la journée. A cause du TrailingStop, tu peux perdre une dizaine de point sur chaque position gagnante sur S1 et une fois de temps en temps faire un meilleur trade jusqu'à S2 ou S3. Je ne reste pas fermé sur le sujet, je pense que le choix se fait en fonction des stratégies.

-la spécialisation : Oui, tu as raison. Je me suis limité uniquement à deux indices. Il me faut diversifier. L'analyse technique est universelle mais on doit quand même l'optimiser en fonction de l'instrument et de la forme du marché. Non ?

-Stratégie la moins risquée sur les indices (achat ou vente?): Eh bien, tu as parfaitement raison. Je suis vraiment content de ta réponse car en voulant démontrer qu'une stratégie de vente sur indice est moins risquée de mon côté, j'ai surtout démontré que tu avais raison. Ce sont bien les stratégies acheteuses qui sont moins risquées sur les indices. D'ailleurs, j'ai dû m'emmêler les pinceaux hier en rédigeant le poste car, dans mes EAs, j'ai déjà intégré une détection plus flexible sur le potentiel de hausse du marché et non sur la stratégie de vente qui est plus rigide.

-Fiabilisation des tests : En effet, il faut absolument que je tests PRT. Est-ce aussi fin que MT4 ? Quel langage d'automatisation est utilisé ?

-Optimisation set-up : Évidement mon set-up n'a pas besoin de modification sur les paramètres principaux de la stratégie et sur les positions (SL, TP, money management, gestion risque, etc.), il fait les calculs et s'adapte au marché. Par contre, je voulais parler d'optimisation sur les indicateurs techniques. Un exemple concret très simplifié, j'utilise l'indicateur RSI sur un timeframe de 9. je vais toutes les semaines ré-optimiser ce paramètre en fonction des deux derniers mois glissants. Une semaine il sera à 11, une autre à 14, etc. Je fais cela pour plusieurs paramètres techniques. Ainsi, mon set-up est souvent optimisé pour le marché actuel. Je trouve que cette optimisation est très efficace. Cette optimisation peut être automatisée mais je n'ai pas pris le temps de la faire. Donc, elle faite manuellement. Si tu as une astuce pour détecter le bon timeframe des indicateurs en fonction du marché, je suis preneur :).

Merci à toi !
Fabii

Re: Expérience de développement d'EAs

par VB6backtester » 08 Déc 2018 09:00

Bonjour, je suis assez étonné par ce que vous dites sur une asymétrie buy/sell. Perso je backteste sur le dax au tick sur 3 ans, et je me suis toujours attaché à être symétrique. Dans le cas contraire comment savoir si les résultats ne sont pas influencés simplement par les données historiques ???? Une longue période de hausse va certainement fausser un backtest.
Quoiqu'il en soit je vais refaire des tests !
Bye

Re: Expérience de développement d'EAs

par VB6backtester » 08 Déc 2018 20:25

ReBonjour à vous, après quelques re backtests sur 3 an avec mon EA sur le DAX, je confirme bien une très grande symétrie sur mes paramètres les plus importants (2 ema de signal, calculs des stop, gains min...). Donc d'accord avec vous pour beaucoup de choses, mais l'idée de traiter différemment buy/sell franchement je sais pas.
Disons que ça doit dépendre du type de trading.

Re: Expérience de développement d'EAs

par trappiste73 » 09 Déc 2018 10:57

Bonjour, il me semble que multiplier les indices et ut fait diminuer le risque. Mais ce n'est pas suffisant pour se protéger d'une flash news, genre tweet trumpesque ou flash krack. Pour çà, les solutions sont : limiter le temps dans le marché et/ou stop garanti.
Plus l'UT est grande, plus le risque est grand, à moins de prévoir des sorties dans des unités plus courtes - ce qui est certes possible mais ne règle pas tout. Idem pour l'incertitude : il est plus facile de prévoir ce qui va se passer dans les 30s que dans les 30 jours. Entre 15 min et 1 min, je ne vois pas du tout ce qui peut gêner - bien au contraire. En dessous, on bute sur la quantité et la qualité des historiques mais ce n'est pas rédhibitoire puisque à algo équivalent, le nombre d'opé va être multiplié et donc fiabiliser les tests.
Acheter ou vendre, il y aurait des différences ? Aie : ça sent l'algo directionnel qui est dangereux à piloter. Ou le biais subjectif : si on est plus à l'aise dans un sens, pourquoi pas.
Ajuster les TP et les SL, quel que soit le critère retenu, c'est séduisant mais in fine, ça ne fait que rajouter de l'incertitude à l'algo. En auto comme en manuel, la simplicité, c'est la clé. Tout le reste, ce sont des écrans de fumée qui nous éloignent de la réussite.
Le volume, c'est une donnée intéressante.
Attention,dans les backtests, il est difficile de répliquer les changements de spread liés aux horaires et/ou situation exceptionnelle (explosion de la volatilité par ex).
voili, voilà. ;)

Re: Expérience de développement d'EAs

par Euraed » 09 Déc 2018 12:55

Bonjour,

Je partage les avis du point 4 ainsi que du point 13 (pour la première et la dernière phrase).
12 Je ne sais pas. Quoiqu'il en soit, très difficile pour des rendements élevés.
6 possible
9 partiellement


Tous les autres commentaires sont issus de ton expérience personnelle, ils ont sans doute une grande valeur pratique dans ton contexte mais n'ont pour autant aucun caractère axiomatique. (Il faudrait bannir le terme "il faut" :D )

Re: Expérience de développement d'EAs

par Fabii » 10 Déc 2018 20:47

Bonjour à vous,

En premier lieu, je souhaite vous remercier tous pour nous faire partager vos expériences.

VB6Backtester/trappiste73 (analyse technique - symétrie achat/vente) : Je suis d'accord avec vos remarques, je vais préciser un peu. En effet, j'ai une symétrie parfaite pour les calculs des stops (SL), gains mini (TP), money management, etc. ce que j'appelle de mon côté les paramètres de positions. Par contre, depuis quelques semaines, j'ai dupliqué l'ensemble des indicateurs techniques pour déterminer quand rentrer sur le marché. En bref, avec un exemple simple FICTIF, si j'utilise l'indicateur RSI(14) pour déterminer un point d'entrée pour l'achat et la vente, est-ce que je peux avoir de meilleurs résultats en ayant un RSI(11) spécifique pour l'achat et un RSI(14) spécifique pour la vente ? Pourquoi penser que les mouvements d'achats et de ventes sont identiques et symétriques ? De mon côté, les backtests sont meilleurs en variant et en optimisant les paramètres des indicateurs en fonction des mouvements haussier et baissier du marché. A vrai dire, je ne sais plus trop quoi penser car dans une optique de simplification comme énoncé par trappiste73, peut-être devrais-je supprimer cette approche et me simplifier "la vie" ?

trappiste73 : Oui, il y a toujours du risque et j'applique exactement ce que tu dis sur le fait de limiter le temps sur le marché + stop garanti. Même avec cela, il y aura toujours du risque. Par contre, en analyse technique pour les indicateurs techniques automatisées en dessous de M15 cela ne paraît pas très pertinent pour entrer sur les marchés. Les spreads sont tellement élevés que lorsque je rentre sur des mouvements en dessous de M15 je ne peux pas sortir rapidement. De ce fait, le trade devient long dans le temps par rapport à l'UT et on s'approche d'une entrée "hasardeuse" car déterminée sur une UT trop courte. En dessous de M15, ce qui "tue", c'est le spread.

Euraed : Oui, tu as parfaitement raison le "il faut" ne concerne que mon expérience et merci de me le rappeler. De plus, je viens sur le Forum pour partager, "casser" mes certitudes, douter et remettre en question ce que j'apprends. C'est important dans mon processus d'apprentissage.
Pour le point 12, je parle de réoptimiser les paramètres régulièrement. Pourquoi est-ce difficile d'avoir un rendement élevé avec cette approche ?

Merci à vous.
Fabii

Re: Expérience de développement d'EAs

par Euraed » 11 Déc 2018 01:22

12 L'optimisation des paramètres et du code source est obligatoire. ...
Je pense sincèrement qu'un robot qui est rentable dans tous les cas sur le long terme n'existe pas.


J'ai tendance à croire que ce serait possible, mais je ne peux pas encore le prouver et l'affirmer, comme le clamait haut et fort Billie avant de quitter le forum. De ce point de vue, nous représentons une tendance ultra minoritaire.

Re: Expérience de développement d'EAs

par Toto le Héros » 11 Déc 2018 11:24

PRT a son langage propre et est très simple comparativement à MT4.
La notice de PRT donne de nombreux exemples de codes qui permettent de vite se familiariser.

Articles en relation
Développement algorithme HFT
par Epitaf » 03 Oct 2016 20:57 (8 Réponses)

ProRealTime

Alors partagez-le 5 fois c'est bon pour la santé