[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 56

 
first_may:


Oui, je suis d'accord, je l'ai mal prononcé. Après avoir lu l'aide, j'ai décidé de l'écrire comme ceci :

// le conseiller expert peut passer des ordres tous les jours de la session.
// pendant la période de 10-45 à 18-30
if (Hour()>=10 && Minute()>=45 && Hour()<=18 && Minute()<=30)
{
...
}

Est-ce la bonne condition pour vérifier l'heure ?


Non. Vous ne pourrez pas du tout négocier avec cette condition, car Minute()>=45 && Minute()<=30 est en principe impossible.

 
sergeev:

Non. Vous ne négocierez pas du tout avec cette condition car Minute()>=45 && Minute()<=30 est impossible en principe.


Vous ne pouvez donc pas comparer les heures et les minutes séparément ? Ainsi, 11-55, par exemple, correspond à la première condition, puisque 11>=10 & 55>=45, mais pas à la seconde, puisque 11<=18 & 55<=30. Bien que dans la vie réelle, 11-55 se situe juste dans l'intervalle d'heures de 10-45 à 18-30.
 
first_may:

Il s'avère que nous ne pouvons pas comparer les heures et les minutes séparément ? Par exemple, 11-55 convient à la première condition, car 11>=10 et 55>=45, mais pas à la seconde, car 11<=18 et 55<=30. Bien que dans la vie réelle, 11-55 se situe juste dans l'intervalle d'heures de 10-45 à 18-30.

vous devez créer votre heure de début et de fin avec par exemple StrToTime
 
sergeev:

vous devez créer vos propres heures de début et de fin, par exemple StrToTime


Ici, en utilisant la dernière heure connue du serveur, on a écrit :
if (TimeCurrent()>=StrToTime("10:45") && TimeCurrent()<=StrToTime("18:30"))
{
...
}

Maintenant, 11-55 tombera dans l'intervalle 10-45 à 18:30 ?

 
first_may:

Les 11-55 ans se situeront-ils désormais entre les 10-45 ans et les 18-30 ans ?

Oui.
 
sergeev:
Oui.


Merci beaucoup ! :)
 

Les gars, avec toutes ces variables globales et locales, je suis sur le point de commencer à courir pieds nus et à souffler les moineaux. Mec, je ne comprends pas pourquoi il y a tant de mal de tête au milieu de nulle part !

int Orders=0;                          // Объявление глобальной еременной суммы ордеров
int start()                            // Спец. функция start
  {
     if (MA2_2<MA1_2 && MA2_1>MA1_1)  //Сигнал на пересечении МА
        {
          if (OrdersTotal()>= 1) 
              return(0);               //Если ордеров больше 1, уходим.
   
          SL = 30;                     // Стоп лосс
          TP = 12;                     // Тейк профит
          S_Price = Low[1] - 1* Point; // Уровень установки SELLSTOP
          if (OrderSend (Symbol(), OP_SELLSTOP, Lots, S_Price, 0, SL, TP, "My order", Magic)>0) // Установка
//ордера SELLSTOP. Если OrderSend возвращает больше 0, то выполняем следующее.
            {
               Orders++;               //Увеличить величину Orders на 1. 
               Alert ("Ордер выставлен.Orders = ",Orders ); //Вывод нового значения Orders.
            }
        }    
   return(0);                             // Выход из start()
  }
D'après le tutoriel MQL4, la nouvelle valeur de la variable globale Ordres doit être égale à 1. L'itération suivante devrait être 2, puis 3. Puis 4. Et ainsi de suite, jusqu'à ce que le conseiller expert place des ordres en attente. Mais je ne comprends pas pourquoi l'EA ne place pas d'ordres en attente ! Après avoir placé un autre ordre SELLSTOP en attente, je ne vois à chaque fois qu'un seul message : Ordres = 1 ! Quelle en est la raison ? Cela peut-il être dû à MetaEditor ?
 
vovan-gogan:

Les gars, avec toutes ces variables globales et locales, je suis sur le point de commencer à courir pieds nus et à souffler les moineaux. Mec, je ne comprends pas pourquoi il y a tant de mal de tête au milieu de nulle part !

D'après le tutoriel MQL4, la nouvelle valeur de la variable globale Ordres doit être égale à 1. L'itération suivante devrait être 2, puis 3. Puis 4. Et ainsi de suite, jusqu'à ce que le conseiller expert place des ordres en attente. Mais je ne comprends pas pourquoi l'EA ne place pas d'ordres en attente ! Après avoir placé un autre ordre SELLSTOP en attente, je ne vois à chaque fois qu'un seul message : Ordres = 1 ! Quelle en est la raison ? Cela peut-il être dû à MetaEditor ?

La raison en est que vous avez plus d'ordres de marché ouverts sur ce compte de trading.
 
Roman.:

La raison en est que vous avez plus d'ordres de marché ouverts sur ce compte de trading.

Le plus triste est que cela se produit dans le testeur. et les ordres en attente sont placés par l'EA, mais les ordres sont toujours égaux à 1.
 
vovan-gogan:

Le plus triste est que cela se produit dans le testeur. Le conseiller expert place des ordres en attente et les ordres sont toujours égaux à 1.

Je suppose que vous n'avez pas formulé votre question correctement.
Raison: