MT5 ve iş başında hız - sayfa 8

 
Bir sürü çek koydum... Bu beni şaşırttı.
 2020.06 . 03 14 : 09 : 21.604 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 182 ms.

Bu noktada herhangi bir işlem yapılmadı.


Not: Nadir değil.

 2020.06 . 03 14 : 31 : 39.484 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 65 ms.
 
fxsaber :

Not: Savaş modunda, işlemler yapıldığında hemen hemen her zaman gecikme olur (yalnızca 5 milisaniyeden uzun olan durumları gösteriyorum).

Aksi takdirde, 2470'den çok daha iyi görünüyor.

Statü birikmiştir. HistorySelect yalnızca işlem yaparken gecikiyor.


ZY yalan söylüyorum. Ve anlaşma yok.

 2020.06 . 03 14 : 35 : 26.999 Alert : Time[NewTicks.mqh 112 : :: HistorySelect (TimeMsc/ 1000 , INT_MAX )] = 24 ms.
 
fxsaber :
Bir sürü çek koydum... Bu beni şaşırttı.

Yaygın bir olay gibi görünüyor. Ticaret fonksiyonlarını çağırmadı.

 2020.06 . 03 15 : 23 : 21.428 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 5 ms.
2020.06 . 03 15 : 26 : 09.433 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 8 ms.
2020.06 . 03 15 : 26 : 24.435 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 10 ms.
2020.06 . 03 15 : 26 : 31.417 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.06 . 03 15 : 26 : 33.429 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 8 ms.
2020.06 . 03 15 : 26 : 34.428 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 3 ms.
2020.06 . 03 15 : 26 : 55.655 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 18 ms.
2020.06 . 03 15 : 27 : 05.578 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 14 ms.
2020.06 . 03 15 : 29 : 27.613 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 3 ms.
2020.06 . 03 15 : 31 : 29.426 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 4 ms.
2020.06 . 03 15 : 31 : 46.430 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 11 ms.
2020.06 . 03 15 : 33 : 12.441 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 14 ms.
2020.06 . 03 15 : 33 : 21.437 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 12 ms.
2020.06 . 03 15 : 33 : 35.430 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 5 ms.
2020.06 . 03 15 : 34 : 55.424 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 2 ms.
2020.06 . 03 15 : 35 : 09.426 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 2 ms.
2020.06 . 03 15 : 35 : 34.428 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 4 ms.
2020.06 . 03 15 : 41 : 48.423 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 3 ms.
2020.06 . 03 15 : 41 : 54.439 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 13 ms.
2020.06 . 03 15 : 42 : 28.440 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 15 ms.
2020.06 . 03 15 : 42 : 48.845 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 14 ms.
2020.06 . 03 15 : 43 : 08.429 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 5 ms.
2020.06 . 03 15 : 43 : 25.428 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 7 ms.
2020.06 . 03 15 : 43 : 27.428 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 4 ms.
2020.06 . 03 15 : 43 : 48.436 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 9 ms.
2020.06 . 03 15 : 47 : 05.424 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 3 ms.
2020.06 . 03 15 : 47 : 46.426 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 8 ms.
2020.06 . 03 15 : 47 : 58.845 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 4 ms.
2020.06 . 03 15 : 48 : 47.140 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 12 ms.
2020.06 . 03 15 : 49 : 03.430 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 5 ms.
2020.06 . 03 15 : 49 : 52.684 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 3 ms.
2020.06 . 03 15 : 53 : 39.429 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 4 ms.
2020.06 . 03 15 : 54 : 17.424 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 5 ms.
2020.06 . 03 15 : 54 : 47.425 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.06 . 03 15 : 57 : 28.425 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 5 ms.
2020.06 . 03 15 : 57 : 47.425 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 2 ms.
2020.06 . 03 15 : 58 : 27.425 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 1 ms.
2020.06 . 03 15 : 59 : 08.445 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 23 ms.
2020.06 . 03 16 : 00 : 20.447 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 28 ms.
2020.06 . 03 16 : 01 : 50.430 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 7 ms.
2020.06 . 03 16 : 02 : 08.431 Alert : Time[NewTicks.mqh 28 : :: SymbolInfoTick ( _Symbol ,Tick)] = 6 ms.

SymbolInfoTick bazen oldukça yavaştır. HFT, bu tür beklenmedik gecikmelerle çok zor olabilir.

Nedenlerini bulmak için Geliştiricilerden talep edin. Bu arada, savaş danışmanlarında kendi profil oluşturucunuzun bir zorunluluk olduğu ortaya çıkıyor.

 
fxsaber :

Yaygın bir olay gibi görünüyor. Ticaret fonksiyonlarını çağırmadı.

SymbolInfoTick bazen oldukça yavaştır. HFT, bu tür beklenmedik gecikmelerle çok zor olabilir.

Nedenlerini bulmak için Geliştiricilerden talep edin. Bu arada, savaş danışmanlarında bir profilcinin olmazsa olmaz olduğu ortaya çıkıyor.

Ve milisaniyeleri bu kadar doğrulukla nasıl ölçüyorsunuz? İşlemcide donanım saat sayacı?

 
Alexey Volchanskiy :

Ve milisaniyeleri böyle bir doğrulukla nasıl ölçüyorsunuz? İşlemcide donanım saat sayacı?

GetMicrosecondCount() .

 
fxsaber :

Yaygın bir olay gibi görünüyor. Ticaret fonksiyonlarını çağırmadı.

SymbolInfoTick bazen oldukça yavaştır. HFT, bu tür beklenmedik gecikmelerle çok zor olabilir.

Nedenlerini bulmak için Geliştiricilerden talep edin. Bu arada, savaş danışmanlarında kendi profil oluşturucunuzun bir zorunluluk olduğu ortaya çıkıyor.

sistem zamanlayıcısının varsayılan adımı 20ms'dir. ölçmeden önce daha küçüğe mi sıfırladınız?

şu işlevlerle deneyebilirsiniz:

 #import "kernel32.dll"
   int timeBeginPeriod( uint TimerRes);
   int timeEndPeriod( uint TimerRes);
#import
 
Igor Zakharov :

sistem zamanlayıcısının varsayılan adımı 20ms'dir. Ölçmeden önce daha küçüğe mi sıfırladınız?

Geliştiricilere.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MT5 ve iş başında hız

Anton , 2020.05.29 12:32

test kodu şöyle görünmelidir:

 void OnStart ()
  {
   MqlTick Tick;
   SymbolInfoTick ( _Symbol , Tick);
   ulong start= GetMicrosecondCount () ;
   for ( int i= 0 ; i< 100000 ; i++)
     {
       HistorySelect (Tick.time, INT_MAX );
     }
   ulong end= GetMicrosecondCount () -start;
   Print (" 100000 HistorySelect = ", DoubleToString (end/ 1000.0 , 2 )," ms");
  }


Lütfen daha fazla teori üretmeyin. İşte pratik uygulamanın bir dalı.

 
fxsaber :

Geliştiricilere.

bu yüzden birkaç yıl önceki geliştiricilerin cevabı budur.

 
Igor Zakharov :

bu yüzden birkaç yıl önceki geliştiricilerin cevabı budur.

Ama orada hiçbir şey yok ve tarih 2020.05.29 12:32

 
Alexey Viktorov :

Ama orada hiçbir şey yok ve tarih 2020.05.29 12:32

Yanılmışım, fxsaber dikkat çekti: Yazdığım gibi GetTickCount() yanlış olabilir, ama GetMicrosecondCount() değil.

https://www.mql5.com/ru/forum/189360#comment_4838735

susacağım :)