Bibliotheken: Init_Sync

 

Init_Sync:

Die Bibliothek synchronisiert Init/Deinit von Indikatoren

Autor: fxsaber

 

Ich kann das leider nicht nachvollziehen. Bei meinen Tests wird keine Reihenfolge gestört.

Es wird wie erwartet DeInit und dann Init ausgeführt. Alles andere wäre ja eher fragwürdig.


Daher frage ich mich, was dieses Codebeispiel soll !?

 

Ich vermute, dass das manchmal auftritt, aber nicht immer und notwendigerweise.

Liegt wahrscheinlich am 'threadrace' und da ist nicht bestimmbar was wann in welcher Reihenfolge ausgeführt wird.

Ich hatte selbst mal die Idee (in MT4, sollte aber auch in MT5 gehen)

   int lastPing = TerminalInfoInteger(TERMINAL_PING_LAST);

zu verwenden, um eine Unterbrechung der Verbindung zum Server zu verwenden - nicht möglich!

Da der Ping-Test vom Terminal im eigenen Thread ausgeführt wird, ist es nicht sicher, dass dieser Befehl, auch wenn er als aller, aller, aller erstes in OnCalculate() oder OnTick() steht, die Unterrechnung korrekt anzeigt.

Wenn der Ping-Test nur ein Millisekündchen vor her ausgeführt worden war, zeigt er an alles sei ok :(

Probier es aus, in dem Du einfach mal das Lankabel ziehst...

Meine Vorschlag, entweder durch das Ändern des Threadings (wohl schwer), oder durch das Bereitstellen der letzten 2, 3 Pingtest (wäre einfach) von einem EA oder Indikator super einfach eine Unterbrechung erkennen zu können: We have no intention....

 
Otto Pauser:

Ich kann das leider nicht nachvollziehen. Bei meinen Tests wird keine Reihenfolge gestört.

Es wird wie erwartet DeInit und dann Init ausgeführt. Alles andere wäre ja eher fragwürdig.


Daher frage ich mich, was dieses Codebeispiel soll !?

Wenn man diesen Indikator startet und seinen Zeitrahmen oder Symbol ändert, sieht man eine Störung in der Reihenfolge der Strings "Init" und "Deinit" im Journal.