Das Problem der Umstellung von MT4 auf MT5. Oder, genauer gesagt, die Unfähigkeit, einige Algorithmen in MT5 ohne Fehler auszuführen. - Seite 5

 
Andrey Khatimlianskii:

Es wurde vorgeschlagen, alle anderthalb Minuten eine Zeitschaltuhr zu betätigen. Nicht vor jedem Tick, und schon gar nicht bei einem Chart-Ereignis.

Der Zugang zu Zeitreihen im MT5 ist in der Tat nicht ideal. Aber wenn Sie ein Problem lösen und keine Ausrede finden müssen, dann ist es möglich.

Niemand sucht nach einer Ausrede. Sie kennen den Schwierigkeitsgrad der Aufgabe nicht. Deshalb sprechen Sie auch so leicht von einer Entschuldigung.

Es wurde vorgeschlagen, alle 2 Minuten eine Aktualisierung mit einem Timer durchzuführen. Genau das habe ich getan.

Aber... Das ist nicht genug. Auch nach diesem Timer-Update kam es beim Erstellen eines Ereignisses in einem Diagramm über die GUI häufig vor, dass der Aufruf von iBarShift -1 ergab. Dies führt zu einem Ausgang außerhalb der Array-Grenze oder zu einem anderen Fehler. Also habe ich versucht, eine Zugänglichkeitsprüfung für die Zeitreihe vor der Eingabe von OnChartEvent durchzuführen. Zum besseren Verständnis möchte ich sagen, dass wir den Zugang zu allen 21 Zeitreihen überprüfen müssen. Wenn mindestens eine Zeitreihe nicht zugänglich ist, ist es fast 100 % wahrscheinlich, dass die grafischen Darstellungen mit irgendeinem Fehler erstellt werden.

Das Programm ist mit etwa 50.000 Zeilen sehr komplex. Auf einem solchen Datenträger gibt es viele verschiedene Zeitreihenzugriffe.

Verzögerungen treten immer wieder auf (in der MT5-Variante). In MT4 funktioniert es wie am Schnürchen.

MT5 ist für mich nicht interessant. Ich verwende es nicht für den Handel. Ich verwende nur MT4. Ich habe mit der Übersetzung des Programms nur auf Wunsch der Benutzer begonnen. Als ich mit einem solchen Schmerz im Nacken konfrontiert wurde, beschloss ich, dass es besser ist, das zu tun, was interessant ist.

In den 14 Jahren, in denen das Programm entwickelt wurde, sind einige interessante Ideen entstanden. Ich bin jetzt dabei, diese Ideen umzusetzen.

 
Eugeni Neumoin:

Es wurde vorgeschlagen, dass sie alle 2 Minuten mit einem Timer aktualisiert werden sollte. Genau das habe ich getan.

Aber. Das ist nicht genug. Selbst nach diesem Timer-Update stellte sich beim Erstellen eines Ereignisses in einem Diagramm über die GUI oft heraus, dass der Aufruf von iBarShift -1 ergab.

Stimmtdas, was iBarShift sagt, wirklich?

Ich hatte auch Schwierigkeiten mit der Synchronisierung, selbst nach zeitlich begrenzten Aktualisierungen. Aber ich konnte es ironischerweise nicht reproduzieren, das Problem ist fließend.


Eugeni Neumoin:

MT5 ist für mich nicht interessant. Ich verwende es nicht für den Handel. Nur MT4. Ich habe mit der Übersetzung des Programms nur auf Wunsch der Benutzer begonnen. Als ich mich mit einem solchen Problem konfrontiert sah, beschloss ich, dass es besser ist, mit den Dingen zu arbeiten, die mich interessieren.

In den 14 Jahren, in denen das Programm entwickelt wurde, sind einige interessante Ideen entstanden. Ich bin jetzt dabei, diese Ideen umzusetzen.

Ich bin kein Befürworter von MT5. Ich habe nur sofort bemerkt, dass Sie kein großes Interesse daran haben, es zu verstehen).

Natürlich ist es besser, das zu tun, was interessant ist!

 
Eugeni Neumoin:

Niemand sucht nach einer Ausrede. Sie kennen den Schwierigkeitsgrad der Aufgabe nicht. Deshalb sprechen Sie auch so leicht von Ausreden.

Es wurde vorgeschlagen, die Daten alle 2 Minuten mit einem Timer zu aktualisieren. Genau das habe ich getan.

Aber... Das ist nicht genug. Auch nach diesem Timer-Update kam es beim Erstellen eines Ereignisses in einem Diagramm über die GUI häufig vor, dass der Aufruf von iBarShift -1 ergab. Dies führt zu einem Ausgang außerhalb der Array-Grenze oder zu einem anderen Fehler. Also habe ich versucht, eine Zugänglichkeitsprüfung für die Zeitreihe vor der Eingabe von OnChartEvent durchzuführen. Zum besseren Verständnis möchte ich sagen, dass wir den Zugang zu allen 21 Zeitreihen überprüfen müssen. Wenn mindestens eine Zeitreihe nicht zugänglich ist, ist es fast 100 % wahrscheinlich, dass die grafischen Darstellungen mit irgendeinem Fehler erstellt werden.

Das Programm ist mit etwa 50.000 Zeilen sehr komplex. Auf einem solchen Datenträger gibt es viele verschiedene Zeitreihenzugriffe.

Verzögerungen treten immer wieder auf (in der MT5-Variante). In MT4 funktioniert es wie am Schnürchen.

MT5 ist für mich nicht interessant. Ich verwende es nicht für den Handel. Ich verwende nur MT4. Ich habe mit der Übersetzung des Programms nur auf Wunsch der Benutzer begonnen. Als ich mit einem solchen Schmerz im Nacken konfrontiert wurde, beschloss ich, dass es besser ist, das zu tun, was interessant ist.

In den 14 Jahren, in denen das Programm entwickelt wurde, sind einige interessante Ideen entstanden. Ich bin jetzt dabei, diese Ideen umzusetzen.

Zwischenspeichern der Zeitreihen.
 
Artyom Trishkin:
Zwischenspeichern der Zeitreihen.

Wie meinen Sie das? Eigene Caches manuell erstellen?

 
Andrey Khatimlianskii:

Wie meinen Sie das? Eigene Caches manuell erstellen?

Zählen Sie einmal alle Zeitreihen, und fügen Sie dann nur noch weitere hinzu. Dies kann in einem Fenster geschehen.
Ja, in ihre eigenen Arrays. Sie können es mit SB machen. Die Zeitreihenklasse ist Ihre eigene.
 
Andrey Khatimlianskii:

Ist der genaue Wert von iBarShift zufällig wahr?

wahr. Ich muss die genaue Strichnummer wissen.

 
Artyom Trishkin:
Zählen Sie alle Zeitreihen einmal, und fügen Sie dann nur noch weitere hinzu. Sie können es im Fenster tun.

Sie schlagen also vor, keine Puffer zu verwenden, sondern mit Ihren eigenen Arrays zu arbeiten?

Wozu sind dann Puffer da?

Sie schlagen also vor, Ihre eigene Krücke zu bauen, anstatt Puffer zu verwenden :(

Und anstelle von iTime, iLow, etc. machen Sie Ihre eigenen Funktionen... Schreiben Sie alles auf Ihre eigene Art und Weise um, indem Sie Funktionen umgehen, die in MT5 nicht funktionieren...

Das ist drastisch. Aber lassen Sie es die Enthusiasten tun. Ich werde zur Seite gehen. Ich werde mir den Prozess nicht einmal ansehen.

 
Eugeni Neumoin:

Sie schlagen also vor, keine Puffer zu verwenden, sondern mit Ihren eigenen Arrays zu arbeiten?

Werfen Sie einen Blick auf die SB. Dort gibt es eine Arbeit mit Indikatoren. Wenn Sie nicht selbst etwas herstellen wollen. Im Allgemeinen müssen Sie eine Klasse einmal erstellen und sie dann für jede Textnachricht verwenden. Und die Daten werden immer verfügbar sein. Nur müssen Sie wahllos neue hinzufügen.
 
Eugeni Neumoin:

Sie schlagen also vor, keine Puffer zu verwenden, sondern mit Ihren Arrays zu arbeiten?

Wozu sind dann Puffer da?

Sie schlagen also vor, Ihre eigene Krücke zu bauen, anstatt Puffer zu verwenden :(

Und anstelle von iTime, iLow, etc. machen Sie Ihre eigenen Funktionen... Sie schreiben alles auf ihre eigene Art und Weise um und umgehen dabei Funktionen, die im MT5 nicht funktionieren...

Dort funktioniert alles. Aber manchmal wird der Zugang verweigert. Vielleicht liegt es an den Aktualisierungen der Zeitreihen - ich weiß es nicht. Lehnt sie ab, müssen Sie die Anfrage wiederholen, da die erste Anfrage den Datentausch auslöst.
 
Eugeni Neumoin:

wahr. Ich muss die genaue Strichnummer wissen.

Dann liegt vielleicht ein Fehler in der Logik vor. Es darf keine Bar geben.

Grund der Beschwerde: