Fehler, Irrtümer, Fragen - Seite 1667
![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
Natürlich verstehe ich nicht viel, aber ich denke, dass aus irgendeinem Grund die Indikatorkopien, die von verschiedenen "Mastern" erstellt wurden, selbst mit denselben Parametern und auf ein und dasselbe Diagramm angewandt, unterschiedliche Griffe haben. Im Prinzip wissen sie nichts von der bereits vorhandenen Kopie des Indikators, und das sollten sie auch nicht. Beim Zeichnen überlagern sie sich dann einfach.
Ich kann mich irren. Aber die Logik legt nahe, dass es so sein muss, wie im vorherigen Absatz geschrieben.
Ich bin zwar kein MQ-Entwickler, aber soweit mir dieser Prozess erklärt wurde, hat Five eine effektive Zwischenspeicherung von Indizes vorgenommen, so dass es immer nur einen "gleichen" Einzug gibt und mehrere "Hosts" einen Link darauf erhalten. Vielleicht sind die Griffe anders - ich habe es nicht überprüft -, aber im Inneren ist es die gleiche Einheit. Niemand hat etwas davon gesagt, dass "sie von der bereits vorhandenen Kopie wissen sollten" - bitte keine Spekulationen. Auf jeden Fall kennt niemand außer dem "Host" seine Indikatoren, und für einen Indikator wird eine Referenzzahl von verschiedenen "Hosts" geführt, aber er kennt die Hosts nicht.
Wie die Praxis zeigt, ist die Logik von Mensch zu Mensch unterschiedlich. Zum Beispiel stimmt meine Logik sehr oft nicht mit der von MQ überein, aber hier erzähle ich nur, was ich von ihnen gehört habe.
Ich bin zwar kein MQ-Entwickler, aber soweit mir dieser Prozess erklärt wurde, hat Five eine effektive Zwischenspeicherung von Indizes vorgenommen, so dass es immer nur einen "gleichen" Einzug gibt und mehrere "Hosts" einen Link darauf erhalten. Vielleicht sind die Griffe anders - ich habe es nicht überprüft -, aber im Inneren ist es die gleiche Einheit. Niemand hat etwas davon gesagt, dass "sie von der bereits vorhandenen Kopie wissen sollten" - bitte keine Spekulationen. Auf jeden Fall kennt niemand außer dem "Host" seine Indikatoren, und für einen Indikator wird eine Referenzzahl von verschiedenen "Hosts" geführt, aber er kennt die Hosts nicht.
Wie die Praxis zeigt, ist die Logik von Mensch zu Mensch unterschiedlich. Zum Beispiel stimmt meine Logik sehr oft nicht mit der von MQ überein, aber hier erzähle ich nur, was ich von ihnen gehört habe.
Alle Funktionen wie iMA, iAC, iMACD, iIchimoku usw. erstellen eine Kopie des entsprechenden technischen Indikators im globalen Cache des Client-Terminals. Wenn bereits eine Kopie des Indikators mit diesen Parametern existiert, wird keine neue Kopie erstellt, sondern der Zähler der Verweise auf diese Kopie erhöht.
Es ist mir gelungen, ein Testskript in der Nähe des Quellprogramms zu erstellen, das bei der Ausführung einen Fehler aufweist
Ergebnis: Ungültiger Funktionszeigeraufruf in 'Script2.mq5'.
1405 bauen. Der Fehler selbst bleibt bestehen - er wurde in einen anderen Teil des Programms verschoben - ich werde mich später darum kümmern
Aber es sind neue aufgetaucht, die es vorher nicht gab
Ergebnis: ungültige EX5-Datei (8)Wie kann ich Shift+F9 Array-Elemente im Debugging sichtbar machen?
In der Tat ist der Aufruf von IndicatorRelease in 99 % der Fälle ein logischer Programmierfehler.
Die Erstellung von Indikatoren ist eine der teuersten Operationen, die sehr tiefe Mechanismen ihrer Berechnung in Gang setzen. Der Versuch, einen Indikator-Handle zu schließen, ist ebenfalls ein sehr kostspieliger Vorgang, wenn man die tatsächlichen zugrunde liegenden Prozesse seiner Implementierung bedenkt. Das häufige Erstellen und Schließen von Indikatoren zeigt, dass der Entwickler das Wesen der Vorgänge überhaupt nicht versteht.
Es ist sehr leicht zu verstehen.
Verstehe ich das richtig, dass der Benutzer bei der Verwendung von iCustom anstelle von IndicatorCreate die Verantwortung für IndicatorRelease auf die universelle (und daher nicht optimale) Lösung der Entwickler verlagert?
In dem die erstellten Indikatoren für einige Zeit gespeichert werden, während sie mit einer bestimmten Häufigkeit aufgerufen werden. Wenn sie einige Zeit nicht aufgerufen werden, kommt es zu einem erzwungenen IndicatorRelease. Richtig?
D.h. iCustom sollte unter Berücksichtigung der goldenen Mitte zwischen Implementierungskomplexität und Leistung optimal genutzt werden. Aber wenn Sie die maximale Geschwindigkeit wollen, sollten Sie besser versuchen, alles durch IndicatorCreate zu tun, indem Sie Ihren eigenen schnelleren (nicht universellen) Algorithmus von Indikatoren schaffen und die Besonderheiten ihrer Verwendung kennen.
Habe ich das richtig verstanden?
Verstehe ich das richtig, dass der Benutzer bei der Verwendung von iCustom anstelle von IndicatorCreate die Verantwortung für IndicatorRelease auf die universelle (und daher nicht optimale) Lösung der Entwickler abwälzt?
In dem die erstellten Indikatoren für einige Zeit gespeichert werden, während sie mit einer bestimmten Häufigkeit aufgerufen werden. Wenn sie einige Zeit nicht aufgerufen werden, kommt es zu einem erzwungenen IndicatorRelease. Oder?
D.h. iCustom sollte optimal genutzt werden, unter Berücksichtigung der goldenen Mitte zwischen der Komplexität der Implementierung und der Leistung. Aber wenn Sie die maximale Geschwindigkeit wollen, sollten Sie besser versuchen, alles durch IndicatorCreate zu tun, indem Sie Ihren eigenen schnelleren (nicht universellen) Algorithmus von Indikatoren erstellen und die Besonderheiten Ihrer eigenen Verwendung von Indikatoren kennen.
Habe ich das richtig verstanden?
Nein, das sind Sie nicht.
Die beiden Funktionen sind absolut gleichwertig. Beide Funktionen geben den Indikator-Handle zurück
Nein, falsch.
Beide Funktionen sind absolut gleichwertig. Beide Funktionen geben den Indikator-Handle zurück
IndicatorRelease sollte nach iCustom durchgeführt werden?
Grundsätzlich stellt sich heraus, dass es durchaus möglich ist, MT4 EAs in MT5 laufen zu lassen. Für diejenigen, die keine anderen Indikatoren intern verwenden - sehr einfach. Diejenigen, die sie verwenden - erstellen Sie eine analoge der MT4-iCustom Lagerung. Auch die Frage der Unvorbereitetheit der Daten ist durchaus möglich.
Schreiben Sie einen solchen Adapter und jeder MT4-Indikator wird erfolgreich im MT5 laufen. Aber in diesem Fall wird Nikolay Kositsyn seinen Job verlieren... Nein, besser nicht.
IndicatorRelease sollte nach iCustom durchgeführt werden?
Grundsätzlich stellt sich heraus, dass es durchaus möglich ist, MT4 EAs in MT5 laufen zu lassen. Für diejenigen, die keine anderen Indikatoren intern verwenden - sehr einfach. Diejenigen, die sie verwenden - erstellen Sie eine analoge der MT4-iCustom Lagerung. Auch die Frage der Unvorbereitetheit der Daten ist durchaus möglich.
Schreiben Sie einen solchen Adapter und jeder MT4-Indikator wird erfolgreich im MT5 laufen. Aber in diesem Fall wird Nikolay Kositsyn seinen Job verlieren... Nein, das möchte ich lieber nicht.