Fehler, Irrtümer, Fragen - Seite 1787

 
fxsaber:
Es wäre sogar logisch, die Nummer des Häkchens in der aktuellen Warteschlange hinzuzufügen.

Dann schreibe ich direkt an ServiceDesk#1666680

Bitte überlegen Sie, wie Sie die Funktion ändern können

bool SymbolInfoTick( string symbol, MqlTick& tick );

so dass in Indicators (einschließlich OnCalculate body) die aktuellen Preise entsprechend der Beschreibung zurückgegeben werden

und gleichzeitig die Sprache um die Funktion zu ergänzen

bool SymbolInfoTick_OnCalculate( string& symbol, MqlTick& tick ); //(*)

die das Symbol und den Tick zurückgeben würde, die den OnCalculate-Aufruf der OnCalculate-Funktion verursacht haben

oder als Alternative (*): Sie können diese Parameter dem OnCalculate-Aufruf hinzufügen.

OnCalculate( ..., const string& symbol, const MqlTick& tick );
 

Ich habe eine Frage: Kann man mit den mql5-Tools alle laufenden Programme auf den Charts und deren Namen identifizieren? Wie kann ich insbesondere die Namen aller Indikatoren im aktuellen Diagramm abrufen?

 
Alexey Kozitsyn:

Ich habe eine Frage: Kann man mit den mql5-Tools alle laufenden Programme auf den Charts und deren Namen identifizieren? Wie kann ich insbesondere die Namen aller Indikatoren im aktuellen Diagramm abrufen?

https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal

https://www.mql5.com/ru/docs/chart_operations/chartindicatorname

https://www.mql5.com/ru/docs/chart_operations/chartgetstring

https://www.mql5.com/ru/docs/constants/chartconstants/enum_chart_property#enum_chart_property_string
Документация по MQL5: Операции с графиками / ChartIndicatorName
Документация по MQL5: Операции с графиками / ChartIndicatorName
  • www.mql5.com
Операции с графиками / ChartIndicatorName - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Bitte beraten Sie, wenn in der MT4 Expert Advisor rufen Sie in Serie einen benutzerdefinierten Indikator, der mehr als ein Diagramm Puffer hat, die Neuberechnung bei jedem Aufruf durchgeführt wird oder alle Puffer auf einmal berechnet werden und Sie können auf den Indikator in den Code viele Male und nicht erwarten, dass es eine Verschwendung von Ressourcen sein wird. Eine weitere interessante Frage ist, was passiert, wenn der Code nicht aufhört, ausgeführt zu werden (länger als ein Tick läuft), aber der Indikatorwert sich ändert.

 
A100:

Dann schreibe ich direkt an ServiceDesk#1666680

Bitte überlegen Sie, wie Sie die Funktion ändern können

bool SymbolInfoTick( string symbol, MqlTick& tick );

so dass in Indicators (einschließlich OnCalculate body) die aktuellen Preise entsprechend der Beschreibung zurückgegeben werden

und gleichzeitig die Sprache um die Funktion zu ergänzen

bool SymbolInfoTick_OnCalculate( string& symbol, MqlTick& tick ); //(*)

die das Symbol und den Tick zurückgeben würde, die den OnCalculate-Aufruf der OnCalculate-Funktion verursacht haben

oder als Alternative (*): Fügen Sie diese Parameter dem Aufruf von OnCalculate hinzu

OnCalculate( ..., const string& symbol, const MqlTick& tick );
Ich schließe mich dieser offensichtlichen Anmaßung an! ))
 
Alexey Kozitsyn:
Das ist sehr wenig. Mehrere Stunden lang messen. Auf mehreren Instrumenten.
Hoppla
Test_SymbolInfoTcick (Si-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
Test_SymbolInfoTcick (Si-3.17,M1)       OnCalculate: Текущее время мс = 1486493406313 (2017.02.07 18:50:06), предыдущее = 1486493406315
Test_SymbolInfoTcick (Si-3.17,M1)       OnTick: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
Test_SymbolInfoTcick (Si-3.17,M1)       OnTick: Текущее время мс = 1486493406313 (2017.02.07 18:50:06), предыдущее = 1486493406315
Test_SymbolInfoTcick (Si-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
Test_SymbolInfoTcick (Si-3.17,M1)       OnCalculate: Текущее время мс = 1486495281212 (2017.02.07 19:21:21), предыдущее = 1486495281213
Test_SymbolInfoTcick (Si-3.17,M1)       OnTick: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
Test_SymbolInfoTcick (Si-3.17,M1)       OnTick: Текущее время мс = 1486495281212 (2017.02.07 19:21:21), предыдущее = 1486495281213
Probleme auch bei OnTick. Laut Protokoll über mehrere Stunden treten bei OnCalculate dreimal so häufig Probleme auf wie bei OnTick. Das OnTick-Problem wiederholt sich immer bei OnCalculate, aber nicht umgekehrt.
 
fxsaber:
Oops
Probleme auch bei OnTick. Laut den Protokollen mehrerer Stunden treten bei OnCalculate dreimal so häufig Probleme auf wie bei OnTick. Gleichzeitig wiederholt sich das OnTick-Problem immer auch bei OnCalculate, aber nicht umgekehrt.
Es stellt sich heraus, dass SymbolInfoTick() asynchron ist...
 
-Aleks-:

Bitte beraten Sie, wenn in der MT4 Expert Advisor rufen Sie in Serie einen benutzerdefinierten Indikator, der mehr als ein Diagramm Puffer hat, die Neuberechnung bei jedem Aufruf durchgeführt wird oder alle Puffer auf einmal berechnet werden und Sie können auf den Indikator in den Code viele Male und nicht erwarten, dass es eine Verschwendung von Ressourcen sein wird. Eine weitere interessante Frage ist, was passiert, wenn der Code nicht aufhört, ausgeführt zu werden (länger als ein Tick läuft), aber der Indikatorwert sich ändert.

Alle Puffer werden auf einmal berechnet. Abfrage der Indikatorwerte in aller Ruhe - es erfolgt keine Neuberechnung

In MT4 arbeitet der Indikator, der vom Expert Advisor aufgerufen wird, im Fluss eben dieses Expert Advisors und auf einer Kopie seiner historischen Daten. Sie können den Expert Advisor in einer Schleife laufen lassen, aber gleichzeitig erhalten Sie die zum Zeitpunkt des OnTick-Aufrufs berechneten Indikatordaten. Bis Sie RefreshRates aufrufen. RefreshRates aktualisiert die historischen Daten des Expert Advisors, danach werden alle seine Daten beim ersten Aufruf des Indikators neu berechnet
 
Slawa:
Alle Puffer werden auf einmal berechnet. Rufen Sie die Werte des Indikators leise auf - es erfolgt keine Neuberechnung

In MT4 arbeitet der vom Expert Advisor aufgerufene Indikator im Fluss eben dieses Expert Advisors und auf einer Kopie seiner historischen Daten. Sie können den Expert Advisor in einer Schleife laufen lassen, aber gleichzeitig erhalten Sie die zum Zeitpunkt des OnTick-Aufrufs berechneten Indikatordaten. Bis Sie RefreshRates aufrufen. RefreshRates aktualisiert die Verlaufsdaten des Expert Advisors, danach werden alle seine Daten beim ersten Aufruf des Indikators neu berechnet

Vielen Dank für Ihre Antwort!

Vorhin hat mich auch das Blinken des ZigZag-Indikators im MT5 interessiert (kein solcher Effekt im MT4) - sehr ärgerlich - woran liegt das?