[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 275
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
La question est la suivante .
Comment obtenir un nombre sans moins, s'il s'avère que Open[1] < Close[1] et quand on soustrait Open[1]-Close[1] j' obtiens la valeur avec un moins, comment faire pour que ce soit toujours une valeur positive, j'ai besoin de calculer la distance entre Open et Close peut-être y a-t-il un autre moyen ?
Merci.
La question est la suivante .
Comment obtenir un nombre sans moins, s'il s'avère que Open[1] < Close[1] et quand on soustrait Open[1]-Close[1] j'obtiens la valeur avec un moins, comment faire pour que ce soit toujours une valeur positive, j'ai besoin de calculer la distance entre Open et Close peut-être y a-t-il une autre façon ?
>> Merci.
https://docs.mql4.com/ru/math/MathAbs
https://docs.mql4.com/ru/math/MathAbs
;) >> Merci !
Bonne journée !
Lors de l'écriture d'un EA pour MT4, il était nécessaire de déterminer par programme (c'est-à-dire dans le code de l'EA lui-même) si au moins un ordre de cet EA était ouvert ou non. Pouvez-vous nous dire s'il existe une telle fonction ? Peut-être, si c'est le cas, cela ressemblerait à quelque chose comme ceci
Bool (un ordre EA avec ce numéro magique a-t-il été ouvert)
{réponse= Vrai/Faux}
?
Experts - aidez-nous s'il vous plaît - nous nous creusons déjà la tête
P.S.- j'ai essayé l'option avec les numéros de commande - ça n'a pas marché
Bonne journée !
Lors de la création d'un EA pour MT4, il était nécessaire de déterminer par programme (c'est-à-dire dans le code de l'EA lui-même) si au moins un ordre de cet EA était ouvert ou non. Savez-vous s'il existe une telle fonction ?
Cette fonction fonctionnera-t-elle ?
Exemple d'utilisation : Nous plaçons cette fonction à la toute fin de notre code et la vérifions lorsque nous ouvrons une position :
Si nous ne cherchons pas les positions mais les ordres en attente, nous pouvons utiliser cette fonction
Fonction NumberOfOrders().
Cette fonction renvoie le nombre de commandes . Vous pouvez limiter la liste des ordres à vérifier à l'aide des paramètres de la fonction :
sy - Nom de l'instrument. Si nous définissons ce paramètre, la fonction ne vérifiera que les ordres de l'instrument spécifié. NULL signifie l'instrument actuel, et "" (par défaut) signifie n'importe quel instrument.
op - Type d'ordre en attente. Valeurs valides : OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. La valeur par défaut de -1 signifie un ordre quelconque.
mn - Identifiant de l'ordre (MagicNumber). La valeur par défaut de -1 signifie n'importe quel MagicNumber.
https://www.mql5.com/ru/forum/107476/page12
Veuillez expliquer ce que les fichiers fournissent :
Si possible, d'une manière simple.
Merci.
Veuillez expliquer ce que les fichiers fournissent :
Si possible, d'une manière simple.
Merci.
il s'agit de ce qu'on appelle des "fichiers de bibliothèque". ces fichiers stockent les fonctions fréquemment utilisées. ils sont utilisés pour éviter de charger le source. si le fichier de bibliothèque est "déclaré", les fonctions du fichier déclaré peuvent être utilisées comme si elles étaient incluses dans le source.
Veuillez expliquer ce que les fichiers nous donnent :
Si possible, restez simple.
Merci.
Lorsque nous utilisons (appelons) une fonction de ces fichiers (déjà intégrés initialement dans mt4) nous pouvons, en cas de fonctionnement incorrect de l'EA, voir dans le journal le numéro de l'erreur que nous avons faite dans le code .
Par exemple, nous appelons la fonction GetLastError() :
Dans ce cas, si nous avons fait une erreur dans le code ou défini des paramètres externes incorrects, nous verrons le numéro de cette erreur dans le journal.
Par exemple, 130.
Et le décodage de ce numéro se trouve sur -https://book.mql4.com/ru/appendix/errors.
Et nous n'avons pas besoin de parcourir tout le code, car nous savons déjà où l'erreur est commise !
Cette fonction fonctionnera-t-elle ?
Exemple d'utilisation : nous plaçons la fonction elle-même à la toute fin du code (en dehors de la fonction START) et la vérifions ensuite lors de l'ouverture d'une position :
Si nous ne cherchons pas les positions mais les ordres en attente, nous pouvons utiliser
Fonction NumberOfOrders().
Cette fonction renvoie le nombre de commandes . Vous pouvez limiter la liste des ordres à vérifier à l'aide des paramètres de la fonction :
sy - Nom de l'instrument. Si vous spécifiez ce paramètre, la fonction ne vérifiera que les ordres de l'instrument spécifié. NULL signifie l'instrument actuel, et "" (par défaut) signifie n'importe quel instrument.
op - Type d'ordre en attente. Valeurs valides : OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. La valeur par défaut de -1 indique un ordre quelconque.
mn - Identifiant de l'ordre (MagicNumber). La valeur par défaut -1 signifie n'importe quel MagicNumber.
https://www.mql5.com/ru/forum/107476/page12
Merci beaucoup pour le conseil, nous avons essayé mais cela n'a pas fonctionné, veuillez vérifier s'il y a une erreur quelque part dans le code :
Si nous voulons vérifier s'il existe une condition de vente ou d'achat et que nous n'avons pas ouvert ou fermé un ordre, dans ce cas, seule la première condition fonctionnera. Et si l'EA a déjà ouvert des ordres dans le passé, alors, lorsqu'un ordre est ouvert, les première + deuxième conditions devraient se déclencher.
J'ai regardé le lien que vous avez fourni, peut-être que l'ExistOrders() ; est plus approprié ?
(mais honnêtement, je n'ai pas pu le placer, puisque je n'ai apparemment pas les compétences nécessaires pour l'instant).
Vous n'avez pas appelé la fonction correctement.
Votre fonction est appelée comme suit : si (NumberOfPositions(NULL,Magic)> 1)
Il devrait ressembler à ceci :
Sentez la différence (vous avez omis "-1") ! et RECTIFIEZ VOTRE CODE.
Pour le contrôler, vous pouvez imprimer un commentaire sur le graphique. Par exemple, comme ceci (au début de la fonction START).
Quant à votre deuxième condition, je mettrais ("sans trop réfléchir") un magicien différent et une fonction distincte Open_Buy_2() pour ouvrir les positions par la deuxième condition !.
Le code de la deuxième condition ressemblerait à ceci