Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 106

 
Alain Verleyen :
Global değişken MT5 Tester ile taklit edildiğinden çalışmıyor. Ayrıca TimeCurrent () kullanırlar .

Üzgünüz, MT4 ile karıştırıldı. MT4'te çalışır ancak MT5'te çalışmaz.

 
fxsaber :


Başvuru


Tehdit Tester'da bir bilgisayarın yerel saatini bulmanın daha kolay bir yolu var mı?

Bu formda, irrasyoneldir. Yalnızca bir kez gerçek zamanlı almanız ve ardından GetTickCount veya GetMicrosecondCount kullanarak farkı hesaplamanız gerekir.

 
Alexey Navoykov :

Bu formda, irrasyoneldir. Yalnızca bir kez gerçek zamanlı almanız ve ardından GetTickCount veya GetMicrosecondCount kullanarak farkı hesaplamanız gerekir.

Evet katılıyorum.

 
Ve kod?
 
Alexey Tarabanov :
Ve kod?
 
Alexey Navoykov :

Bu formda, irrasyoneldir. Yalnızca bir kez gerçek zamanlı almanız ve ardından GetTickCount veya GetMicrosecondCount kullanarak farkı hesaplamanız gerekir.

Test cihazındaki zaman yoğunluğu tamamen farklıdır. Gitmeyecek.

 
Alexey Tarabanov :
Ve kod?

Güncellenmiş.

 
fxsaber :

Güncellenmiş.

GetTickCount'ta, sonsuza kadar, taşmayı hesaba katmanız gerekir.
 
TheXpert :
GetTickCount'ta, sonsuza kadar, taşmayı hesaba katmanız gerekir.

Bir UINT'den başka bir UINT çıkarırsanız, taşma durumunda bile sonuç her zaman doğru olacaktır.

illüstrasyon

 void OnStart ()
  {
//---
   uint first= UINT_MAX - 5 ;
   uint second=first+ 100 ;
   PrintFormat ( "%u - %u = %u" ,second,first,second-first);
  }

kayıt

 2018.10 . 18 10 : 48 : 12.775 TestUint (EURUSD,M1)     94 - 4294967290 = 100
 
Slava :
Bir UINT'den başka bir UINT çıkarılırsa, taşma durumunda bile sonuç her zaman doğru olacaktır.

Muhtemelen, bir geçişin ~50 günden daha uzun sürebileceği anlamına geliyordu (o zaman GetTickCount tam bir döngüden geçecek). Ama bu uygulama alanında değil.