MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1615

 
şöyle denedim:
 if (id== CHARTEVENT_OBJECT_CLICK && sparam== "button1" )
       ObjectSetInteger ( 0 , "button1" , OBJPROP_STATE , false );

Ancak düğmeye tıkladığınızda, görsel olarak basılmış gibi görünmüyor, ki bu mantıklı.

 
Nerd Trader # :
şöyle denedim:

Ancak düğmeye tıkladığınızda, görsel olarak basılmış gibi görünmüyor, ki bu mantıklı.

 if (sparam== "button1" )
       Sleep ( 100 );
       ObjectSetInteger ( 0 , "button1" , OBJPROP_STATE , false );
 
MakarFX # :
öyle gidiyor teşekkürler.
 
MakarFX # :

Tüm programı geciktirin. Buz değil ... Basit bir seçenek için elbette yapacak. Ancak normal olan için, basılan düğmelerin değerlerini milisaniyelik bir zamanlayıcıda sorgulamanız ve düğmeye bastıktan sonra gerekli gecikme süresi geçmişse bir bayrak ayarlamanız gerekir.

 
Nerd Trader # :
öyle gidiyor teşekkürler.

Kapalı bir piyasada, böyle bir düğmenin çalışmasına şaşıracaksınız.

 
MakarFX # :

Bunu dene

yazmak daha iyi

açık satış emri yoksa satış satırını silin...

körfez için benzer

ipucu için teşekkürler ama yardımcı olmadı

 
Artyom Trishkin # :

Tüm programı geciktirin. Buz değil ... Basit bir seçenek için elbette yapacak. Ancak normal olan için, basılan düğmelerin değerlerini milisaniyelik bir zamanlayıcıda sorgulamanız ve düğmeye bastıktan sonra gerekli gecikme süresi geçmişse bir bayrak ayarlamanız gerekir.

Evet, buz yok. Peki tamam mı?

     if (id== CHARTEVENT_OBJECT_CLICK && sparam== "button1" ){
       ulong ms= GetMicrosecondCount ();
       for (;;){
         if ( GetMicrosecondCount ()-ms> 100000 ){
           ObjectSetInteger ( 0 , "button1" , OBJPROP_STATE , false );
           break ;
         }
       }
     }
Bu, Sleep(100) ile eşdeğer değil mi? Sonuçta, break yürütülene kadar program döngüde askıda kalacaktır.
 
Lütfen bana bir uyarı ile iki hareketli ortalamanın kesişiminin göstergesini söyleyin?
 
Özgür...
 
Nerd Trader # :

Evet, buz yok. Peki tamam mı?

Bu, Sleep(100) ile eşdeğer değil mi? Sonuçta, break yürütülene kadar program döngüde askıda kalacaktır.
ve "ms" global olarak yapılırsa
 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 ;
     }
  }
//+------------------------------------------------------------------+