Fermeture des demi-lots. - page 11

 

DomGilberto: C) Not sure what difference this makes?

Identique à A). Si le TP est nul, vous n'avez pas effectué la première clôture. Définissez le TP et effectuez ensuite la clôture partielle.
 
Ok - Je suis sur le point de réussir (j'ai juste noté les choses que je dois corriger / comment / et la logique appliquée)

Un point sur lequel j'ai du mal est la façon dont je vérifie chaque tick UNE FOIS que l'OP_BUYSTOP a été déclenché en un OP_BUY. Pour l'instant, je vais continuer à placer une transaction et à faire des fermetures partielles - uniquement parce que je suis sûr d'avoir presque réussi ?

J'ai vraiment apprécié la contribution de ce fil de discussion - il m'a beaucoup aidé à comprendre :) alors merci encore pour votre temps !
 
DomGilberto:
Ok - Je me rapproche de la base (j'ai juste écrit les choses que je dois corriger / comment / et la logique appliquée).

Un point sur lequel j'ai du mal est la façon dont je vérifie chaque tick ONCE que l'OP_BUYSTOP a été déclenché en un OP_BUY.

Vous ne pouvez pas, vous devez vérifier à chaque tick si l'OP_BUYSTOP a déclenché un OP_BUY... mais ce que vous pouvez faire, c'est vérifier si vous avez des OP_BUYs, si vous n'en avez pas, vous pouvez simplement retourner(0) ; et éviter le reste du code.

Est-ce que cela peut aider ?

 
Attendez, je ne peux donc pas vérifier chaque tick? Je veux m'assurer que la clôture partielle est fermée dès que l'offre est == au prix que je veux ? Pour l'instant, elle est fermée si l'offre == le prix de sortie sur une base horaire - ce que vous avez repéré avec "IfIsNewCandle" ? Ce qui veut dire que c'est une façon vraiment drôle et étrange de le fermer...

Disons que mon "OP_BUYSTOP" s'est déclenché en un "OP_BUY", puis-je alors vérifier chaque tick pour que ma fonction OrderClose() se ferme au prix désiré dès que l'offre est == au prix de sortie spécifié ?
 
DomGilberto:

Disons que mon "OP_BUYSTOP" s'est déclenché en un "OP_BUY", puis-je alors vérifier chaque tick pour que ma fonction OrderClose() ferme au prix désiré dès que l'offre est == au prix de sortie spécifié ?
Oui, vous DEVEZ vérifier chaque tick... mais ce que je disais, c'est que vous n'avez pas besoin de tout faire pour chaque tick... vous avez dit "comment je vérifie chaque tick UNE FOIS que l'OP_BUYSTOP a été déclenché en OP_BUY." ce que je voulais dire, c'est que vous ne pouvez pas seulement vérifier sur chaque tick UNE FOIS que l'OP_BUYSTOP devient un OP_BUY, vous devez vérifier si cela s'est produit sur chaque tick.
 
Ah, oui je t'ai eu - mon erreur. J'ai mal lu ce que tu as écrit.

Je ne sais pas comment faire. Pouvez-vous m'indiquer la bonne direction ?
 
DomGilberto:
Ah, oui je t'ai eu - mon erreur. J'ai mal lu ce que tu as écrit.

Je ne sais pas comment faire. Pouvez-vous m'indiquer la bonne direction ?
Juste une simple boucle, comme celle que vous avez déjà, passant en revue les ordres ouverts et vérifiant le OrderType() ... il peut y avoir un petit avantage, en termes de performance, à ajouter cela à votre code, sans vérification, je ne peux pas le dire avec certitude.
 
Désolé, ce que je voulais dire, c'est qu'il y a une fonction intégrée dans MQL4 que je dois utiliser pour vérifier chaque tick?
 
DomGilberto:
Désolé, ce que je voulais dire, c'est qu'il y a une fonction intégrée dans MQL4 que je dois utiliser pour vérifier chaque tick ?
Non, start() est appelé à chaque tick... mais actuellement vous n'appelez CheckForMaTrade() que lorsqu'il y a une nouvelle bougie ( IsNewCandle() ) vous devez le faire pour chaque tick.
 
Ah oui - je l'ai eu ! Je pense que je sais comment le faire - je retourne jouer maintenant :)
Raison: