![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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 hätte gerne einen Kommentar von den Entwicklern, da in der Dokumentation nichts darüber steht.
Können Sie dem obigen Protokoll nicht entnehmen, dass es einen Zähler gibt?
Sieht es im obigen Protokoll nicht so aus, als gäbe es einen Zähler?
Aus dem obigen Protokoll können Sie ersehen, dass der eine EA den anderen nicht abmeldet. Aber wie sie umgesetzt wird - durch Zähler oder auf andere Weise - ist nicht klar. Darüber hinaus hat der Programmierer einen Indikator und einen Expert Advisor erstellt. Der Indikator hat jedoch die unangenehme Eigenschaft, dass er die Reihenfolge des Starts von OnInit() und OnDeinit() durcheinanderbringt. Allerdings sollte es den Zähler nicht verwirren, wenn er wirklich einen hat.
Aus dem obigen Protokoll können Sie ersehen, dass der eine EA den anderen nicht abmeldet. Aber wie sie umgesetzt wird - durch Zähler oder etwas anderes - ist nicht klar. Darüber hinaus verfügt der Programmierer über einen Indikator und einen Expert Advisor. Der Indikator hat jedoch die lästige Eigenschaft, die Reihenfolge des Starts von OnInit() und OnDeinit() zu vertauschen.
Deshalb haben wir die Variable is_book eingeführt, um Verwechslungen zu vermeiden.
Die Entwickler haben MarketBookAdd() nicht ohne Grund zu einer FUNKTION gemacht.
Können Sie nicht aus dem obigen Protokoll ersehen, dass es einen Zähler gibt?
Das Protokoll ist nicht aussagekräftig, wenn eine andere Situation als die, in der das Problem auftritt, verwendet wird.
Nehmen Sie 2 Ihrer Programme (Expert Advisor und einen Indikator, oder 2 Indulatoren) - setzen Sie sie auf denselben Chart und löschen Sie dann eines davon. Das Abonnement der verbleibenden Instanz fällt weg.
Selbst wenn die OnInit/OnDeinit-Aufrufreihenfolge korrekt ist (in diesen Tests war sie immer korrekt), gibt es ein Problem.
Funktioniert dieser Ansatz nicht?
Ich habe es noch nicht im Terminal ausgeführt, aber ich habe eine Frage - wie hilft das Verschieben des Codes in einen Objekt-Wrapper gegen das "Abschneiden der Enden" durch das Terminal selbst (wie es jetzt geschieht)? Nun, es wird ein Objekt erstellt und das Abonnement beginnt, und wenn dann jemand ein anderes Programm mit Abonnement schließt, wird das Objekt nie erfahren, dass es kein Abonnement mehr gibt.
Ich habe es auf die einfache Art gemacht: Ich vergleiche Timeouts bei OnBookEvent und OnTick. Wenn die Zeitüberschreitung bei der ersten um mehr als N Sekunden die Zeitüberschreitung bei der zweiten übersteigt, melde ich mich erneut an.
Ich habe es noch nicht im Terminal ausgeführt, aber es stellte sich die Frage: Wie hilft das Übertragen des Codes in einen Objekt-Wrapper dabei, vom Terminal selbst die Enden abzuschneiden (wie es jetzt geschieht)? Nun, ein Objekt wird erstellt und das Abonnement beginnt, und wenn dann jemand ein anderes Programm mit einem Abonnement schließt, wird das Objekt nie erfahren, dass das Abonnement nicht mehr besteht.
Ich habe es auf einfache Weise gemacht: Ich vergleiche Timeouts für OnBookEvent und OnTick. Wenn die erste Zeitüberschreitung die zweite Zeitüberschreitung um mehr als N Sekunden überschreitet, melde ich mich erneut an.
Nun, wie erwartet, liegen Sie falsch.
1. Indikator
Zweiter Indikator
Ergebnis
Ich habe es noch nicht im Terminal ausgeführt, aber es stellt sich eine Frage: Wie hilft das Verschieben des Codes in einen Objekt-Wrapper gegen das "Abschneiden der Enden" durch das Terminal selbst (wie es jetzt geschieht)?
Init und Deinit nehmen nicht an dem Abonnement teil. Vielleicht würde dieser Umstand helfen.
Ich habe diese Indikatoren in verschiedenen Fenstern desselben Symbols ausgeführt, und es funktioniert einwandfrei,
aber als ich beide Indikatoren im selben Symbolfenster laufen ließ, war es wirklich
Das Abonnement ist beim Entfernen eines Indikators "abgefallen".
Schreiben Sie an die SD (vielleicht haben sie Zeit, eine Korrektur in der neuen Version vorzunehmen)
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
OnBookEvent-Abonnement fällt manchmal ab - gibt es so etwas?
prostotrader, 2018.07.24 21:25