Fehler, Irrtümer, Fragen - Seite 2258
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
Sie müssen in der Lage sein, Änderungen in den Eigenschaften aller Diagramme zu verfolgen, nicht nur desjenigen, auf dem das MQL-Programm platziert ist.
Machen Sie eine Krücke durch einen Timer.
Machen Sie eine Krücke durch den Timer.
Ich will keine Krücke machen. MQ-Entwickler können die Möglichkeiten erweitern.
Forum für Handel, automatisierte Handelssysteme und Strategietests
Wanzen, Wanzen, Fragen
Anatoli Kazharski, 2018.08.20 08:11
Ich möchte in der Lage sein, Änderungen der Eigenschaften aller Diagramme zu verfolgen, nicht nur desjenigen, in dem das MQL-Programm platziert ist.
Zurzeit enthält das EreignisCHARTEVENT_CHART_CHANGE keine weiteren Parameter:
Veranstaltung
Parameterwert id
Parameterwert lparam
Parameterwert dparam
Parameterwert sparam
Das Ereignis der Änderung der Diagrammabmessungen oder der Änderung der Diagrammeigenschaften über den Eigenschaftsdialog
CHARTEVENT_CHART_CHANGE
-
-
-
//---
Um dieses Ereignis auf anderen offenen Charts zu verfolgen, kann die Überwachung durch Angabe der ID des gewünschten Charts aktiviert werden.
Zum Beispiel so:
Als lparam-Parameter könnte der Bezeichner des Diagramms dienen, an dem Änderungen vorgenommen wurden. Der Parameter sparam könnte der Name des Symbols sein.
Fehler bei der Ausführung:
Ergebnis: Erwartet:
A::f<int>:1 A::f<int>:1
A::f<int>:753790661 A::f<int>:2
A::f<int>:Fehler:4007
Ansonsten:
Gut. Was ist der Unterschied? Warum wurde die Array-Größe plötzlich auf 753790660 (statt auf eins) erhöht, und infolgedessen wurde der Speicher plötzlich knapp (4007)? MT5\1881\32
Außerdem... wenn Sie im ersten Fall buchstäblich drei Zeichen in der Klasse löschen, ist das Ergebnis ebenfalls in Ordnung
Danke für die Nachricht.
Behoben.
Um im aktuellen Build zu funktionieren, geben Sie bei der Deklaration der Methoden der Klasse scop nicht an.
Andere Fehlerberichte stehen mit diesem in Zusammenhang und werden nach der Behebung nicht mehr reproduziert.
das Beispiel aus der Hilfe funktioniert nicht:
https://www.mql5.com/ru/docs/basis/function/operationoverload
das Beispiel ganz unten auf der Seite funktioniert nicht, vom Wortlaut her:
Другой пример перегрузки операции индексирования - работа с матрицами. Матрица представляет собою двумерный динамический массив, размеры массивов заранее неопределены. Поэтому нельзя объявить массив вида array[][] без указания размера второго измерения и затем передавать этот массив в качестве параметра. Выходом может служить специальный класс CMatrix, который содержит в себе массив объектов класса CRow.
schreibt der Compiler:
object of 'CMatrix' cannot be returned, copy constructor 'CMatrix::CMatrix(const CMatrix &)' not found tst.mq5 244 14
object of 'CMatrix' cannot be returned, copy constructor 'CMatrix::CMatrix(const CMatrix &)' not found tst.mq5 261 11
object of 'CMatrix' cannot be returned, copy constructor 'CMatrix::CMatrix(const CMatrix &)' not found tst.mq5 281 14
object of 'CMatrix' cannot be returned, copy constructor 'CMatrix::CMatrix(const CMatrix &)' not found tst.mq5 303 11
4 Fehler, 0 Warnung(en) 5 1
Kompilierungsfehler (ME\1881\32)
Und so:
gut. Welchen Unterschied macht das?Das ist nicht der Grund.
Dies ist beim Lesen von Code sehr hilfreich und hilft in manchen Situationen, Fehler zu vermeiden.Beachten Sie, dass dies in MQL nicht überall funktioniert:
dass es in C++ ohne Fehler kompiliert wird
Beachten Sie, dass dies in MQL nicht überall funktioniert:
die sich in C++ ohne Fehler kompilieren lässt
C++ hat ein Händchen für Perversionen. Vielleicht könnte dies irgendwo in Makros verwendet werden, aber nicht direkt.
Es ist vielleicht möglich, dies irgendwo in Makros zu verwenden, aber nicht direkt.
Makros haben damit überhaupt nichts zu tun - ersetzen Sie dies durch einen normalen Zeiger und Sie haben genau die gleiche Syntax:
In MQL können Sie nicht explizit auf b.A::x verweisen, während Sie das in C++ können. Warum eine solche Einschränkung?Makros haben damit überhaupt nichts zu tun - ersetzen Sie diese durch einen gewöhnlichen Zeiger und Sie haben genau die gleiche Syntax:
In diesem Fall ist es gerechtfertigt. Bei dieser Variante ist nicht klar, warum man sie so schreibt. Wenn A:: schon alles sagt.