Ausführliche Erklärung von iCustom - Seite 5

 
William Roeder:
In Fortsetzung von #23 und gekapselt in einer Funktion #26 zeige ich nun eine Struktur, die sowohl auf MT4 als auch auf MT5 funktioniert. (Für Post-Build 600 habe ich die ungültigen Punkte(#29) in Variablennamen geändert und ints in Standardaufzählungen umgewandelt.)
Nicht kompiliert, nicht getestet.nicht kompiliert, nicht getestet.

Hallo William & Co.

Wenn Sie iCustom mehrmals für einen bestimmten Indikator mit demselben Symbol und Zeitrahmen aufrufen, wird dann der gesamte Indikatorcode wiederholt ausgeführt oder macht MQL4 etwas Intelligentes hinter den Kulissen, um die resultierenden Puffer zwischenzuspeichern? Hoffentlich ist es das Letztere, vor allem für schwerere Indikatoren... Meinem Verständnis nach verbessert MQL5 diese Situation durch die Verwendung von Handles und behandelt Indikatoren ähnlich wie das Öffnen/Schließen von Dateien.

Außerdem bin ich bei der Programmierung von EAs daran interessiert, die von der Standardbibliothek abgeleiteten CIndicator-Klassen zu verwenden, die im Vergleich zu den eingebauten Funktionen (iCustom, iMACD, iBands usw.) wahrscheinlich mehr Kontrolle (und Erweiterbarkeit) bieten, ganz zu schweigen davon, dass sie theoretisch auf beiden Plattformen, MT4 und MT5, eine ähnliche Programmiersemantik bieten sollten. Ich habe es jedoch noch nicht selbst ausprobiert und bin immer noch verwirrt über die erheblichen Unterschiede im Quellcodezwischen MQL4 und MQL5(Include/Indicators/*.mqh). Wären Sie so freundlich, mir Ihre Erkenntnisse über die Vor- und Nachteile aus Ihrem Verständnis und Ihrer Erfahrung mit diesen Funktionen/Bibliotheken mitzuteilen?

 
Dima Diall: Wenn Sie iCustom mehrere Male für einen bestimmten Indikator mit dem gleichen Symbol und Zeitrahmen aufrufen, wird der gesamte Indikatorcode wiederholt ausgeführt oder tut MQL4 etwas Intelligentes hinter den Kulissen, um die resultierenden Puffer zwischenzuspeichern?
  1. Wenn das spezifische Symbol/TF-Chart nicht existiert, wird es unsichtbar erstellt.
  2. Wenn eine bestimmte Indikator/Parameter-Kombination nicht auf dem Symbol/TF-Chart vorhanden ist, wird sie unsichtbar hinzugefügt.
  3. Dann wird aus dem angeforderten Puffer[index] gelesen.
 
William Roeder:
  1. Wenn das spezifische Symbol/TF-Chart nicht existiert, wird es unsichtbar erstellt.
  2. Wenn eine bestimmte Indikator/Parameter-Kombination nicht auf dem Symbol/TF-Chart vorhanden ist, wird sie unsichtbar hinzugefügt.
  3. Dann wird aus dem angeforderten Puffer[index] gelesen.

Vielen Dank für die schnelle Antwort, William - das ist in der Tat ein interessanter Ansatz... Werden solche unsichtbar erstellten Indikatoren automatisch zerstört, wenn der EA beendet wird? Ich würde annehmen, dass dies der Fall ist, zumindest in MQL4; vielleicht muss man in MQL5 explizit IndicatorRelease() für die vom EA verwendeten Indikator-Handlesaufrufen.

PS: Haben Sie zufällig Erfahrung mit CIndicator-Klassen in der Standardbibliothek? Ich habe online nach Codebeispielen gesucht und konnte nicht viel finden, außer dem spärlichen Referenzmaterial auf http://www.mql5.com/en/docs/standardlibrary/technicalindicators/CIndicators/CIndicator (oder dem eingebauten Hilfesystem).

PPS: Gibt es eine Möglichkeit, E-Mail-Benachrichtigungen in diesem Forum zu aktivieren? Ich habe mich in meinen Kontoeinstellungen umgesehen und konnte nichts finden.

Documentation on MQL5: Standard Library
Documentation on MQL5: Standard Library
  • www.mql5.com
MQL5 Standard Library is written in MQL5 and is designed to facilitate writing programs (indicators, scripts, experts) for end users. Library provides convenient access to the most of the internal MQL5 functions.
 
  1. Da ungenutzte Charts nach zehn Minuten gelöscht werden, nehme ich an, dass dies auch für ungenutzte Indikatoren gilt.
  2. Ich habe MT5 nicht studiert. Sehen Sie sich den Code in der Klasse an.
  3. Nicht dass ich wüsste. Ich benutze nur Firefox und das Update Scanner Add-on.