Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1615

 
Lo intenté de esta manera:
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1")
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);

Pero al hacer clic, el botón no parece hacer clic visualmente, lo que tiene sentido.

 
Nerd Trader #:
Lo intenté de esta manera:

Pero al hacer clic, el botón no parece hacer clic visualmente, lo que tiene sentido.

if(sparam=="button1")
      Sleep(100);
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
 
MakarFX #:
Eso es todo, gracias.
 
MakarFX #:

Todo el programa se retrasa. No es bueno... Para una variante simple, por supuesto, está bien. Pero para la normalidad - usted necesita para sondear los valores de los botones presionados en el temporizador de milisegundos y si después de pulsar el botón el tiempo de retardo requerido ha pasado - establecer una bandera.

 
Nerd Trader #:
Eso es todo, gracias.

En un mercado cerrado, sorpréndase de cómo funciona un botón como éste

 
MakarFX #:

Prueba esto.

Mejor aún, prescribir,

si no hay órdenes de venta abiertas, elimina la línea de venta...

similar para el bai

Gracias por el consejo pero no sirvió de nada

 
Artyom Trishkin #:

Todo el programa se retrasa. No es bueno... Para una variante simple, por supuesto, está bien. Pero para la normalidad - usted necesita para sondear los valores de los botones presionados en el temporizador de milisegundos y si después de pulsar el botón el tiempo de retardo requerido ha pasado - establecer una bandera.

Sí, no es bueno. ¿Está bien?

     if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1"){
       ulong ms=GetMicrosecondCount();
       for(;;){
         if(GetMicrosecondCount()-ms>100000){
           ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
           break;
         }
       }
     }
¿No es equivalente a Sleep(100)? Al fin y al cabo, el programa se colgará en un bucle hasta que se ejecute el break.
 
Por favor, sugiera un indicador para cruzar dos diapositivas con una alerta.
 
Gratis ...
 
Nerd Trader #:

Sí, eso no es bueno. ¿Está bien?

¿No es equivalente a Sleep(100)? Al fin y al cabo, el programa se colgará en un bucle hasta que se ejecute el break.
Y si "ms" se hace global
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;
     }
  }
//+------------------------------------------------------------------+
Razón de la queja: