Eineinhalb Minuten Unterschied zwischen der Ortszeit und der neuen Tickerzeit. Was ist zu tun? - Seite 5
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
Ich weiß. Worauf wollen Sie hinaus?
Zu was:
In der Marktübersicht gibt es noch die Spalten "Volumen" "Letzter Handel" Es besteht der Verdacht, dass diese Funktion einfach die .time des letzten Ticks zurückgibt.
Die FunktionSymbolInfoInteger(_Symbol,SYMBOL_TIME) gibt nur die Zeit des letzten Ticks zurück. Denn die Änderung eines Zitats bewirkt das Erscheinen eines neuen Informationshakens.
Sie wollen die Zeit zwischen dem Eintreffen des letzten Kurses und dem Zeitpunkt des letzten Tickens messen. In Sekunden scheint es immer 0 zu sein, so dass das Terminal alles sofort zurückgibt.
An:
Die FunktionSymbolInfoInteger(_Symbol,SYMBOL_TIME) gibt nur die Zeit des letzten Ticks zurück. Denn eine Änderung eines Zitats führt zu einem neuen Informationshäkchen.
Sie möchten die Zeit zwischen dem Eintreffen des letzten Kurses und dem Zeitpunkt des letzten Tickens messen. In Sekunden scheint es immer 0 zu sein, so dass das Terminal alles sofort zurückgibt.
Auch hierin sehe ich das Problem.
Gegeben:
Die lokale Zeit und die Serverzeit sind mehr oder weniger synchron, d. h. der Unterschied zwischen .time_msc der neuen Ticks und der lokalen Zeit beträgt nur wenige Sekunden.
Wenn Sieum 18:00:00 Uhr Ortszeit versuchen, mit SymbolInfoTick einen neuen Tick für das SBER-Symbol zu erhalten, erhalten Sie einen Tick mit der Uhrzeit 17:57:00
Um 18:00:01 Uhr, wenn wir versuchen, einen neuen Tick mit SymbolInfoTick zu erhalten, erhalten wir einen Tick mit der Zeit 17 :58:30
Ich glaube nicht, dass dies als operativ bezeichnet werden kann.
Jetzt habe ich mich von der lokalen Computerzeit entfernt und verwende stattdessen die maximale Zeit des letzten Ticks aller Symbole aus der Marktübersicht.
Noch einmal, was ich als Problem sehe.
Gegeben:
Die lokale Zeit und die Serverzeit sind mehr oder weniger synchronisiert, d.h. der Unterschied zwischen .time_msc der neuen Ticks und der lokalen Zeit beträgt nur wenige Sekunden.
Wenn Sieum 18:00:00 Uhr Ortszeit versuchen, mit SymbolInfoTick einen neuen Tick für das SBER-Symbol zu erhalten, erhalten Sie einen Tick mit der Uhrzeit 17:57:00
Um 18:00:01 Uhr, wenn wir versuchen, einen neuen Tick mit SymbolInfoTick zu erhalten, erhalten wir einen Tick mit der Zeit 17 :58:30
Ich glaube nicht, dass dies als operativ bezeichnet werden kann.
Jetzt bin ich von der lokalen Computerzeit abgerückt und verwende stattdessen die maximale Zeit des letzten Ticks unter allen Symbolen aus der Marktübersicht.
Haben Sie verstanden, dass Sie jede beliebige Computerzeit einstellen können? Sie können es nicht verwenden. Das hat man Ihnen bereits gesagt. Das ist der erste Punkt.
Zweitens kann die maximale Zeit des letzten Ticks unter allen Symbolen der Marktübersicht nicht verwendet werden. Sie möchten den Abstand zwischen dem Zeitpunkt des letzten Ticks des SBER-Symbols (SymbolInfoTick) und dem Zeitpunkt des letzten Kurses des SBER-Symbols (SymbolInfoInteger) ermitteln. D.h. Sie müssen es ungefähr so machen, wie ich es geschrieben habe (ungefähr, weil Sie für mehr Genauigkeit einen Tumbler verwenden müssen, wie Ihnen geraten wurde).
Drittens: dies:
Wird ohne Beweise behauptet. Wenn Sie Ihren Code als Beweis betrachten, siehe "Zweites".
Ist Ihnen klar, dass Sie die Computerzeit auf alles einstellen können? Sie können nicht an sie gebunden sein. Das hat man Ihnen bereits gesagt. Zuallererst.
Wenn es sich um Millisekunden oder gar Sekunden handelt, können Sie die Zeit nicht beliebig einstellen. Es ist durchaus möglich, dass es sich um Verzögerungen von Minuten handelt. Ich messe den Unterschied jetzt nicht damit, sondern mit der maximalen Zeit .time_msc des letzten Ticks für alle Symbole aus der Marktübersicht.
Sie möchten den Abstand zwischen dem Zeitpunkt des letzten Ticks des SBER-Symbols (SymbolInfoTick) und dem Zeitpunkt des letzten Kurses des SBER-Symbols (SymbolInfoInteger) ermitteln.
Ich weiß es nicht.
Zweitens können Sie auch nicht die maximale Zeit des letzten Ticks für alle Symbole aus der Marktübersicht verwenden.
Warum? Ich vergleiche nicht die Zeit des letzten Ticks (durch den Computer), ich vergleiche die time_msc .
Ich kann Ihren Code nicht ohne Beweis verwenden. Wenn Sie Ihren Code als Beweis ansehen - siehe "Zweites".
In der Regel fragen die Entwickler nach Code, um das Problem zu reproduzieren. Hier ist eine kürzlich aufgezeichnete Verzögerung von 2 Sekunden.
(ungefähr deshalb, weil Sie, wie Ihnen geraten wurde, für eine größere Genauigkeit einen Tumbler verwenden müssen).
pivomoe:
Allein aus diesen Zeilen geht hervor, was Sie wollen. Sie sind an so etwas wie der Intersymbol-Synchronisation interessiert. Das heißt, die allgemeine Relevanz der Daten über die gewünschten Instrumente.
Ich kann Ihnen im Moment nicht weiterhelfen, ich war an dieser Frage nicht beteiligt. Fragen Sie die Entwickler.
Allein aus diesen Zeilen geht hervor, was Sie wollen. Sie sind an so etwas wie der Intersymbol-Synchronisation interessiert. Das heißt, die allgemeine Relevanz der Daten über die gewünschten Instrumente.
Ich kann Ihnen im Moment nicht weiterhelfen, ich war an dieser Frage nicht beteiligt. Adresse für Entwickler.
Alexey (wollte nicht mitmachen, aber...).
Handelt es sich nicht um den "Relevanz"-Code (NEW_TICK) von Seite 2 dieses Threads?
Hinzugefügt
Mit CUR_TICK können Sie immer noch überprüfen, ob es sich um denselben Tick handelt wie vorher oder
das neue Tick-Paket einen Tick enthält, der im vorherigen Paket nicht enthalten war.
Alexey (wollte sich nicht einmischen, aber...).
Ist das nicht der "Relevanz"-Code (NEW_TICK) von Seite 2 dieses Threads?
Offensichtlich nicht. Seitdem:
TimeTradeServer
Gibt die geschätzte aktuelle Zeit des Handelsservers zurück. Im Gegensatz zuTimeCurrent() wird der Zeitwert im Client-Terminal berechnet und hängt von den Zeiteinstellungen auf dem Computer des Benutzers ab.
D.h. sie hängt von der Computerzeit ab (das sollte für die Genauigkeit der Messung nicht so sein).
Es ist natürlich gut, denpivomoe-Code auf Korrektheit zu prüfen, und wenn es wirklich einen Fehler gibt, die Entwickler zu kontaktieren.
Die Prüfung scheint über TimeGMTOffset erfolgen zu müssen. Ich werde später ein Beispiel skizzieren.
Offensichtlich nicht. Weil:
Schauen Sie sich den Code genau an!
TimeTradeServer() wird nur verwendet, um den Tag zu bestimmen und das war's (diese Prüfung wird "nur für den Fall" durchgeführt)!
TimeTradeServer() darf überhaupt nicht ausgeführt werden!
Hinzugefügt von
Ich wiederhole
"Mit CUR_TICK können Sie immer noch überprüfen, ob es derselbe Tick ist wie vorher, oder
das neue Tick-Paket enthält einen Tick, der im vorherigen Paket nicht enthalten war, und das Paket enthält 1 Tick("old")".
Es empfiehlt sich natürlich, denpivomoe-Code auf seine Korrektheit hin zu überprüfenund, falls tatsächlich ein Fehler vorliegt, die Entwickler zu kontaktieren.
Der Fehler tritt entweder auf, wenn es Dutzende von Zeichen in der Marktübersicht gibt oder wenn mehrere Zeichen in der Übersicht geöffnet sind, aber mehrere Dutzend Tabs im Opera-Browser vorhanden sind. Ich habe die Entwickler per privater Nachricht angeschrieben.
Wie ich bereits schrieb, wird das Problem mit einem ausreichend großen Sleep zwischen den Aufrufen behoben, für 40 Zeichen reicht sleep(10). Je größer die Zahl der Zeichen, desto mehr Schlaf wird benötigt.