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

 

Liebe Kollegen, ich bin ratlos. Ich brauche etwas Hilfe.

Ich habe einen normal funktionierenden Indikator, ich habe ihn aus zwei gemacht, aber das ist nicht der Punkt. Ich möchte den ersten Block mit externen Variablen ausblenden, aber wenn ich nach der Kompilierung eine Eingabe in diesem Block entferne, bleibt das Terminal mit dem im Diagramm installierten Indikator hängen.

Das Codefragment von Zeile 76 bis 86

input string     01 = "••  Channel:";   // ------------------------------------------------------------
input string     02 = "";       //  

input ENUM_TF_MINUTES   TMA_TimeFrame = TF_CURR;                        // Time Frame
input uint              TMA_Half_Length = 55;                                                                   // Averaging Period
input ENUM_APPLIED_PRICE        TMA_Price = PRICE_CLOSE;        // Applied _Price
input double    TMA_ATR_Multiplier = 3;                                                         // ATR Multiplier
input uint              TMA_ATR_Period = 100;                                                                   // ATR Period
input double    TMA_Band_Deviation_Percent = 50;                        // Band Deviation Percent
input bool              TMA_Interpolate = true;                                                         // Interpolate?
input uint Bars_Limit=1000;

Es bleibt auch hängen, wenn ich alle diese Blöcke unter andere Variablen verschiebe und auch wenn ich die äußersten Variablen nach oben oder unten verschiebe:

Wenn ich die Reihenfolge der Variablen innerhalb des Blocks ändere, wird er normal kompiliert. Das Terminal friert nicht ein.

Ich verstehe nicht, was hier los ist. Vielleicht sehe ich etwas Offensichtliches nicht, mein Auge ist unscharf ((( Ich füge den Code bei

P.S. Das Problem wurde behoben, der Code wurde entfernt.
 
Andrey Kaunov #:

Liebe Kollegen, ich bin ratlos. Ich brauche etwas Hilfe.

Ich habe einen normal funktionierenden Indikator, ich habe ihn aus zwei gemacht, aber das ist nicht der Punkt. Ich möchte den ersten Block mit externen Variablen ausblenden, aber wenn ich nach der Kompilierung eine Eingabe in diesem Block entferne, bleibt das Terminal mit dem im Diagramm installierten Indikator hängen.

Das Codefragment von Zeile 76 bis 86

Es bleibt auch hängen, wenn ich alle diese Blöcke unter andere Variablen verschiebe und auch wenn ich die äußersten Variablen nach oben oder unten verschiebe:

Wenn ich die Reihenfolge der Variablen innerhalb des Blocks ändere, wird er normal kompiliert. Das Terminal friert nicht ein.

Ich verstehe nicht, was hier los ist. Vielleicht übersehe ich etwas Offensichtliches, mein Auge ist unscharf (((( Ich füge den Code bei

Ersetzen der Eingabe durch const

und freuen Sie sich!

 
Maxim Kuznetsov #:

Eingabe durch Konstante ersetzen

und freuen Sie sich!

Das hilft nicht, das Terminal hängt sich immer noch auf, wenn man einen Indikator zum Diagramm hinzufügt.

 
Andrey Kaunov #:

Das hilft nicht, das Terminal bleibt beim Hinzufügen des Indikators zum Diagramm immer noch hängen.

Lässt es sich kompilieren?

Wenn der Parameter also ein Input-Attribut hat, funktioniert es, aber wenn const, bleibt es hängen?

ein solches Wunder gibt es nicht

 
Andrey Kaunov #:

Es ist ein Shaitan, ich verstehe nichts. Vielleicht übersehe ich etwas Offensichtliches, mein Auge ist unscharf (((( Ich füge den Code bei

Ab Zeile 379 haben Sie eine Rekursion zum Indikator (Aufruf selbst). Es gibt dort Parameter, die Sie ebenfalls anpassen müssen, nachdem Sie die Reihenfolge der Parameter geändert haben.

 
Nikolay Ivanov #:

Ab Zeile 379 haben Sie eine Rekursion zum Indikator (der sich selbst aufruft). Es gibt dort Parameter, die Sie ebenfalls anpassen müssen, nachdem Sie die Reihenfolge der Parameter geändert haben.

Vielen Dank, Nikolay.

Ja, ich hätte tiefer graben müssen. Ich stecke in den Parametern fest.

 

Können Sie mir sagen, warum die innere Schleife in diesem Zyklus nicht funktioniert?

for (int Try=0; Try<1;) 

  {  Print("цикл 1");

      for (int Try2=0; Try2<1;) 

        {  Print("цикл 2"); Try=1; Try2=1;
...


Es wird nicht "Zyklus 2" gedruckt . Nur "Zyklus 1".

 
Wer weiß, wie man die Größe von OBJ_RECTANGLE_LABEL so einstellt, dass sie auf verschiedenen Monitoren gleich ist? Ich habe ein kleines Panel in der Größe des eingebauten OneClickTrading-Panels (in Pixeln) erstellt, aber auf verschiedenen Monitoren ändert sich meine Größe, aber die des eingebauten Panels nicht.
 
Ivan Butko #:

Können Sie mir sagen, warum die innere Schleife in diesem Zyklus nicht funktioniert?

for (int Try=0; Try<1;) 

  {  Print("цикл 1");

      for (int Try2=0; Try2<1;) 

        {  Print("цикл 2"); Try=1; Try2=1;
...


Der "Zyklus 2" wird nicht gedruckt. Nur "Zyklus 1"

alles druckt, Warnungen.

void OnStart()
  {
//---
for (int Try=0; Try<1;) 

  { Alert("цикл 1");

      for (int Try2=0; Try2<1;) 

        {  Alert("цикл 2"); Try=1; Try2=1;
        }}
   
  }
//+------------------------------------------------------------------+

2022.03.20 10:28:29.373 Script qqq EURUSD,M1: entfernt
2022.03.20 10:28:29.373 qqq EURUSD,M1: uninit Grund 0
2022.03.20 10:28:29.373 qqq EURUSD,M1: Alert: Zyklus 2
2022.03.20 10:28:29.357 qqq EURUSD,M1: Alert: Zyklus 1
2022.03.20 10:28:29.326 qqq EURUSD,M1: initialisiert

 
Valeriy Yastremskiy #:

alles druckt, Warnungen

2022.03.20 10:28:29.373 Script qqq EURUSD,M1: entfernt
2022.03.20 10:28:29.373 qqq EURUSD,M1: uninit Grund 0
2022.03.20 10:28:29.373 qqq EURUSD,M1: Alert: Zyklus 2
2022.03.20 10:28:29.357 qqq EURUSD,M1: Alert: Zyklus 1
2022.03.20 10:28:29.326 qqq EURUSD,M1: initialisiert

Danke für den Scheck! Ich werde mir die