Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 95
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Sind Sie sicher, dass Sie die ganze Frage gelesen haben?
...zwischen zwei Aufrufen von GetMicrosecondsCount...
Der erste Aufruf erfolgt vor der Synchronisierung, der zweite nach der Synchronisierung. Der Unterschied ist derselbe: die tatsächliche Anzahl der Mikrosekunden + Synchronisierungskorrektur.
Genau das meine ich: Der erste Aufruf erfolgt vor der Synchronisierung, der zweite nach der Synchronisierung. Die Differenz ist gleich: die tatsächliche Anzahl der Mikrosekunden + die Synchronisierungskorrektur.
Wie hoch ist nun die Wahrscheinlichkeit einer Zeitkorrektur zwischen zwei Aufrufen von GetMicrofsecondsCount?
Wenn man wirklich Mikrosekunden misst, liegt die Wahrscheinlichkeit nahe bei 0.
Und Sie messen Mikrosekunden in Abständen von Sekunden oder mehr? Und warum? Spherocon im Vakuum?
Sie irren sich, ich habe den Code hier ausdrücklich mit WinApi zitiert. Führen Sie ihn aus, ändern Sie dabei die Uhr, und sehen Sie sich das Ergebnis an.
Es ist nicht ganz klar, wie man mit Ihnen einen Dialog führen kann, wenn Ihre Argumente auf Vermutungen beruhen, und Sie es nicht einmal für nötig halten, sich mit dem Verlauf der Diskussion vertraut zu machen.
Wie hoch ist nun die Wahrscheinlichkeit einer Zeitkorrektur zwischen zwei Aufrufen von GetMicrofsecondsCount?
Wenn man wirklich Mikrosekunden misst, dann ist die Wahrscheinlichkeit fast 0.
Und Sie messen Mikrosekunden in Sekunden oder mehr? Und warum? Spherocon in einem Vakuum?
Wie ich schon sagte, hängt diese Wahrscheinlichkeit von der Synchronisationsperiode ab. Je kürzer sie ist, desto häufiger kommt es zu einer Verschiebung, d.h. desto höher ist die Wahrscheinlichkeit. Und auch vom Abstand zwischen benachbarten Messungen. Je länger sie ist, desto häufiger werden wir den Offset treffen. Die Wahrscheinlichkeit wird also auf der Grundlage dieser beiden Parameter berechnet, und nicht nur mit dem Finger am Himmel.
Und warum schreiben Sie gleichzeitig in Sekunden- und Millisekunden-Intervallen? Alles unter 16 ms kann zum Beispiel nur mit dieser Funktion gemessen werden. Und selbst 16-30 Millisekunden müssen mit dieser Funktion gemessen werden, sonst ist der Fehler zu groß.
Wenn Sie der Meinung sind, dass es sich dabei um Kleinigkeiten handelt, die man ignorieren kann, dann ist das Ihre persönliche Meinung. Früher haben wir hier über die Standard-Systemfunktion QueryPerformanceCounter gesprochen, die ohne jegliche Verschiebungen funktioniert. Sie muss aus einem bestimmten Grund erfunden worden sein. Und übrigens hat Renat sie hier aus irgendeinem Grund erklärt:
So zählen wir die Mikrosekunden.
In Wirklichkeit geht es aber nicht um den QueryPerformanceCounter.
Sie sind derjenige, der keine Ahnung von dem Problem hat, das Sie aufgeworfen haben.
Es gibt keine Zeitänderung in QueryPerformanceCounter. Was meinen Sie? Haben Sie den Code ausgeführt, zu dem ich Ihnen den Link gegeben habe?
Nach der Überprüfung der MQL5-Codeausführungsmaschine stellte sich heraus, dass wir in GetMicrosecondCount ein hybrides Messschema hatten:
Dieser Code ist entstanden, weil versucht wurde, den System-Overhead für den Aufruf der Zeitmessung zu reduzieren. Einer der Entwickler hat es übertrieben.
Wir persönlich und Slava waren sicher, dass ein reiner QueryPerformanceCounter funktionierte. Und es gab einen solchen Kodex. Aber wir haben uns geirrt, denn es handelt sich um ein Hybridmodell.
Jetzt funktionieren nur noch QueryPerformanceFrequency + QueryPerformanceCounter.
Fazit: Ja, wir haben sowohl die Implementierung der Funktion GetMicrosecondCount als auch den Schutz ihres Verhaltens vermasselt.
Slawa und ich entschuldigen uns dafür!Eine Erinnerung an die Verwendung von expliziten oder impliziten"sollte"-Sätzen. Die Verwendung von "metaquotes should" anstelle von "please consider" ist jetzt inakzeptabel.
Bitte bedenken Sie, dass das Lesen zwischen den Zeilen in den meisten Fällen nichts mit dem zu tun hat, was der Gesprächspartner schreibt.
Tatsächliche Fehlerberichte mit Hilfe des Forums und das Aufspringen auf MQs sind unvereinbare Dinge. Es ist schwer, sich eine Person vorzustellen, die sich ständig in einen Hasser verwandelt und wieder zurück.
IS 0 13:32:55.239 Trades '11391209': accepted exchange buy 1.00 AFKS at market DM 0 13:33:07.896 Trades '11391209': deal #265475900 buy 1.00 AFKS at 9.095 done (based on order #284425784) OD 0 13:33:07.898 Trades '11391209': order #284425784 buy 1.00 / 1.00 AFKS at 9.095 done in 12757.608 ms
Freunde, könnt ihr mir sagen, wen ich um Rat fragen kann - ich möchte verstehen, wie man mit Preisunterschieden für dasselbe Produkt an verschiedenen Börsen arbeitet - ich bin neu in diesem Geschäft, ich möchte es verstehen. Ich wäre für jeden Rat dankbar - vielleicht sollte ich in einem anderen Thread schreiben?
Ich habe Zugang zu mehreren ausländischen Börsen, aber ich verstehe nicht, wie das alles funktioniert