Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1615

 
я пытался так:
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1")
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);

Но при клике кнопка просто визуально как бы не нажимается, что логично.

 
Nerd Trader #:
я пытался так:

Но при клике кнопка просто визуально как бы не нажимается, что логично.

if(sparam=="button1")
      Sleep(100);
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
 
MakarFX #:
так пойдёт, спасибо.
 
MakarFX #:

Задержка работы всей программы. Не айс... Для простого варианта конечно же пойдёт. Но для нормального - нужно опрашивать значения нажатых кнопок в миллисекундном таймере и, если после нажатия на кнопку прошло требуемое время задержки - ставить флаг.

 
Nerd Trader #:
так пойдёт, спасибо.

На закрытом рынке удивитесь работе такой кнопки

 
MakarFX #:

Попробуй так

А лучше прописать,

если нет открытых ордеров селл, то удалить линию селл...

аналогично для бая

Спасибо за подсказка но это не помогло

 
Artyom Trishkin #:

Задержка работы всей программы. Не айс... Для простого варианта конечно же пойдёт. Но для нормального - нужно опрашивать значения нажатых кнопок в миллисекундном таймере и, если после нажатия на кнопку прошло требуемое время задержки - ставить флаг.

Да, не айс. Так нормально?

     if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1"){
       ulong ms=GetMicrosecondCount();
       for(;;){
         if(GetMicrosecondCount()-ms>100000){
           ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
           break;
         }
       }
     }
Это не эквивалентно Sleep(100)? Ведь пока не выполнится break программа подвиснет в цикле.
 
Пожалуйста подскажите индикатор пересечения двух скользящих с алертом?
 
 Бесплатный ...
 
Nerd Trader #:

Да, не айс. Так нормально?

Это не эквивалентно Sleep(100)? Ведь пока не выполнится break программа подвиснет в цикле.
а если "ms" сделать глобально
ulong ms=0;
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
      if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1")
         {ms=GetMicrosecondCount();}
  }
//+------------------------------------------------------------------+
void OnTimer()
  {
   if(GetMicrosecondCount()-ms>100000)
     {
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
      ms=0;
     }
  }
//+------------------------------------------------------------------+
Причина обращения: