Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 25.06.22
TraderMike TraderMike ist offline
Mitglied
 
Registriert seit: Jun 2022
Beiträge: 42
TraderMike befindet sich auf einem aufstrebenden Ast
Standard

"Counter is limited by the restrictions of the system timer. Time is stored as an unsigned integer, so it's overfilled every 49.7 days if a computer works uninterruptedly."

"The OnTimer() function is called when the Timer event (EventSetMillisecondTimer) occurs, which is generated by the system timer only for Expert Advisors and indicators - it can't be used in scripts. The frequency of the event occurrence is set when subscribing to notifications about this event to be received by the EventSetTimer() function."

Der System Timer ist die lokale Windows PC Zeit, welche eine Genauigkeit ~30Sek hat, d.h. alle Funktionen wie (EventSetMillisecondTimer, GetMicrosecondCount, GetTickCount) sind abhängig von der lokalen Windows System Zeit und haben damit ein Sync Problem. z.B. springt die interne Windows Zeit um 40ms, springt auch die MQL Funktion bei der Verarbeitung (z.B. Abfrage wieviele ms/µs vergangen sind) mit.

Das würde sich nur umgehen lassen indem man die interne Windows Zeit mit einer externen Quelle, z.B. Atomzeituhr synchron hält, dann haben auch die MQL Funktionen immer die richtige Zeit. Das gilt für alle Programme die Zeit Funktionen im ms/µs Bereich verarbeiten.

Läuft das ganze in einem VPS, oder der Computer läuft durch, muss innerhalb des Zeitfensters 49,7 der PC oder VPS neugestartet werden, um das unint überladen zu verhindern, mal davon abgesehen das kein VPS Anbieter eine Atomzeituhr Anbindung für seine VPS im Angebot hat.

Fazit: Interessantes Feature im Sek Bereich, wo es egal ist wenn die interne Windows PC Zeit um z.B. 40ms springt, für ms/µs nicht umsetzbar.

Mike

Geändert von TraderMike (25.06.22 um 02:06 Uhr)