Aide au codage - page 40

 

Merci mladen,

J'ai terminé mon code maintenant (grâce à votre aide) et il fonctionne vraiment bien. J'ai fait le code en me basant sur mon trading manuel des graphiques H4 et D1 au cours des deux dernières années. J'envisage de diversifier mes risques et d'avoir deux comptes, l'un négociant les graphiques à long terme, l'autre les graphiques à court terme avec des comptes séparés. Je cherche donc à adapter ce code, par exemple pour les graphiques M5 et M15. Je sais que les stratégies peuvent fonctionner sur une échelle de temps mais pas sur une autre, et j'ai remarqué que les graphiques à court terme sont beaucoup plus aléatoires, ne respectent pas beaucoup le S/R et sont sujets à de longues périodes de consolidation.

Je me demandais si vous aviez des conseils concernant les stratégies à plus court terme - j'envisage notamment de faire en sorte que l'EA vérifie plusieurs symboles pour trouver les meilleures opportunités plutôt qu'un seul, et peut-être aussi d'ajouter une MVA en créant un total de 3 pour la stregth of trend sur une période plus élevée, et peut-être d'ajouter une section de code pour arrêter le trading si l'on se trouve dans une zone de consolidation (par exemple si les 50 dernières barres sont comprises dans une fourchette de 50 pip). On pourrait également n'effectuer des transactions que si le prix est inférieur ou supérieur à la ligne médiane d'un canal donchien et même vérifier la hauteur des mèches.

 

...

De tous, juste un "avertissement" : il n'y a aucun moyen de back-tester les EAs de trading multi-symboles dans metatrader. Donc, si vous envisagez de le faire, la seule façon d'obtenir des résultats fiables est d'effectuer de longs tests en amont.

Même dans le cadre d'un test normal, le forward testing est la seule forme vraiment acceptable (en raison de certains problèmes avec le back-testing de metatrader : absence totale d'historique de Bid, Ask et implicitement de spread, absence de swaps, de commissions et de tout ce qui est lié à des choses similaires, ticks simulés d'une manière plutôt étrange, ... et ainsi de suite, et ainsi de suite ... ) mais les gens le font rarement car cela demande du temps et du dévouement. Si vous essayez vraiment de développer un système dont vous voulez dépendre, seuls les tests avancés peuvent être envisagés.

Ce serait donc le seul conseil. En ce qui concerne les stratégies, il existe des milliers de façons de trader et beaucoup de gens en vivent, donc il n'y a pas qu'une seule façon de faire. Essayez vos propres méthodes et en testant, vous pourriez même découvrir que vous avez déjà un système gagnant.

crsnape@btinternet.com:
Merci mladen,

J'ai terminé mon code maintenant (grâce à votre aide) et il fonctionne vraiment bien. J'ai créé ce code en me basant sur mes opérations manuelles sur les graphiques H4 et D1 au cours des deux dernières années. J'envisage de diversifier mes risques et d'avoir deux comptes, l'un négociant les graphiques à long terme, l'autre les graphiques à court terme avec des comptes séparés. Je cherche donc à adapter ce code, par exemple pour les graphiques M5 et M15. Je sais que les stratégies peuvent fonctionner sur une échelle de temps mais pas sur une autre, et j'ai remarqué que les graphiques à court terme sont beaucoup plus aléatoires, ne respectent pas beaucoup le S/R et sont sujets à de longues périodes de consolidation.

Je me demandais si vous aviez des conseils concernant les stratégies à plus court terme - certaines choses que j'envisage sont de faire en sorte que l'EA vérifie plusieurs symboles pour les meilleures opportunités plutôt qu'un seul, et aussi peut-être d'ajouter une MVA créant un total de 3 pour la stregth de la tendance sur l'échelle de temps supérieure, et peut-être d'ajouter une section de code pour arrêter le trading si dans une zone de consolidation (disons si les 50 dernières barres sont entre une gamme de 50 pip). On pourrait également n'effectuer des transactions que si le prix est inférieur ou supérieur à la ligne médiane d'un canal donchien et même vérifier la hauteur des mèches.
 

Merci mladen pour les conseils.

J'ai un problème étrange avec mon EA. Lorsque je le backtest sur le graphique H4, il fonctionne comme il le devrait. Cependant, lorsque je le backtest sur le H1, il charge les entrées (TimingChart = 240 et TrendChart 1440) comme indiqué dans le journal au lieu de TimingChart 60 et TrendChart 240 (j'ai changé les variables externes dans le code et je me suis également assuré que les entrées sont correctes lorsque j'attache l'EA au graphique. Pourtant, il continue à charger les mauvaises échéances). Toute une série de problèmes sont soulevés dans le journal, notamment l'erreur OrderModify 1 et l'erreur ordersend 130, des divisions nulles, qui n'existent pas lorsque je teste sur le graphique H4. Je n'ai pas modifié le code entre les tests, sauf pour changer les variables externes et je ne peux que supposer que ce sont les entrées qui créent les erreurs. PS (pour l'erreur 130, mon courtier a un SL minimum de 0).

Je tiens à préciser que j'ai attaché mon EA au graphique H1 juste pour être sûr et que j'ai également sélectionné H1 dans le menu déroulant du testeur de stratégie. J'ai également fermé MT4 et l'ai rechargé pour voir si cela résolvait le problème mais malheureusement non.

Avez-vous une idée ?

 

Quelqu'un pourrait-il me dire que si je traite un ordre et que je ne veux pas entrer un niveau de takeprofit (ou tout autre paramètre d'ailleurs), dois-je simplement insérer 0 ?

Qu'en est-il de OrderModify() si je ne veux pas changer une des entrées, dois-je mettre OrderStopLoss() par exemple ? Et si aucun niveau de stoploss n'a été entré dans l'ordre, est-ce que cela reste OrderStopLoss() ou est-ce que quelque chose d'autre est inséré ?

Merci.

 

...

En ce qui concerne les paramètres take profit, stop loss, slippage et nombre magique, oui.

Certains paramètres ont différentes façons d'être évités : la couleur 0 par exemple est noire, donc vous devez utiliser CLR_NONE à cet endroit. De même, si une chaîne de caractères est requise, utilisez NULL (plus facile à repérer et c'est une façon habituelle de le faire dans Metatrader).

crsnape@btinternet.com:
Bonjour, quelqu'un pourrait-il me dire que si je traite un ordre et que je ne veux pas entrer un niveau de takeprofit (ou tout autre paramètre d'ailleurs), dois-je simplement insérer 0 ?
 

Bonjour mladen, avec OrderModify, si je veux garder l'entrée originale selon l'OrderSend, dois-je entrer, par exemple avec le stoploss, OrderStopLoss() ? Et si aucun stoploss n'a été saisi dans l'OrderSend, dois-je insérer 0 ou encore OrderStopLoss() ?

Merci

 

S'il n'y avait pas d'ordre stop loss initialement l'OrderStopLoss() retournera 0, donc cela revient au même

crsnape@btinternet.com:
Bonjour mladen, avec OrderModify, si je veux garder l'entrée originale selon l'OrderSend, dois-je entrer, par exemple avec le stoploss, OrderStopLoss() ? Et si aucun stoploss n'a été saisi dans l'OrderSend, dois-je insérer 0 ou toujours OrderStopLoss() ? Merci.
 

Le slippage dans le contexte de la fin des ordres est-il la valeur du spread?

 

Je remarque que le slippage est le slippage maximum autorisé dans le livre MQL4. Un code d'écart maximal est-il écrit séparément ?

 

...

Non

Il s'agit d'un slippage maximal en prix que vous (l'utilisateur) acceptez de la part du courtier lors de l'exécution de l'ouverture de l'ordre.

Un exemple :

prix 1.0000, slippage autorisé 0, l'ordre doit être ouvert à 1.0000 ou, s'il ne peut être ouvert à ce prix exact, vous recevrez une requote

prix 1,0000, slippage autorisé 3, l'ordre peut être ouvert n'importe où entre 0,9997 et 1,0003.

crsnape@btinternet.com:
Dans le contexte des ordres, le slippage est-il la valeur du spread ?