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
Wenn Sie nicht befürchten wollen, dass Symbol() zu viel Zeit in Anspruch nimmt, können Sie auch beide Handler gleichermaßen "füttern".
Wir können die Funktion Symbol() durch eine vordefinierte Variable _Symbol ersetzen
Symbol() hat damit nichts zu tun. Die Zeit im Protokoll ist korrekt.
Die Verzögerung liegt in der Ereigniswarteschlange oder den SymbolInfo-Funktionen.
Das ist es, wovon ich spreche.
Wenn Sie also das Glas brauchen, arbeiten Sie mit OnBook. Wenn nicht benötigt, arbeiten Sie in OnTick (ohne Warteschlangen und unnötige Aufrufe).
Bleibt nur noch herauszufinden, wie man am schnellsten die tatsächliche Tick-Historie für beide Methoden ermitteln kann.
Ich denke, wenn nur der letzte Tick benötigt wird, ist SymbolInfo besser. Wenn wir eine lückenlose Historie brauchen, dann nur CopyTicks.
Symbol() hat damit nichts zu tun. Die Zeit im Protokoll ist korrekt.
Die Verzögerung liegt in der Ereigniswarteschlange oder den SymbolInfo-Funktionen.
Das ist es, wovon ich spreche.
Ich stimme zu, dass Symbol kann nicht viel kauen, aber kann einen Beitrag leisten, und sicherlich für die Reinheit der Prüfung nehmen Sie Zeitvor jedem Anruf.
Was die Warteschlange betrifft, so bin ich neugierig, wie weit OnBook unter idealen Bedingungen hinter demselben OnTick zurückbleiben kann. D.h. wenn nur dieses Symbol abonniert ist, das Terminal mit nichts anderem beschäftigt ist, usw., und was die Ursache dafür ist.
Bisher kann ich nicht zustimmen, dass es nur um die Warteschlange geht, denn wenn die Handler nichts tun, dann sollte die Warteschlange von 5-6 OnBooks nicht mehr verbrauchen als der Vorgang der Überprüfung des Symbols.
Wir sollten alle Prüfungen entfernen und sehen, waszwischen OnTick und OnBook für denselben Tick fällt.
ap: Es wurde deutlich, dass das gefräßige Print nicht erlaubt, sauber zu prüfen, weil die Warteschlange durch das Print lang wird)
Ich muss die Zeit ohne den Druck in das Array ulong setzen, und dann schon einmal alle 5 Minuten alles in Prints ausgeben, ich werde es später codieren.
Ich wollte den Code zuerst testen
Aber ich kann das Demo-Eröffner-Konto aus irgendeinem Grund nicht eröffnen. Die Zeit funktioniert wahrscheinlich nicht, oder es gibt andere Probleme?
Dann Code zu dopilieren, um genau von einem Ereignis Tick zu vergleichen.
Ich wollte den Code zuerst testen
Aber ich kann das Demo-Eröffner-Konto aus irgendeinem Grund nicht eröffnen. Die Zeit ist wahrscheinlich nicht in Ordnung, oder stimmt etwas anderes nicht mit ihr?
Dann Code zu dopilieren, um genau von einem Ereignis Tick zu vergleichen.
Sie müssen es auf ihrer Website öffnen. Sie senden dann einen Code an die Post.
Ich denke, wenn nur der letzte Tick benötigt wird, ist SymbolInfo besser. Wenn Sie eine lückenlose Historie benötigen, dann nur mit CopyTicks.
Das Problem ist, dass der Eilmarkt (FORTS) selbst bei "hochliquiden" Instrumenten sehr schwach ist,
Das bedeutet, dass man zum richtigen Preis nur eine sehrbegrenzte Anzahl von Verträgen kaufen kann, es kommt also nicht nur auf den Preis an,
aber das Volumen der Verträge zu diesem Preis ist sehr wichtig.
Und SymbolInfo gibt das Volumen dieses Preises nicht an.
Aus diesem Grund müssen wirMarketBookGet() verwenden, das sowohl Preis als auch Volumen des gesamten Buches liefert.
Sie könnenMarketBookGet() nur in Verbindung mit MarketBookAdd verwenden, um die Änderungen des Marktbechers zu erhalten.
in OnBookEvent. Sie können den Markt hinzufügen (MarketBookAdd) undMarketBookGet() aus OnTck() verwenden,
aber in diesem Fall verpassen wir einige andere Veränderungen des Marktes(ausstehende Aufträge nicht zum besten Preis).
Es ist wahr, der Markt kann damit spielen und den Markt rutschen von eingehenden Ticks bauen, aber ist es wirklich notwendig?
Hinzugefügt von
Und ich stimme nicht zu, dass wir Ticks aus der Historie erhalten können, wenn OnTck() ausgelöst wird.
Indem wir uns die letzte Tick-Zeit merken, können wir beim Auslösen von OnTck() Ticks erhalten
In Echtzeit kam ein neuer Tick herein - ausgelöst durch OnTck() lesen wir ihn sofort, d.h. er ist nicht historisch.
Es bleibt noch herauszufinden, wie man am schnellsten den aktuellen Tickverlauf für beide Methoden erhält.
Meine OnTick() ist die gleiche oder etwas schneller als OnBook (aber OnBook hat große Verzögerungen).
Ich habe die Geschwindigkeit der Funktionen getestet(Mikrosekunden)
OnTick - имеется ввиду CopyTicks из OnTick
Am schnellsten geht es mitSymbolInfoTick, aber diese Funktion setzt das Volumen nicht in den Tick!
Siehe für Hilfe.
tick [out] Ссылка на структуру типа MqlTick, в которую будут помещены текущие цены и время последнего обновления цен.
D.h. nur Zeit und Preis, aber kein Volumen :(
Bei börsengehandelten Instrumenten (insbesondere FORTS) kommt es nicht nur auf den Preis an,
sondern auch das Volumen der Verträge zu diesem Preis!
Versucht, das Glas durch OnTick() zu nehmen - große Verzögerungen deutlich sichtbar "mit dem Auge"!
Du hast alles durcheinander gebracht.
Ich habe bereits geschrieben, dass es sich bei Trades und Level2 um unterschiedliche Datenabonnements handelt, also um unterschiedliche Event-Handler.
Aus diesem Grund sollten Trades von OnTick und Volume Gangs von OnBook aufgerufen werden.
Sie versuchen, Trades von OnBook-Ereignissen und Gangs von OnTick-Ereignissen aufzurufen. Ich denke, dass OnBook für den Handel schneller sein wird.
Es wird nicht schneller sein, ich denke, es ist eine Täuschung, zwei Event-Handler zu vergleichen, die jeweils für ihren eigenen Datenstrom zuständig sind.
Ich verstehe, dass das alles Experimente sind, aber ohne die Logik zu verstehen, dass es zwei Datenströme gibt (Trades und Level2), werden Sie diese OnTick- und OnBook-Handler endlos verwirren.