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
Weiß jemand, wo der Fehler liegt?
Der Indikator arbeitet korrekt, aber es werden mehr Balken angezeigt,
als es vorgesehen war.
Ich habe mir den Code nicht angesehen, aber ich vermute, dass nach dem Erscheinen jedes neuen Balkens nicht berücksichtigt wird, dass auch die Indikatorlinien automatisch nach links verschoben werden (wenn man sich den Chart ansieht). Mit anderen Worten: Wenn ein neuer Balken erscheint, verschieben Sie die Indikatorlinien nach rechts (beim Blick auf das Diagramm).
Der letzte Schliff...
Es stellt sich heraus, dass dies nicht die letzte ....
Es bedarf noch einiger Optimierungen.
Ich werde es fertigstellen und testen...
Wenn dies der Fall ist, behalten Sie den Tick-Indikator - Open-Interest-Indikator (auf einem realen Konto, das mit der Börse verbunden ist).
Es wurde ein ernstes Problem entdeckt:
Doppelte Ticks mit unterschiedlicher start_time :(
start_time unterschiedlich ist und die Ticks wiederholt kopiert werden, wenn
sie haben die gleiche Zeit
Ich werde sie morgen im Detail beschreiben.
Neueste Version
Ich kann nicht schlafen, also dachte ich, ich schreibe mal auf, was so los ist.
(Der vollständige Code des Indikators befindet sich im obigen Beitrag).
Die Ticks von der Börse kommen nicht streng nach Zeitintervallen zum Terminal,
sondern in Blöcken (siehe Bildschirmfoto) Block 1, Block 2 usw.
Das Terminal "speichert" sie und zeigt sie in der Tabelle an, so wie es sie von der Börse erhält (Block für Block).
Inbeiden Blöcken können Transaktionen mit der gleichen Zeit stattfinden.
Wenn wir CopyTicks() NICHT in Echtzeit aufrufen (z. B. am nächsten Tag oder in wenigen Sekunden),
dann gibt die Funktion CopyTicks() die genauen Daten zurück.
In Echtzeit geschieht jedoch Folgendes:
Wenn start_time = (23:49:58.114), erhalten wir Block 1 vollständig (rot eingekreist).
Dann warten wir auf die Zeitumstellung, um Block 2 (grün eingekreist) zu erhalten.
Um eine Verdoppelung von Block 1 zu vermeiden (OnBookEvent kann sehr schnell ausgelöst werden)
wir führen eine Überprüfung ein, um sicherzustellen, dass sich die Zeit geändert hat
if(start_time==ulong(ticks[copied-1].time_msc)) return;
Wenn start_time = (23:49:58.596), hätten wir Block 2 erhalten müssen,
aber die Funktion CopyTicks() liefert sowohl Block 2 als auch alle Ticks mit der Zeit (23:49:58.114),
wenn Block 2 mindestens einen Tick mit der gleichen Zeit hat (23:49:58.114).
Das ist eine sehr traurige Nachricht.... :(
Solange die Entwickler dies nicht beheben, ist es unmöglich, ein Real Time Tape von Trades zu erhalten.
Und warum glauben Sie, dass Ticks von einer bestimmten Zeit und ZUKUNFT in die Geschichte heruntergeladen werden, wenn Sie nach Zeit abfragen? Bei der Abfrage von Ticks nach Zeit werden die Ticks von einer bestimmten Zeit in die ZUKUNFT heruntergeladen. Zum Beispiel:
Eingangsdaten (Abfrage 20000 Ticks), Uhrzeit 2016.08.25 20-00-00:
Empfangen:
Das heißt, die Ticks werden von der gewünschten Zeit2016.08.25 20:00:00 in Richtung ZUKUNFT empfangen (der letzte Tick hat die Zeit2016.08.26 00:02:08)
Und warum glauben Sie, dass Ticks von einer bestimmten Zeit und FUTURE in die Historie heruntergeladen werden, wenn die Abfrage nach Zeit erfolgt? Bei der Abfrage von Ticks nach Zeit werden die Ticks von einer bestimmten Zeit in die ZUKUNFT heruntergeladen. Zum Beispiel:
Eingangsdaten (Abfrage 20000 Ticks), Uhrzeit 2016.08.25 20-00-00:
Empfangen:
Das heißt, die Ticks werden von der gewünschten Zeit2016.08.25 20:00:00 in Richtung FUTURE empfangen (der letzte Tick hat die Zeit2016.08.26 00:02:08)
Ich denke nicht in die Tiefe, ich sehe aus der Tiefe heraus das "Angetackerte".
Warum denken?
Führen Sie den Indikator aus und überzeugen Sie sich selbst!
Und lesen Sie überhaupt, was dort geschrieben steht?