Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1615

 
Ho provato in questo modo:
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1")
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);

Ma quando si clicca, il pulsante non sembra visivamente cliccare, il che ha senso.

 
Nerd Trader #:
Ho provato in questo modo:

Ma quando si clicca, il pulsante non sembra visivamente cliccare, il che ha senso.

if(sparam=="button1")
      Sleep(100);
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
 
MakarFX #:
Va bene così, grazie.
 
MakarFX #:

L'intero programma è in ritardo. Non va bene... Per una semplice variante, naturalmente, va bene. Ma per il normale - è necessario eseguire il polling dei valori dei pulsanti premuti nel timer dei millisecondi e se dopo aver premuto il pulsante il tempo di ritardo richiesto è passato - impostare un flag.

 
Nerd Trader #:
Va bene così, grazie.

In un mercato chiuso, siate sorpresi di come funziona un pulsante come questo

 
MakarFX #:

Prova questo.

Meglio ancora, prescrivere,

se non ci sono ordini di vendita aperti, cancella la linea di vendita...

simile per il bai

Grazie per il suggerimento ma non ha aiutato

 
Artyom Trishkin #:

L'intero programma è in ritardo. Non va bene... Per una semplice variante, ovviamente, va bene. Ma per il normale - è necessario eseguire il polling dei valori dei pulsanti premuti nel timer dei millisecondi e se dopo aver premuto il pulsante il tempo di ritardo richiesto è passato - impostare un flag.

Sì, non è buono. Va bene?

     if(id==CHARTEVENT_OBJECT_CLICK && sparam=="button1"){
       ulong ms=GetMicrosecondCount();
       for(;;){
         if(GetMicrosecondCount()-ms>100000){
           ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
           break;
         }
       }
     }
Non è equivalente a Sleep(100)? Dopo tutto, il programma si blocca in un ciclo fino a quando non viene eseguita la pausa.
 
Per favore, suggerisci un indicatore per l'attraversamento di due diapositive con un allarme?
 
Libero ...
 
Nerd Trader #:

Sì, non va bene. Va bene così?

Non è equivalente a Sleep(100)? Dopo tutto, il programma si blocca in un ciclo fino a quando non viene eseguita la pausa.
E se "ms" è reso globale
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;
     }
  }
//+------------------------------------------------------------------+