Bas et haut - page 3

 

J'ai trouvé où était le problème (avec votre aide) ;)

Merci à vous tous !

Maintenant...->TEST ! (le test arrière semble très bien)

 

Je pense que le problème est qu'il ouvre des ordres aux niveaux auxquels vous avez attaché l'EA au graphique, car Hour() renvoie le temps en Heures auquel vous l'avez attaché. Mais vous voulez utiliser cela, je pense :

TimeHour(Timecurrent())

Jetez un coup d'oeil dans la documentation pour voir ce que je veux dire...

EP

 

Si nous pouvons résoudre ce problème, alors j'ai mon Saint Graal! :D
 
ErrorProgrammer:

Je pense que le problème est qu'il ouvre des ordres aux niveaux auxquels vous avez attaché l'EA au graphique, car Hour() renvoie l'heure en Heures à laquelle vous l'avez attaché.

Cela n'aide pas vraiment à résoudre le problème de 01005379, mais je ne pense pas que ce soit correct. Par exemple, l'exécution de l'EA suivant dans le testeur de stratégie montre une valeur variable pour Hour() correspondant à l'heure simulée du courtier.


int start() {Comment("Hour: " + Hour() + "   @ " + TimeToStr(TimeCurrent(), TIME_DATE | TIME_MINUTES));}

Je pense que ce que la documentation essaie de dire est que Hour(), Minute() etc. ne changent pas pendant un appel à start(). Mais ils changent au cours de la vie de l'EA.


 
01005379:

Si nous pouvons résoudre ce problème, alors j'ai mon Saint Graal ! :D

Cette barre semble très grande. Est-ce que la même chose se produit avec d'autres ordres ? C'est peut-être dû à la volatilité de cette barre particulière.

 
fxcourt:

Cette barre semble très grande. Est-ce que la même chose se produit avec d'autres ordres ? C'est peut-être dû à la volatilité de cette barre particulière.

Maintenant, c'est la même chose avec les autres ordres. L'ordre est ouvert une barre après que la valeur soit devenue inférieure à la valeur basse. Pour l'ordre de vente, je voudrais que l'ordre soit ouvert dès que l'offre devient inférieure à la valeur basse.

 

Vous devez faire en sorte que votre code de placement d'ordre s'exécute à chaque tick. Pour le moment, il ne placera un ordre que sur l'ouverture de la barre, à condition que l'ouverture soit supérieure ou inférieure à l'entrée.

int start()

{

//à l'ouverture de la barre, récupérez le haut et le bas

{

if(got_high_and_low)

{

readytotrade = true ;

}

}

//à chaque tick, si vous êtes prêt à négocier, vérifiez que le prix d'entrée a été atteint.

if(readytotrade)

{

//achète ou vend

readytotrade = false ;

}

}

 
fxcourt:
vous devez faire en sorte que votre code de placement d'ordre s'exécute à chaque tick. pour le moment, il ne placera un ordre que sur l'ouverture de la barre, à condition que l'ouverture soit au-dessus ou au-dessous de l'entrée.

Hm, et comment je fais ça ?

 

Vous devrez restructurer votre code. Cela ne devrait pas être trop difficile. Il suffit de le diviser en deux parties. La première partie s'exécute une fois par barre pour recueillir votre entrée et d'autres données, la seconde partie surveillera l'entrée à frapper.

 
fxcourt:

Vous devez faire en sorte que votre code de placement d'ordre s'exécute à chaque tick. Pour le moment, il ne placera un ordre que sur l'ouverture de la barre, à condition que l'ouverture soit supérieure ou inférieure à l'entrée.

int start()

{

//à l'ouverture de la barre, récupérez le haut et le bas

{

if(got_high_and_low)

{

readytotrade = true ;

}

}

//à chaque tick, si vous êtes prêt à négocier, vérifiez que le prix d'entrée a été atteint.

if(readytotrade)

{

//achète ou vend

readytotrade = false ;

}

}

wuh, je suis un peu perdu en ce moment. Une aide supplémentaire serait la bienvenue ;)