Comment spécifier votre stratégie de trading à un développeur

 

Depuis la création du service de programmation de Trading Automatique, nous avons travaillé avec de nombreux traders différents et nous avons fait le constat que la phase de spécification du système est souvent la plus délicate, voire la plus longue. Pour éviter les malentendus, nous avons mis en place un système de formulaire à remplir pour aider le trader à formuler sa demande, mais ceci n’est pas toujours efficace. Voici donc un petit article dont la lecture est conseillée avant de réaliser votre demande de programmation.

Tout d’abord, ayez bien à l’esprit que le programme va être codé par une personne qui n’a initialement pas la moindre idée de votre stratégie. Vous devriez donc spécifier tous les petits détails : comme les paramètres des indicateurs, la distance des ordres stops, le nombre maximal de positions ouvertes, l’algorithme de trailing stop, etc. Vos spécifications doit contenir la description de la marche à suivre en fonction de chaque évènement significatif : activation d’un ordre stop, apparition d’un signal d’entrée lorsqu’une position est déjà ouverte, que faire lors du redémarrage d’un EA après une déconnexion, etc.

Vous devriez comprendre que votre ordinateur ne peut ne deviner, ni assumer des décisions indépendantes. Il tradera seulement en fonction de vos règles. Si une situation non prévue par votre algorithme survient, votre EA ne fera rien.

Je sens bien que vous êtes en train de vous dire que ceci est logique et que vous l’avez bien compris. Pourtant ce n’est pas ce que nous observons en pratique. Prenons donc un exemple tiré de cet article disponible sur MQL4.com .

C’est un échange typique bien que largement exagéré pouvant survenir lorsqu’un trader commande un EA à un développeur qui n’ira pas plus loin que les spécifications fournies. Bien évidemment, nous ne réagissons pas comme ça et nous demanderons les détails supplémentaires. Mais le but ici est d’exagérer les erreurs pour les mettre en valeur. N’oubliez pas qu’au final, une spécification bien faite dès le départ permet de faire gagner du temps et donc de l’argent à la fois au trader et au développeur.

 

Trader :

Bonjour! Je veux commander un EA.
L’EA doit ouvrir une position au croisement de la MM(9) et MM(18). Si la moyenne rapide croise vers le haut la moyenne lente, une position Buy doit être ouverte. Et vice versa.
Combien ça coute?

 

Développeur :

Pour vous donner un devis, j’ai besoins des spécifications détaillées. Je dirais environ xx euros en fonctions de ce que j’ai là.

 

Trader :

Je vous ai déjà tout détaillé dans mon mail précédent. L’EA doit ouvrir une position au croisement de la MM(9) et MM(18). Si la moyenne rapide croise vers le haut la moyenne lente, une position Buy doit être ouverte. Et vice versa.

 

Développeur :

OK, voici votre EA.

 

Trader :

C’est quoi ce travail? Ce n’est pas un EA ça! Pourquoi il y a autant de positions ouvertes et jamais clôturées. Etes vous réellement un programmeur?

 

Développeur :

Le nombre de positions ouvertes correspond au nombre de croisements. Testez votre EA en mode visuel du backtest et vous verrez bien qu’une position est ouverte à chaque croisement.Si le croisement est vers le haut, une position BUY est ouverte, si le croisement est vers le bas c’est une position SELL. Votre spécification ne dit rien sur la fermeture des ordres.

 

Trader :

J’ai oublié de vous le dire: si il y a une position ouverte, elle devrait être fermée lors d’un croisement inverse. Seulement une position peut être ouverte à un moment donnée. Et pour chaque position un stop loss devrait être placé à une distance paramétrable.

 

Developpeur :

OK, ceci est beaucoup plus clair. Voici la nouvelle version.

 

Trader :

Pourquoi il y a une position Buy ouverte ici? Il n’y a pas de croisement!

Developpeur :

Il y avait bien un croisement mais il a disparu. Le graphique ne reflète que les valeur des indicateurs sur les barres fermées et vous devez regarder le graphique en temps réel pour voir évoluer au fur et à mesure la valeur de l’indicateur sur la dernière barre. Croyez moi, il y avait bel et bien une intersection au moment de l’ouverture de la barre.

Si vous le souhaitez, nous pouvons modifier l’EA pour qu’il prenne en compte la valeur des indicateurs seulement à la clôture des bougies. De cette manière, tous les signaux seront visibles sur le graphique.


Trader :

Essayons.
Et puis je optimiser les valeurs des moyennes mobiles, des stop loss et take profit?


Developpeur :

Voici la troisième version :
– la recherche des signaux est réalisée sur les bougies clôturées (1ère et 2 ème)
– les paramètres des moyennes mobiles, stop loss et take profit sont désormais tous des paramètres à part entière que vous pouvez modifier et optimiser comme bon vous semble.


Trader :

Maintenant ça ressemble à ce que je désirais réellement. Mais quand je démarre plusieurs EAs, seulement l’un des deux trade. Et de temps en temps ils ferment les positions des autres EAs!


Developpeur :

Dans cette quatrième version j’ai ajouté la séparation des ordres en fonction du magic number. Si vous démarrez plusieurs EAs sur une même paire, mettez une valeur de magic number différente pour chaque EA.


Trader :

C’est enfin parfait.

 

Pour conclure cet exemple, voici ce que doivent être les spécifications pour que le programmeur fournisse l’équivalent de la quatrième version au premier coup (faisant économiser donc au passage de l’argent au trader) :

 

  • L’EA devrait contrôler seulement ses positions et ne devrait pas interagir avec les positions ouvertes manuellement.
  • Si il n’y a pas une position en cours :
    • si la MM courte croise à la hausse la MM lente, une position BUY est ouverte;
    • si la MM courte croise à la baisse la MM lente, une position SELL est ouverte;
  • Si il y a une position ouverte par l’EA :
    • position BUY:
      • si la MM rapide croise la MM longue à la baisse, la position Buy est cloturée et une position Sell est ouverte.
    • position SELL:
      • si la MM rapide croise la MM longue à la hausse, la position Buy est cloturée et une position Sell est ouverte.
  • Les paramètres des MM (période, etc) doivent être des paramètres modifiables
  • Les valeurs des indicateurs doit être calculées en fonction du timeframe affiché par le graphique.
  • La tailles des positions est déterminée par un paramètre modifiable
  • Les stop loss et take profit sont placés à l’ouverture de l’ordre et leur valeur doit être modifiable par paramètres.
  • Il devrait y avoir un paramètre permettant d’activer ou de désactiver les EAs

 

Afin d’aider ce processus de spécification nous fournissons un formulaire à remplir. Si toutefois, même aidé par notre formulaire, écrire sur papier et mettre en forme l’ensemble des règles de votre programme de trading vous semble insurmontable ou que vous avez des questions, n’hésitez pas à nous contacter. Nous ne sommes pas des programmeurs robots tel que décrit dans cet exemple et du moment que vous avez compris le message de cet article, nous serons heureux de travailler avec vous pour vous aider à y voir plus clair.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>