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
Es gibt keinen Blick in die Zukunft, denn wenn für den Zeitpunkt X Ticks für mehrere Symbole vorliegen, dann wird zusammen mit dem ersten Ereignis auf einem der Instrumente bei den übrigen Symbolen (für die die Ereignisse noch in der Warteschlange stehen) der vorherige Tick angezeigt und nicht der nächste Tick (wie im Beispiel: 00:04 lag vor 00:05 und nicht danach).
Zur Synchronisation muss diese algorithmisch im eigenen Code gewährleistet werden, beispielsweise indem im OnTick-Handler die Tick-Zeiten aller beteiligten Symbole abgefragt werden, bevor ein Handel initiiert wird. Grundsätzlich ist es jedoch schwer vorstellbar, eine zuverlässige Synchronisation zu erreichen, wenn die Arbitrage genau auf Ticks basiert (und nicht auf Balken oder Minuten), da Ticks bei bestimmten Wertpapieren tatsächlich mehrere Sekunden lang ausbleiben können.
Das ist alles relativ: Bei einem Instrument kommt es zu einer Verzögerung, bei einem anderen zu einer Vorverlegung.
Dort schwankt alles; im Debugger läuft alles synchron, auch mit einem fast leeren OnTick.
Man muss die Bars für den Test in Ticks umwandeln, um die Provision und den Spread korrekt zu simulieren.
Das musste ich in OnTick umsetzen, damit die Berechnungen des benutzerdefinierten Testers mit MT übereinstimmen.
Um die Synchronisation zu gewährleisten, muss dies algorithmisch im eigenen Code umgesetzt werden, beispielsweise indem im OnTick-Handler die Tick-Zeiten aller beteiligten Symbole abgefragt werden, bevor ein Handel initiiert wird.
Ich fürchte, damit lässt sich im OnTick-Handler nicht erkennen, dass die Reihe der Ticks mit der aktuellen Zeit beendet ist. Wahrscheinlich hilft hier nur ein OnTimer im Millisekundenbereich.
Alles ist relativ: Bei dem einen Instrument entsteht ein Rückstand, beim anderen ein Vorsprung.
Ich fürchte, dadurch kann OnTick nicht erkennen, dass die Reihe der Ticks mit der aktuellen Zeit beendet ist. Wahrscheinlich hilft hier nur ein OnTimer im Millisekundenbereich.
Das hängt davon ab, wie man die Bedingung in der if-Anweisung in Bezug auf die Zeit formuliert – man muss ein striktes „>“ statt „>=“ verwenden und den Takt, der zur Auslösung der Bedingung geführt hat, nicht mitzählen.
Mit dem Timer funktioniert es genauso.
Das habe ich nicht verstanden.
Auf den ersten Blick, bei einer Zeitidentifizierung mit einer Genauigkeit von einer Millisekunde (bei Sekunden gilt Ähnliches):
Aber ich wiederhole noch einmal (für Rorschach), dass eine Synchronisation in solch kleinen Intervallen illusorisch ist. Die Ticks eines bestimmten Instruments können über Sekunden hinweg ausbleiben, sodass der für sie relevante Kurs tatsächlich „veraltet“ sein kann. Wenn es für jemanden wichtig ist, dass alle Kurse auf dieselbe [Millisekunde] genau sind, muss im angeführten Ausschnitt (im auskommentierten Analyseblock) zusätzlich die Gleichheit der Tick-Zeitpunkte überprüft werden, und erst bei Erfüllung dieser Bedingung sollte gehandelt werden.
Auf den ersten Blick, mit einer Zeitangabe auf die Millisekunde genau (bei Sekunden gilt dasselbe):
Mit dieser Methode lässt sich die Aktualität der Ticks aller Symbole keinesfalls gewährleisten. Dies ist nur über einen OnTimer im Millisekundenbereich möglich.
Stanislav Korotky #:
Что подразумевается под актуальностью (этот метод отдает последние известные тики по всем инструментам)?
Es gibt keine Ticks mehr mit der zuletzt bekannten Zeit.
Und wie kommt es, dass OnTimer ein anderes Ergebnis liefert?
Der Millisekunden-OnTimer garantiert, dass alle Ticks VOR diesem Timer-Ereignis abgelaufen sind. Das heißt, die Ticks sind für alle Zeichen aktuell.