Comment coder ? - page 307

 

...

Oui, vous avez bien compris

En ce qui concerne le paramétrage de fasle : mql est un langage de type C/C++, ce qui signifie que false == 0 et true == 1. Vous pouvez donc utiliser cette méthode. Vous ne pouvez pas déclarer le type des variables globales puisqu'elles sont exclusivement doubles, mais en utilisant les voies supérieures, vous pouvez les utiliser comme si elles étaient booléennes.

crsnape@btinternet.com:
Ahh... Je vois. Parce que les Variables Globales enregistrent leurs valeurs en mémoire. Donc, comme vous le dites, lorsqu'il termine le backtesting et qu'il est à 5000, cette valeur est sauvegardée en mémoire même si le backtesting est relancé, donc il ne retournera jamais faux parce que BarsGV n'est pas inférieur à 5000 ? Jeez, c'est profond.

Et aussi, s'il génère une erreur, il met HasOrderedGV à false pour pouvoir continuer avec le reste du code ?

Est-ce que je vous ai bien compris ?

BTW- est-ce autorisé ?

GlobalVariableSet(HasOrderedGV, false) ;

Parce que dans le MQL4 Book il est dit :

datetime GlobalVariableSet([/TD] [TD]string name, double value)
La deuxième valeur dans mon instance est bool et non double ?
 

Il fonctionne à nouveau. C'est génial.

Merci.

 

Ou c'était...

J'ai mis mes dates de test habituelles qui sont 04.01.2011- 20.07.2012. Cela a bien fonctionné hier soir lorsque j'ai inséré la BarsGV dans init(), mais lorsque je l'ai testé ce matin sans faire aucun changement, il a placé un seul ordre le 17.01.2011. Puis je l'ai testé à nouveau 5 minutes plus tard, sans faire aucun changement et il a retourné environ 30 ordres du 19.01.2011- 21.04.2011 !

En fait, il fonctionne comme il le devrait, mais se termine avant la date de fin que j'ai spécifiée. Il n'y a pas d'erreurs dans le journal, il fait mon print() comme il le devrait, etc. Mes critères d'entrée devraient développer des transactions jusqu'au 20.07.2012.

Il semble vraiment capricieux et je ne peux que supposer que cela a à voir avec ma GlobalVariable. Qu'en pensez-vous ?

 

Voici mon journal :

23.07.2012 09:08:16 21.03.2011 16:18 Test : prise de profit n°2 à 1.42100 (1.42100 / 1.42125)

2012.07.23 09:08:15 2011.03.04 14:39 Testeur : prise de profit n°1 à 1.40040 (1.40043 / 1.40068)

2012.07.23 09:08:14 2011.02.04 13:39 Testeur : stop loss #3 à 1.35700 (1.35699 / 1.35724)

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Ticket numéro 3 Symbole EURUSD Prix 1.3718 SL 1.357 TP 0

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un niveau de prise de profit... avec succès.

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : modifier #3 acheter 0.01 EURUSD à 1.37175 sl : 1.35700 tp : 1.41600 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : Position de prise de profit calculée avec succès

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : Ordre placé avec succès

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un ordre d'achat...

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : open #3 buy 0.01 EURUSD at 1.37175 sl : 1.35700 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : La taille de la position a été calculée avec succès en utilisant le pourcentage de risque dérivé.

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : Le pourcentage de risque est prêt à être utilisé pour le calcul des lots.

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Ordre précédent en profit. Risque de 3% alloué

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Ticket numéro 2 obtenu pour le dernier ordre ouvert.

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Ticket numéro 2 obtenu pour le dernier ordre ouvert

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Vérification des critères d'achat... réussie. Ordre prêt à être placé

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Ticket numéro 2 Symbole EURUSD Prix 1.36 SL 1.3396 TP 0

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un niveau de prise de profit... avec succès.

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : modify #2 buy 0.01 EURUSD at 1.35995 sl : 1.33960 tp : 1.42100 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Position de prise de profit calculée avec succès

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : Ordre placé avec succès

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un ordre d'achat...

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : open #2 buy 0.01 EURUSD at 1.35995 sl : 1.33960 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : La taille de la position a été calculée avec succès en utilisant le pourcentage de risque dérivé.

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Le pourcentage de risque est prêt à être utilisé pour le calcul des lots.

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Ordre précédent en profit. Risque de 3% alloué

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Ticket numéro 1 obtenu pour le dernier ordre ouvert.

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Ticket numéro 1 obtenu pour le dernier ordre ouvert

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Vérification des critères d'achat... réussie. Ordre prêt à être placé

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : Numéro de ticket 1 Symbole EURUSD Prix 1.3442 SL 1.3254 TP 0

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un niveau de prise de profit... avec succès.

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : modify #1 buy 0.01 EURUSD at 1.34415 sl : 1.32540 tp : 1.40040 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : Position de prise de profit calculée avec succès

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : Ordre placé avec succès

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un ordre d'achat...

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : open #1 buy 0.01 EURUSD at 1.34415 sl : 1.32540 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : La taille de la position a été calculée avec succès en utilisant le pourcentage de risque dérivé.

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : Le pourcentage de risque est prêt à être utilisé pour le calcul des lots.

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : Aucun ordre précédent identifié. Risque de 1% alloué

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : Numéro de ticket -1 obtenu pour le dernier ordre ouvert.

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : Vérification des critères d'achat... réussie. Ordre prêt à être placé

2012.07.23 09:08:12 H4 Période EA entrées : MagicNumber=42 ; RiskRewardRatio=3 ; D1SlowMAPeriod=200 ; D1FastMAPeriod=50 ; FastMACDPeriod=12 ; SlowMACDPeriod=26 ; SignalPeriod=9 ; DNCPeriod=120 ; SL_Period=10 ;

Il fonctionne comme une horloge mais pour une raison quelconque, il décide d'arrêter de placer des ordres après une certaine période de temps...

 

...

Désolé,

Mais ces données ne sont pas suffisantes pour dire ce qui se passe dans votre EA. Comme je l'ai dit plusieurs fois, sans le code tout ce que je peux faire est de deviner, et à partir des données ci-jointes, je ne peux même pas deviner...

crsnape@btinternet.com:
Voici mon journal :

2012.07.23 09:08:16 2011.03.21 16:18 Testeur : prise de profit #2 à 1.42100 (1.42100 / 1.42125)

2012.07.23 09:08:15 2011.03.04 14:39 Testeur : prise de profit n°1 à 1.40040 (1.40043 / 1.40068)

2012.07.23 09:08:14 2011.02.04 13:39 Testeur : stop loss #3 à 1.35700 (1.35699 / 1.35724)

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Ticket numéro 3 Symbole EURUSD Prix 1.3718 SL 1.357 TP 0

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un niveau de prise de profit... avec succès.

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : modifier #3 acheter 0.01 EURUSD à 1.37175 sl : 1.35700 tp : 1.41600 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : Position de prise de profit calculée avec succès

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : Ordre placé avec succès

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un ordre d'achat...

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : open #3 buy 0.01 EURUSD at 1.37175 sl : 1.35700 ok

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : La taille de la position a été calculée avec succès en utilisant le pourcentage de risque dérivé.

2012.07.23 09:08:14 2011.02.01 04:00 H4 Period EA EURUSD,H4 : Le pourcentage de risque est prêt à être utilisé pour le calcul des lots.

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Ordre précédent en profit. Risque de 3% alloué

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Ticket numéro 2 obtenu pour le dernier ordre ouvert.

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Ticket numéro 2 obtenu pour le dernier ordre ouvert

2012.07.23 09:08:14 2011.02.01 04:00 H4 Période EA EURUSD,H4 : Vérification des critères d'achat... réussie. Ordre prêt à être placé

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Ticket numéro 2 Symbole EURUSD Prix 1.36 SL 1.3396 TP 0

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un niveau de prise de profit... avec succès.

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : modify #2 buy 0.01 EURUSD at 1.35995 sl : 1.33960 tp : 1.42100 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Position Take profit calculée avec succès

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : Ordre placé avec succès

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un ordre d'achat...

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : open #2 buy 0.01 EURUSD at 1.35995 sl : 1.33960 ok

2012.07.23 09:08:13 2011.01.21 20:00 H4 Period EA EURUSD,H4 : La taille de la position a été calculée avec succès en utilisant le pourcentage de risque dérivé.

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Le pourcentage de risque est prêt à être utilisé pour le calcul des lots.

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Ordre précédent en profit. Risque de 3% alloué

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Ticket numéro 1 obtenu pour le dernier ordre ouvert.

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Ticket numéro 1 obtenu pour le dernier ordre ouvert

2012.07.23 09:08:13 2011.01.21 20:00 H4 Période EA EURUSD,H4 : Vérification des critères d'achat... réussie. Ordre prêt à être placé

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : Numéro de ticket 1 Symbole EURUSD Prix 1.3442 SL 1.3254 TP 0

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un niveau de prise de profit... avec succès.

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : modify #1 buy 0.01 EURUSD at 1.34415 sl : 1.32540 tp : 1.40040 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : Position de prise de profit calculée avec succès

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : Ordre placé avec succès

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : L'EA tente de placer un ordre d'achat...

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : open #1 buy 0.01 EURUSD at 1.34415 sl : 1.32540 ok

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : La taille de la position a été calculée avec succès en utilisant le pourcentage de risque dérivé.

2012.07.23 09:08:13 2011.01.19 04:00 H4 Period EA EURUSD,H4 : Le pourcentage de risque est prêt à être utilisé pour le calcul des lots.

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : Aucun ordre précédent identifié. Risque de 1% alloué

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : Numéro de ticket -1 obtenu pour le dernier ordre ouvert.

2012.07.23 09:08:13 2011.01.19 04:00 H4 Période EA EURUSD,H4 : Vérification des critères d'achat... réussie. Ordre prêt à être placé

2012.07.23 09:08:12 H4 Période EA entrées : MagicNumber=42 ; RiskRewardRatio=3 ; D1SlowMAPeriod=200 ; D1FastMAPeriod=50 ; FastMACDPeriod=12 ; SlowMACDPeriod=26 ; SignalPeriod=9 ; DNCPeriod=120 ; SL_Period=10 ;

Il fonctionne comme une horloge mais pour une raison quelconque, il décide d'arrêter de passer des commandes après une certaine période de temps...
 

Bonjour mladen, j'ai joint le fichier. J'espère que je l'ai bien écrit pour qu'il ait un sens !

Dossiers :
 

...

D'après ce que je vois dans le code : les barres comptées (la fonction IndicatorCounted()) ne fonctionnent pas dans les EAs (je suppose que vous l'utilisez puisque le code ne contient pas la définition de CountedBars).

Elle ne peut fonctionner que dans les indicateurs

crsnape@btinternet.com:
Bonjour mladen, j'ai joint le fichier. J'espère que je l'ai écrit correctement pour qu'il ait un sens !
 

Désolé mladen, je ne savais pas ce que vous vouliez dire par la fonction CountedBars car je ne l'ai pas utilisée dans mon code, donc j'ai téléchargé le fichier que j'avais posté et je l'ai ouvert et il est complètement différent de celui que j'ai joint. C'est bizarre ?

J'ai bien joint le bon fichier, est-ce parce que j'ai un cadenas à côté du fichier sur mon ordinateur - c'est tout ce à quoi je pense ?

Vous avez dû vous demander ce qui se passait quand vous avez ouvert ce code, car il n'y a presque rien dedans.

 

...

Je faisais référence à cette partie du code

if (Bars > CountedBars)

CountedBars = Bars

else

return (-888);

Et je ne vois pas du tout où CountedBars est déclaré (j'ai même échoué à compiler ce code - et pas seulement à cause de l'absence de déclaration pour cette variable)

crsnape@btinternet.com:
Désolé mladen, je ne savais pas ce que vous vouliez dire par la fonction CountedBars car je ne l'ai pas utilisé dans mon code, donc j'ai téléchargé le fichier que j'avais posté et je l'ai ouvert et il est complètement différent de celui que j'ai joint. C'est bizarre ?

J'ai certainement joint le bon fichier, est-ce parce que j'ai un cadenas à côté du fichier sur mon ordinateur - c'est tout ce à quoi je pense ?

Vous avez dû vous demander ce qui se passait quand vous avez ouvert ce code, car il n'y a presque rien dedans.
 

Désolé mladen, le code que vous avez visualisé via le fichier que j'ai joint est complètement erroné - il ne ressemble en rien à mon code actuel bien que j'aie joint le bon fichier (j'ai vérifié deux fois le nom du fichier).

Tout ce que je peux penser, c'est que le fichier sur lequel je travaille a un cadenas à côté de lui sur mon système. Je ne sais pas ce que c'est ou ce qu'il fait. Des idées ?

PS- c'est mon propre EA car j'ai utilisé l'assistant de création d'EA et il y a mon nom en haut à côté du copyright,

Raison: