Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 334

 
Melko:

II Il s'agit d'une fonction élémentaire de placement d'ordres en attente, les paramètres ne sont pas importants, mais il est important de faire en sorte que l'Expert Advisor (il peut utiliser la boucle existante d'évaluation des ordres) après avoir reçu un "nouveau prix" ou de le passer, ou d'une manière ou d'une autre d'éviter de placer des ordres au même prix. Dans ce cas, le cycle de passation des commandes ne doit pas s'arrêter. S'il vous plaît, aidez-moi.

Republiez une centaine de fois dans tous les fils du forum, et vous obtiendrez peut-être une réponse plus rapide.
 

Bonjour à tous !

J'ai parcouru toutes les pages des EA, j'ai regardé les codes des EA basés sur les ordres en attente,

Je n'ai pas trouvé de réponse, en parcourant toutes les pages du forum et en relisant le tutoriel et la documentation MQL .

Peut-être, je n'ai pas regardé attentivement. J'ai décidé de la poser ici.

J'écris un EA basé sur les ordres en attente. Je n'ai eu aucun problème avec les critères d'ouverture de position basés sur les données de l'indicateur (<, >, =, etc.).

Mais, actuellement, le système n'est basé sur aucun indicateur. Le critère d'ouverture de poste est le PRIX.

A savoir, à un niveau d'offre égal au niveau du PRIX, supposons, ХХХ.00 ou ХХХ.50 (pour les paires de Yen), le bloc de critères dit que

il existe un critère d'achat (ou de vente) et l'envoie au bloc d'ouverture des ordres.

Un exemple approximatif est illustré à la figure 1 lorsque le niveau est fixe et réglé, par exemple, par un utilisateur.

int start()                                   // Спец. функция start
  {
//----
   double
   Level,                                     // Сигнальный уровень
   Price;                                     // Текущая цена
   Level=140.00;                              // Задаём уровень
   Price=Bid;                                 // Запрашиваем цену
//----
    if (Price==Level)                          // Оператор if с условием
     {
      Alert("Курс равен  заданному уровеню");  // Сообщение трейдеру
     }

   return;// Выход из start()
  }

Laquestion est de savoir comment rédiger la condition permettant de comparer la DIS actuelle avec les niveaux qui n'ont pas été fixés au préalable mais qui sont plats,

par exemple 140.00, 141.00, 142.00 .... à savoir avec XXX.00

La première partie de la condition est claire, par ex.

if (NormalizeDouble(Price,Digits) >= NormalizeDouble(Level,Digits))

La deuxième partie avec Level, ce qu'il faut faire.

Je vous remercie d'avance,

Respectueusement,


P.S. Si ce sujet a déjà été abordé et que je l'ai manqué, dites-le moi, s'il vous plaît.

 
Melko:

II Il s'agit d'une fonction élémentaire de placement d'ordres en attente, les paramètres ne sont pas importants, mais il est important de faire en sorte que l'Expert Advisor (il peut utiliser la boucle existante d'évaluation des ordres) après avoir reçu un "nouveau prix" ou de le passer, ou d'une manière ou d'une autre d'éviter de placer des ordres au même prix. Dans ce cas, le cycle de passation des commandes ne doit pas s'arrêter. S'il vous plaît, aidez-moi.

Retirez tous vos spoilers et apprenez à insérer du code en appuyant sur le bouton SRC avant de passer vos commandes!
 
Shum_sp:

Bonjour à tous !

J'ai parcouru toutes les pages sur les EA, j'ai regardé les codes des EA basés sur les ordres en attente,

Je n'ai pas trouvé de réponse, j'ai donc cherché sur toutes les pages du forum, lu le tutoriel MQL et la documentation à nouveau.

Je l'ai peut-être mal regardé. J'ai décidé de demander ici.

J'écris un EA basé sur les ordres en attente. Auparavant, il n'y avait aucun problème avec le critère d'ouverture d'une position basé sur les données de l'indicateur (<, >, =, etc.).

Mais, pour l'instant, le système n'est pas syndiqué. Le critère d'ouverture d'une position est le PRIX.

En d'autres termes, pour une offre égale au niveau du PRIX, disons ХХХ.00 ou ХХХ.50 (pour les paires de yens), le bloc de critères stipule que

il y a un critère d'achat (ou de vente) et cela nous envoie au bloc d'ouverture de l'ordre.

Un exemple approximatif est illustré à la figure 1, lorsque le niveau est fixe et réglé, par exemple, par l'utilisateur.

La question est de savoir comment spécifier la condition qui permettrait de comparer la DIS actuelle avec des niveaux prédéfinis mais égaux,

Par exemple, 140.00, 141.00, 142.00 .... à savoir à partir de XXX.00

La première partie de la condition est claire, par ex.

Dans la deuxième partie avec Level, ce qu'il faut faire.

Je vous remercie tous d'avance,

Respectueusement,


P.S. Si ce sujet a déjà été abordé et que je l'ai manqué, dites-le moi s'il vous plaît.


if (NormalizeDouble(Price,Digits) >= NormalizeDouble(Bid,0)) //Для 4-х знаков можно и 1 или 2 вместо 0.
 
evillive:


Trop, je pense.

Allez-vous répondre à cette question ?

 
tara:


Trop, je suppose.

Allez-vous répondre à cette question ?


La question, comme on dit, est la réponse. Qui sait comment le prix est calculé, et le niveau n'est pas spécifié à l'avance...


Mais si le prix = l'offre, alors...

if (Bid >= NormalizeDouble(Bid,0)) //опять же можно и 1 или 2 вместо 0.
 
Shum_sp:

Bonjour à tous !

J'ai parcouru toutes les pages sur les EA, j'ai regardé les codes des EA basés sur les ordres en attente,

Je n'ai pas trouvé de réponse, j'ai donc cherché sur toutes les pages du forum, lu le tutoriel MQL et la documentation à nouveau.

Je l'ai peut-être mal regardé. J'ai décidé de demander ici.

J'écris un EA basé sur les ordres en attente. Auparavant, il n'y avait aucun problème avec le critère d'ouverture d'une position basé sur les données de l'indicateur (<, >, =, etc.).

Mais, pour l'instant, le système n'est pas syndiqué. Le critère d'ouverture d'une position est le PRIX.

En d'autres termes, pour une offre égale au niveau du PRIX, disons ХХХ.00 ou ХХХ.50 (pour les paires de yens), le bloc de critères stipule que

il y a un critère d'achat (ou de vente) et cela nous envoie au bloc d'ouverture de l'ordre.

Un exemple approximatif est illustré à la figure 1, lorsque le niveau est fixe et réglé, par exemple, par l'utilisateur.

La question est de savoir comment spécifier la condition qui permettrait de comparer la DIS actuelle avec des niveaux prédéfinis mais égaux,

Par exemple, 140.00, 141.00, 142.00 .... à savoir à partir de XXX.00

La première partie de la condition est claire, par ex.

Dans la deuxième partie avec Level, ce qu'il faut faire.

Je vous remercie tous d'avance,

Respectueusement,


P.S. Si ce sujet a déjà été abordé et que je l'ai manqué, dites-le moi s'il vous plaît.


Avec ce schéma, vous pouvez simplement comparer des variables, y compris pour l'égalité.
 
Shum_sp:

Laquestion est de savoir comment écrire une condition pour comparer la DIS actuelle avec des niveaux non préétablis mais de niveau,
.

par exemple 140.00, 141.00, 142.00 .... à savoir avec XXX.00



int Level=140;                              // Задаём уровень
 
:)
 
artmedia70:


Bonjour !


Je veux dire, c'est beaucoup de prescrire tous les niveaux.

Le conseiller expert doit déterminer que le niveau est XXX.00, l'utilisateur ne doit pas y participer et spécifier les niveaux sur lesquels travailler.

Je n'arrive pas à comprendre comment expliquer que le prix actuel est XXX.00

Merci à tous.