[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 235

 
Zhunko:
Si le code source existe, mais qu'il a été modifié, c'est possible. C'est-à-dire en modifiant le contenu de la source. Si la source est perdue ou renommée, elle ne sera pas retrouvée.

Merci Vadim. Je vois.
 
ikatsko:

Comment calculer la marge (fonds nécessaires pour ouvrir un ordre avec un lot N) à différentes valeurs de AccountFreeMarginMode?


La marge pour un ordre de 1 lot est égale :

   double OneLotMarg =MarketInfo(Symbol(),MODE_MARGINREQUIRED);

Vous le découvrirez plus tard.

Et vous devez également vérifier si vous disposez de suffisamment de fonds libres :

   double Free = AccountFreeMargin();
   
   if(Lts*OneLotMarg>Free) return(0);
 
DhP:


Et vous devez également vérifier si les fonds disponibles sont suffisants :

   double Free = AccountFreeMargin();
   
   if(Lts*OneLotMarg>Free) return(0);

Cette condition est nécessaire, mais pas suffisante... Si j'ai bien compris, il faut aussi considérer la valeur du spread, c'est-à-dire qu'il faut tenir compte de la perte qui sera subie immédiatement lorsque vous ouvrirez l'ordre correspondant ! :))) Ou ai-je oublié quelque chose d'autre ?
 

J'ai aimé le script de cet indicateur, sa simplicité. Aidez-moi à créer un script qui placera des stops sur ces lignes, en passant par les ordres.

https://www.mql5.com/ru/code/9588

 
MaxZ:
Cette condition est nécessaire, mais pas suffisante... Si j'ai bien compris, il faut également tenir compte de la valeur du spread, c'est-à-dire qu'il faut tenir compte de la perte qui sera subie immédiatement lorsque vous ouvrirez l'ordre correspondant ! :))) Ou ai-je oublié quelque chose d'autre ?
Je pense que vous avez raison, mais cela n'a guère d'importance dans la pratique.
 
DhP:
Je pense que vous avez raison, mais cela n'a guère d'importance dans la pratique.

Par exemple, je m'entraîne dans diverses compétitions. Et il y a eu des situations similaires. L'erreur 134 s'affiche. Mais je n'ai toujours pas perfectionné la fonction de calcul des lots. J'étais trop paresseux... Un peu plus tard, la demande est répétée et la commande est ouverte. Et un peu plus tard, nous fusionnons le dépôt de démonstration ! :)))

De plus, cette condition ne fonctionnera pas lorsque des contre-ordres sont ouverts, lorsqu'il n'y a pas assez d'argent, mais que le lot ouvert peut être compensé par un contre-ordre.

Quelques nuances et pas plus.

 
DhP:
MaxZ:
Cette condition est nécessaire, mais pas suffisante... Si j'ai bien compris, vous devez également tenir compte de la valeur du spread, c'est-à-dire de la perte qui sera subie immédiatement lorsque vous ouvrirez l'ordre correspondant ! :))) Ou peut-être ai-je oublié quelque chose d'autre ?
Je pense que vous avez raison, mais cela n'a guère d'importance dans la pratique.

Il s'avère que le fait qu'un ordre s'ouvre avec une perte égale à l'écart n'a aucun effet. Si nous définissons Risk = 100%, un ordre est ouvert avec le volume maximum possible, et AccountFreeMargin() affiche soit "+" soit "- " (dans le "Strategy Tester") immédiatement après son ouverture...

Mais, en ouvrant plusieurs ordres, l'erreur 134 se produit de temps en temps. Je ne comprends toujours pas à quoi est liée l'erreur... Je prends en compte les fonds nécessaires pour ouvrir des ordres opposés par la même condition. Cela signifie que l'ordre opposé sera ouvert uniquement lorsque nous sommes dans le plus et que la condition correspondante se déclenche.

Ce code est utilisé pour calculer le lot :

double Free    = AccountFreeMargin();
double One_Lot = MarketInfo(Symbol(), MODE_MARGINREQUIRED);      
double Step    = MarketInfo(Symbol(), MODE_LOTSTEP);
newLots = MathFloor(Free*Risk/100/One_Lot/Step)*Step;

p.s. : Je n'aime pas laisser des bloopers de mon propre chef...

 

Salutations Messieurs !

Veuillez m'aider à insérer dans mon EA la fonction de clôture des ordres.

L'idée est la suivante :

1) si le prix d'un ordre de VENTE ouvert devient inférieur au prix du TP exposé de cet ordre, alors cet ordre est fermé.

2) si le prix d'un ordre BUY ouvert est supérieur au prix du TP fixé pour cet ordre, il sera fermé.

Si vous êtes en mesure de nous aider, écrivez à oniava@gmail.com, j'attends votre réponse avec impatience.

Merci d'avance.

Sincèrement, Oleg.


P.S. Vous pouvez créer un assistant EA séparé avec un numéro magique.

 
belck:

J'ai aimé le script de cet indicateur, sa simplicité. Aidez-moi à créer un script qui placera des stops sur ces lignes, en passant par les ordres.

https://www.mql5.com/ru/code/9588

Commencez à le faire et nous vous aiderons. Cela donne l'impression que c'est "fais-le pour moi". Il y a à peu près tout ce dont vous avez besoin là-dedans. Il ne vous reste plus qu'à passer vos commandes par cycles.
 

Bonjour à tous. Pouvez-vous me dire comment prescrire dans l'EA,

Lorsqu'un certain profit est atteint, l'EA n'ouvre plus de position,

Il ne s'ouvre que lors du prochain démarrage ou redémarrage de l'EA.