![]() ![]() |
Feb 19 2007, 12:06
Post
#1
|
|
|
Member ![]() ![]() Group: Membre Actif Posts: 72 Joined: 12-January 07 Member No.: 2,386 Broker: Oanda Demo/Real: Real Leverage: 1:5 |
Bonjour,
Comme je vois régulièrement des questions sur le forum ou sur le chat concernant la programmation sous Metatrader 4 et que c’est un domaine que je connais bien, je me suis dit qu’un petit post d’infos générales sur le sujet pourrait être utile. Difficulté de programmer un « Expert Advisor » sous MT4 Comme beaucoup de choses ce n’est pas compliqué quand on connaît… Pour les gens qui connaissent le C ou le C++, apprendre MQL4 ne devrait pas être un problème. Pour ceux qui connaissent un autre langage de programmation je pense que c’est aussi pas très difficile. Si on a jamais programmé cela risque d’être difficile surtout au niveau des petites subtilités qui peuvent faire la différence. La difficulté de programmer un « Expert Advisor professionnel » n’est donc pas dans le langage lui même mais plus dans la gestion des cas d’erreurs et des cas particuliers : par exemple gestion du démarrage et arret de l’EA, cas où un EA envoit des ordres très rapprochés (scalping), cas où 2 ordres provenant de 2 EAs arrivent en même temps sur le serveur (si pas de code spécial un des 2 ordres ne sera pas exécuté) … Et le souci est que l’on ne voit pas ces problèmes avec un backtest puisqu’avec le backtest il n’y a qu’un seul EA, le serveur ne tombe jamais et les ordres sont toujours exécutés. J’ai par exemple fournit un EA très simple sur ce forum pour le croisement de MM, comme je l’ai fait rapidement pour rendre service tous ces traitements particuliers ne sont pas inclus dans le code, autrement la taille du code aurait doublé. Certaines stratégies sont plus sensibles que d’autres à ces cas aux limites, le non-traitement de ceux-ci n’est donc pas forcément critique mais c’est quelque chose qu’il faut garder en mémoire. Définition de la stratégie Je pense que c’est un très bon exercice de programmer ou faire programmer sa stratégie car cela met en lumière des points auxquels on a pas pensé. Par exemple à chaque fois que quelqu’un me demande de programmer sa stratégie il me fourni sa logique de façon assez détaillée. Malgrè cela j’ai souvent au moins une dizaine de questions sur des points de détails. En général ce sont juste des précisions qui ont été oubliées mais parfois la personne se rend compte qu’il ne s’est jamais posé la question et que sa stratégie n’est pas définie précisément. Cela a même parfois amené la personne à revoir sa stratégie C’est donc vraiment un bon exercice de clarification. Et pour les personnes qui sont « discrétionnaires » et qui pense que leur stratégie est improgrammable une bonne question à se poser est « Quels sont les facteurs qui font que cette stratégie ne serait pas programmable ? » Est-ce que la décision s’appuie sur des choses intangibles (l’humeur du moment,ce qu’on a mangé au dernier repas… je plaisante, il y a bien sur des stratégies discrétionnaires mais il y a aussi un certains nombre de traders qui sont discrétionnaires car sans réelle stratégie) où est elle basé sur quelque chose de tangible ? Dans ce cas pourquoi ne serait-ce pas programmable ? A mon avis ces reflexions peuvent aider à clarifier le concept de votre stratégie et aussi aider votre compte en banque Test d’un « Expert Advisor » Le backtest des EAs est toujours sujet à controverse. Il y a d’une part la qualité des données. Les données n’étant généralement fournies tick par tick, ces dernières sont estimées gràce aux données 1 minute. Ceci peut affecter les résultats de certaines stratégies surtout celle de scalping. Pour les stratégies sur des UT plus grande de type H1, H4 et avec des écarts entre TP et SL importants cela n’a pas d’effet. Mais il faut quand même au minimum les données M1 pour tester correctement. Le deuxième point est la sur-optimisation. C’est un large débat mais en gros il vaut mieux ne pas avoir trop de paramètres et d’indicateurs et chercher à optimiser tout ce petit monde car on arrive à une solution magnifique dans le passé mais qui ne marche pas du tout dans le présent. Donc un peu d’optimisation sur un nombre limité de paramètres est OK si cela ne change pas le concept de la stratégie. Le forward test avec les données online est toujours nécessaire. Pour ma part je teste mes EAs pendant 3 mois avant de les passer en « live ». Il faut que les résultats du forward test soient du même ordre de grandeur que ceux obtenus par le backtest. Voilà pour les infos que je voulais vous donner. Si d’autres choses me viennent à l’esprit je mettrai à jour ce post This post has been edited by jlpi: Feb 19 2007, 12:08 |
|
|
|
Feb 20 2007, 13:25
Post
#2
|
|
![]() Senior Member ![]() ![]() ![]() Group: Membre Actif Posts: 110 Joined: 26-February 06 Member No.: 724 Broker: ODL Securities Skype: larry.j.max Demo/Real: Real Leverage: 1:5 |
Salut JL,
merci pour ce post. Je ne peux que témoigner de ton travail de qualité pusique l'EA que tu m'as programmé correspond exactement à ce que j'attendais. Et effectivement l'exercice de détailler tous les paramètres pour créer l'EA est très utilie pour être sûr de ne rien avoir omis dans sa stratégie. Bons trades à tous. Larry Max |
|
|
|
May 9 2007, 18:16
Post
#3
|
|
|
Member ![]() ![]() Group: Membre Actif Posts: 12 Joined: 15-June 06 Member No.: 958 Broker: FX Demo/Real: Demo Leverage: 1:50 |
jlpi,
aurais-tu quelques exemples de "petites subtilités qui peuvent faire la différence" dont tu parles dans la 1ère partie de ton post ci-dessus ? La partie: Difficulté de programmer un « Expert Advisor » sous MT4 Mes 2 derniers messages: http://www.mataf.net/forums/Tester-Simultanement-Plus-t3502.html http://www.mataf.net/forums/Obtenir-Ea-Performant-En-t3501.html qui s'adressent plutôt aux experts MQ4 (dont tu fais partie je suppose) Merci. This post has been edited by budhax: May 9 2007, 18:19 |
|
|
|
May 10 2007, 13:50
Post
#4
|
|
|
Member ![]() ![]() Group: Membre Actif Posts: 72 Joined: 12-January 07 Member No.: 2,386 Broker: Oanda Demo/Real: Real Leverage: 1:5 |
CITATION(budhax @ May 9 2007, 20:16) [snapback]13517[/snapback] jlpi, aurais-tu quelques exemples de "petites subtilités qui peuvent faire la différence" dont tu parles dans la 1ère partie de ton post ci-dessus ? La partie: Difficulté de programmer un « Expert Advisor » sous MT4 Mes 2 derniers messages: http://www.mataf.net/forums/Tester-Simultanement-Plus-t3502.html http://www.mataf.net/forums/Obtenir-Ea-Performant-En-t3501.html qui s'adressent plutôt aux experts MQ4 (dont tu fais partie je suppose) Merci. un exemple: certains EA envoient des ordres en rafale (genre 10 en quelques secondes). En test cela pourra passer car les ordres ne sont pas vraiment transmis par le serveur. En réel, la plupart de tes ordres ne passeront pas car le serveur sera toujours en train d'éxécuter l'ordre précédent et donc pas prêt à en prendre un nouveau. Il faut donc que l'EA teste si le serveur est dispo pour prendre un nouvel ordre. |
|
|
|
Dec 28 2007, 19:05
Post
#5
|
|
|
Member ![]() ![]() Group: Membre Actif Posts: 61 Joined: 27-February 06 From: Suisse Member No.: 728 Demo/Real: Real Leverage: 1:20 |
un exemple: certains EA envoient des ordres en rafale (genre 10 en quelques secondes). En test cela pourra passer car les ordres ne sont pas vraiment transmis par le serveur. En réel, la plupart de tes ordres ne passeront pas car le serveur sera toujours en train d'éxécuter l'ordre précédent et donc pas prêt à en prendre un nouveau. Il faut donc que l'EA teste si le serveur est dispo pour prendre un nouvel ordre. Bonsoir, Auriez-vous connaissance de l'existence de librairies open source contenant des fonctions déjà programmées pour gérer ce genre de problèmes et renforcer la sécurité d'execution des ordres envoyés par un EA en MQL4 ? Cordialement. AK |
|
|
|
Feb 8 2008, 11:45
Post
#6
|
|
![]() Senior Member ![]() ![]() ![]() Group: Membre Actif Posts: 101 Joined: 18-August 07 From: Pas loin de Toulouse.... Member No.: 4,181 Broker: RTFX - IBFX Demo/Real: Real Leverage: 1:400 |
Bonjour,
ce post est très instructif, merci beaucoup!! Je suis en train de programmer mon EA (débutant dans le forex, novice en programmation, dur dur hihi!!!!) et je serais également intéressé comme AK par des sources concernant les inits/deinits d'EA. Celles que j'ai trouvé sur mql4 m'ont l'air programmées avec les pieds.... Je me suis trouvé des indicateurs simples, et qui ont l'air fiables avec le temps, mais côté init je rame un peu.... :/ Ah à ce propos, si quelqu'un peut me répondre à la question suivante ça me ferait gagner un peu de temps en prog&test. Admettons un Stochastique et une MA. Si je veux que ma MA soit calculée en fonction des datas du stochastique et NON du prix (bref l'équivalent de l'option automatique Applied from : First indicator et non price close). Comment dois-je l'indiquer dans le code de l'iMA? Style ça? sto = iSto (NULL, etc...) ma = iMA (sto, etc....) ? Euh je suis clair? Merci et bonne journée à tous. |
|
|
|
Feb 8 2008, 15:39
Post
#7
|
|
|
Member ![]() ![]() Group: Membre Actif Posts: 60 Joined: 13-September 05 Member No.: 17 Demo/Real: Demo Leverage: 1:1 |
bonjour,
Perso , j ai appris le mq4 sur le tas . Une question qu il faut se poser pour programmer une EA est: Faut il travailler les signaux a l instant T ou en cloture bougies? Ca peut changer du tout au tout le resultat de backtest d une EA. Juste une question importante parmi tant d autre. |
|
|
|
Feb 10 2008, 2:22
Post
#8
|
|
![]() Senior Member ![]() ![]() ![]() Group: Membre Actif Posts: 101 Joined: 18-August 07 From: Pas loin de Toulouse.... Member No.: 4,181 Broker: RTFX - IBFX Demo/Real: Real Leverage: 1:400 |
bonjour, Perso , j ai appris le mq4 sur le tas . Une question qu il faut se poser pour programmer une EA est: Faut il travailler les signaux a l instant T ou en cloture bougies? Ca peut changer du tout au tout le resultat de backtest d une EA. Juste une question importante parmi tant d autre. C'est noté. Tu avais des notions en programmation C ou autre avant de te lancer , où tu étais tout neuf? |
|
|
|
Feb 11 2008, 10:44
Post
#9
|
|
|
Member ![]() ![]() Group: Membre Actif Posts: 60 Joined: 13-September 05 Member No.: 17 Demo/Real: Demo Leverage: 1:1 |
bonjour,
J ai appris tout seul dans mon coin avec l'aide occasionnelle de certaine personne qui on bien voulu répondre a mes questions, d'ailleurs je les remercies chaleureusement. Je ne connaissais absolument rien en language de programmation, je savais même pas que ca existait. Aujourd'hui j arrive a combler a peut prés toutes mon imagination avec mon petit niveau de prog. A mon tour si je peus aider ....... |
|
|
|
Feb 12 2008, 20:03
Post
#10
|
|
|
Member ![]() ![]() Group: Membre Actif Posts: 72 Joined: 12-January 07 Member No.: 2,386 Broker: Oanda Demo/Real: Real Leverage: 1:5 |
bonjour,
comme je n'était pas repassé ici depuis un certain temps je vois que des anciens posts n'ont pas eu de réponse. Je vais essayer de combler ce manque. Au sujet du code open source, il n'y a pas de code libre centralisé, mais il existe des exemples d'EAs bien codés. Je conseillerais par exemple d'aller fouiner chez www.mql4.com et de lire les articles. Certains d'entre eux sont vraiment instructifs et il y aussi des exemples de code pour certaines fonctions. Je conseillerais aussi de rechercher les articles / codes de quelqu'un ayant le pseudo de codersguru. Il a fait un bon tutorial sur MQL4 et des exemples de codes înteressants. damtoul: sur la partie init et deinit d'un EA, c'est en général simple. Souvent ces functions sont mêmes inexistantes. Tout dépend de la stratégie et de la gestion par exemple de la reprise après déconnexion mais tu peux dans un premier temps les laisser vide et voir si tu as des soucis. Sur la partie MA de stoch ce n'est malheureusement pas si simple. A mon avis tu dois stocker des données du stoch dans un tableau et ensuite appeler iMAOnArray(...). |
|
|
|
![]() ![]() |
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
Similar Topics
| Topic Title | Replies | Topic Starter | Views | Last Action | |||
|---|---|---|---|---|---|---|---|
![]() |
10 | lev10 | 3,591 | 29th October 2005 - 12:39 Last post by: lev10 |
|||
![]() |
1 | thierrybl | 1,927 | 23rd September 2005 - 9:37 Last post by: thierrybl |
|||
![]() |
0 | danyja | 1,565 | 25th September 2005 - 10:02 Last post by: danyja |
|||
![]() |
81 | LeGlac | 24,610 | 6th May 2007 - 17:23 Last post by: LeGlac |
|||
![]() |
16 | Odinho | 7,404 | 1st April 2008 - 15:55 Last post by: jlpi |
|||
| Lo-Fi Version | Time is now: 8th January 2009 - 7:49 |
Chat
Forex Forum
English
Français
- Arnaud Jeulin: Req Info
Jan 8, 5:59 GMT - forexamericas: Adp Jobs Report Sets The Mood In Wall Street.
Jan 8, 0:27 GMT - oharas: Gold Trading
Jan 7, 22:36 GMT - oharas: Does The Market Trade Against You?
Jan 7, 22:22 GMT - j06smith: Forex Analysis
Jan 7, 21:13 GMT - karinpero: Arnaud Okay, Can You Answere How Many Trades You Do Per Week Just Take A Guess
Jan 7, 21:02 GMT - Arnaud Jeulin: Technical Analysis
Jan 7, 16:47 GMT - andrufx: General Information To Help Traders
Jan 7, 16:26 GMT - Arnaud Jeulin: Arnaud You Say You Use Visual Support Resistance Please Explain In Detail What That Is
Jan 7, 16:12 GMT - AlbertG1: Indicators
Jan 7, 15:35 GMT
- Arnaud Jeulin: Ma Technique ...
Jan 8, 5:52 GMT - damtoul: Soyez Au Parfum De La Richesse Avec Le "sniper Forex"
Jan 7, 19:39 GMT - Arnaud Jeulin: Inflation De 4 Millions De % Au Zimbabwe
Jan 7, 16:37 GMT - damtoul: Eur/gbp
Jan 7, 16:34 GMT - raf: Est-ce Programmable Sur Mt4?
Jan 7, 14:17 GMT - Tribuforex: Pyramide De Gann
Jan 7, 9:22 GMT - Tribuforex: Résistances Et Supports
Jan 7, 9:21 GMT - jctrader: Enquête Chez Crown Forex
Jan 5, 22:12 GMT - GAJELO: Swingtrading sur le Forex
Jan 5, 16:18 GMT - damtoul: Euro Usd
Jan 5, 15:41 GMT





Feb 19 2007, 12:06










