Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 130

 
-Aleks-:

Bitte sagen Sie mir, was diese Warnung bedeutet:

Deklaration von 'm_data' verdeckt Member-Deklaration in Datei 'ArrayObj.mqh' in Zeile 16 ZigZag_rev_4.mqh 27 32

das bedeutet, dass Sie eine neue Variable (dieselbe) neu deklarieren
 
-Aleks-:

Bitte sagen Sie mir, was diese Warnung bedeutet:

Deklaration von 'm_data' verdeckt Member-Deklaration in Datei 'ArrayObj.mqh' in Zeile 16 ZigZag_rev_4.mqh 27 32

die gleichen Variablen werden global deklariert, wenn ich mich nicht irre.
 
trader781:
bedeutet dies, dass Sie eine neue Variable (dieselbe) neu deklarieren
Sergey Gritsay:
Dieselben Variablen werden global deklariert, wenn ich mich nicht irre.
Danke, ich schätze, der neue Compiler erlaubt das nicht mehr?
 
-Aleks-:
Danke, ich nehme an, der neue Compiler erlaubt dies nicht mehr?
Ja, das tut sie. Das ist kein Fehler. Der Compiler warnt jedoch, dass es Probleme und schwer zu definierende Programmfehler geben kann.
 
Artyom Trishkin:
Das tut sie. Dies ist kein Fehler. Der Compiler warnt jedoch, dass es Probleme und Programmfehler geben kann, die schwer zu erkennen sind.
Ich danke Ihnen.
 

Ein Ratschlag für einen Anfänger. Im Indikator gibt es so etwas:OnCalculate(...).

Frage: Kann ich ein benutzerdefiniertes Ereignis erzeugen, umOnCalculate(...) auszulösen und den Indikator sofort neu zu berechnen? Ziel: nicht warten, bis die Zecke kommt

 
Vitaly Muzichenko:

Ein Ratschlag für einen Anfänger. Im Indikator gibt es so etwas:OnCalculate(...).

Frage: Kann ich ein benutzerdefiniertes Ereignis erzeugen, umOnCalculate(...) auszulösen und den Indikator sofort neu zu berechnen? Ziel: nicht warten, bis die Zecke kommt

Bitte: entweder per Timer oder senden Sie Ihr eigenes Ereignis. Und implementieren Sie die Logik OnCalculate() in entsprechenden Handlern bei Eintreffen des Ereignisses.
 
Alexey Kozitsyn:
Bitte: entweder per Timer, oder senden Sie Ihr eigenes Ereignis. Und implementieren Sie die Logik OnCalculate() in den entsprechenden Handlern, wenn das Ereignis eintritt.

Ich kann es nicht mitOnCalculate(...)-Ereignis berühren, ich kann jede Funktion berühren, aber ich kann nicht diese eine berühren. Der Timer ist keine Option, der Indikator wird nicht so oft benötigt, und es wäre besser, ihn mit einem Klick auf ein grafisches Element zu verwenden.

Wie wird sie umgesetzt?

 

Können Sie mir bitte sagen, wie ich die ressourcenintensivsten Stellen im Code, die die CPU belasten, richtig ausfindig machen kann?

 
Vitaly Muzichenko:

Ich kann es nicht mitOnCalculate(...)-Ereignis berühren, ich kann jede Funktion berühren, aber ich kann nicht diese eine berühren. Der Timer ist keine Option, der Indikator wird nicht so oft benötigt, und es wäre besser, ihn mit einem Klick auf ein grafisches Element zu verwenden.

Wie wird sie umgesetzt?

Nun, inOnCalculate(...) selbst verfolgen wir die Schaltfläche

wenn sie gedrückt ist - Berechnungen durchführen, wenn sie nicht gedrückt ist - beenden

drücken Sie am Ende der Berechnung .................OBJPROP_STATE,false);

Grund der Beschwerde: