Programmation D'ea Sur Metatrader 4 - Forex Forum

2 Pages V   1 2 >  
Reply to this topicStart new topic
> Programmation D'ea Sur Metatrader 4
jlpi
post 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 biggrin.gif
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 rolleyes.gif

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
Go to the top of the page
 
+Quote Post
LarryMax
post 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
Go to the top of the page
 
+Quote Post
budhax
post 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) mataf_wink.gif

Merci.

This post has been edited by budhax: May 9 2007, 18:19
Go to the top of the page
 
+Quote Post
jlpi
post 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) mataf_wink.gif

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.
Go to the top of the page
 
+Quote Post
AK
post 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



Citation (jlpi @ May 10 2007, 13:50) *
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
Go to the top of the page
 
+Quote Post
damtoul
post 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. mataf_wink.gif

Go to the top of the page
 
+Quote Post
beber
post 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.



Go to the top of the page
 
+Quote Post
damtoul
post 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



Citation (beber @ Feb 8 2008, 15:39) *
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é. mataf_wink.gif

Tu avais des notions en programmation C ou autre avant de te lancer , où tu étais tout neuf? tongue.gif
Go to the top of the page
 
+Quote Post
beber
post 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 .......





Go to the top of the page
 
+Quote Post
jlpi
post 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(...).
Go to the top of the page
 
+Quote Post

2 Pages V   1 2 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Collapse

> Similar Topics

    Topic Title Replies Topic Starter Views Last Action
No New Posts   10 lev10 3,591 29th October 2005 - 12:39
Last post by: lev10
No New Posts   1 thierrybl 1,927 23rd September 2005 - 9:37
Last post by: thierrybl
No New Posts   0 danyja 1,565 25th September 2005 - 10:02
Last post by: danyja
No new   81 LeGlac 24,610 6th May 2007 - 17:23
Last post by: LeGlac
No new   16 Odinho 7,404 1st April 2008 - 15:55
Last post by: jlpi

Lo-Fi Version Time is now: 8th January 2009 - 7:49

Welcome Guest ( Log In | Register )

Chat

Forex Forum

English
Français

Economic calendar

[Full Economic calendar]