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

 
Roman :

Lütfen bana while döngüsünün bir yinelemesinin minimum ayrıklığının nasıl ölçüleceğini söyler misiniz?
Bu kodla deniyorum ama doğru ölçtüğümden emin değilim.


 void OnStart ()
{
   ulong time[]; 
   ulong t = 0 ;  
   int    i = 0 ;
   ArrayResize (time, 30 );      
   ulong startTime=GetTickCount64();
   uint iterations=0;
   while (i < 30 && ! _StopFlag )
   {
      //t = GetMicrosecondCount ();
      //t = GetMicrosecondCount () - t;      
      iterations++;
      
       ArrayFill (time, i, 1 , t);
      i++;   
   }
   if (iterations) {
      ulong endTime=GetTickCount64();
      ulong avgTime=(startTime-endTime)/iterations; // среднее время 1-й итерации
   }
   ArrayPrint (time);
}
 
Maxim Kuznetsov :

Anladım.
Çok farklı yazmadım.

 void OnStart ()
{   
   uint   iterations = 1 ;   
   ulong startTime  = GetMicrosecondCount ();   
   
   while (iterations == 1 && ! _StopFlag )
   {            
      iterations++;         
   }
   
   ulong endTime = GetMicrosecondCount () - startTime;
   
   Print ( IntegerToString ( fabs (endTime)));
}

0, ardından 1 mikrosaniye olduğu ortaya çıktı.
Mikrosaniyenin altında, kontrol etmeyin.

 
Roman :

Anladım.
Çok farklı yazmadım.

0, ardından 1 mikrosaniye olduğu ortaya çıktı.
Mikrosaniyenin altında, kontrol etmeyin.

Yineleme sayısını saymak daha iyidir. Elbette günümüz işlemci frekansları ile bir mikrosaniyeden daha az olacaktır. örneğin keneler arasında)

 void OnStart ()                                   // Спец. функция OnStart()
  {
   int i, Count;                             // Объявление переменных
   for (i= 1 ; i<= 5 ; i++)                       // Покажем для 5 тиков
     {
      Count= 0 ;                               // Сброс счётчика
       while (RefreshRates()== false )           // До тех пор, пока..
        {                                   //..придёт новый тик
         Count = Count+ 1 ;                     // Счётчик итераций 
        }
       Alert ( "Тик " ,i, ", циклов " ,Count);     // После каждого тика
     }
   return ;                                   // Выход из start()
  }
//--------------------------------------------------------------------
 
Valeriy Yastremskiy :

Yineleme sayısını saymak daha iyidir. Elbette günümüz işlemci frekansları ile bir mikrosaniyeden daha az olacaktır. örneğin keneler arasında)

Belki daha iyi, ama mesele bu değil.
Nanosaniyelere düşürmek gerekiyor, bence kendi zaman kontrol fonksiyonları ile dll'yi kesmek gerekiyor.
Döngünün ne kadar ayrıklıkla döndüğü ilginçtir.

 

En son hangi siparişin kapatıldığı nasıl belirlenir?

Ya da son 5 kapatılanın karı ne kadar?


OrdersHistoryTotal()-1 - siparişin maksimum biletle geçmişteki konumunu döndürür.


Bilet 100 ile anlaşma kapanırsa ve bir saat sonra bilet 99 ile anlaşma kapanırsa, OrdersHistoryTotal()-1 tam olarak #100'ü gösterir, ancak #99 numaralı sipariş hakkında nasıl bilgi alınır?

---

aklıma gelen en aptal şey bir diziye geçmişi kaydetmek, kapanış saatine göre sıralamak ve diziden ihtiyacım olanı okumaktır. AMA süper suboptimal

 
Roman :

Belki daha iyi, ama mesele bu değil.
Nanosaniyelere düşürmek gerekiyor, bence kendi zaman kontrol fonksiyonları ile dll'yi kesmek gerekiyor.
Döngünün ne kadar ayrıklıkla döndüğü ilginçtir.

serbest çekirdek sayısı ile çarpılan serbest çekirdek frekansı ile. 2 - 10 gigahertz olması gereken yerde, başka bir görev yoksa ve döngüde yalnızca bir sayaç varsa. Hız, CPU ve bellek yüküne, döngü sırasında üçüncü taraf eylemlerinin önceliğine ve ayrıca döngüdeki dahili eylemlere bağlıdır. ayrıca toplama ve atama işlemleri anladığım kadarıyla diziye yazmaktan ve diziden okumaktan daha hızlı.

 
Valeriy Yastremskiy :

serbest çekirdek sayısı ile çarpılan serbest çekirdek frekansı ile. 2 - 10 gigahertz olması gereken yerde, başka bir görev yoksa ve döngüde yalnızca bir sayaç varsa. Hız, CPU ve bellek yüküne, döngü sırasında üçüncü taraf eylemlerinin önceliğine ve ayrıca döngüdeki dahili eylemlere bağlıdır. ayrıca toplama ve atama işlemleri anladığım kadarıyla diziye yazmaktan ve diziden okumaktan daha hızlı.

Teşekkür ederim. Anladım.

 
Bir ticaret robotu yazmaya kim yardımcı olabilir? (Kimin boş zamanı var)
 
paradisehell1 :
Bir ticaret robotu yazmaya kim yardımcı olabilir? (Kimin boş zamanı var)

bu robotlar, zaten çok şey yazıldı - böyle birinin olduğuna inanmıyorum - ihtiyacınız olan.

 

Herkese iyi!


Soru: Bir çubuğun yüksek ve düşük zamanlarını belirlemenin en kolay yolu nedir?

Bar açılış/kapanış saati ilginç değil.

MT4'te.

Teşekkür ederim!