Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 84

 
lobo:

Frage: Wie stelle ich was und wo ein, damit die Signale nicht ankommen? Ich habe keines der Signale abonniert.


+ und deaktivieren Sie die Registerkarte Signale im Terminal.

 
sergeev:

+ und deaktivieren Sie die Registerkarte Signale im Terminal.


Das Kontextmenü der Registerkarte "Alarme" ist nicht aktiv, Sie können dort nur "erstellen". Auf der Registerkarte "Signale" können Sie nur eingehende Signale anzeigen, Sie können sie nicht abbestellen oder löschen.
 

Guten Tag!!!

Ich versuche, mql5 herauszufinden und EA von Version 4 umzuschreiben, und ich bin auf ein paar Probleme gestoßen:

1. Der Compiler schreibt 'cH' - nicht deklarierter Bezeichner in die Zeileif(fcorH==1) countH=cH; obwohl die Variable zugewiesen ist. Wo ist der Haken?

             if(fdelH==0)                                   // проверить на близость при отсутствии уровня в массиве удаленных
               {
                int cH=countH-1;                            // предыдущее значение счетчика
                ...
                fcorH=1;                                    // перезапись уровня в массиве
               }
             if(f1==0)                                      // если занесение хая в массив разрешено
               {
                if(fcorH==1) countH=cH;                     // если разрешена перезапись уровня, то счетчик отматывается на один назад
                ...
               }

2. die gleiche Geschichte mit einer anderen Variablen TimeRes:

   for(int y2=0;y2<finish;y2++)                          // поиск ближайших уровней
      {
       double Level=SupRes[y2][0];                       // выбор проверяемого уровня
       double rL=Level-Bid;                              // разность цены и уровня
       if((rL<dPlus && rL>0) || (rL>0 && dPlus==0))      // при наличии положительной разницы
         {
          dPlus=rL;                                      // фиксировать ее
          Res=NormalizeDouble(SupRes[y2][0],_Digits);    // уровень сопротивления
          datetime TimeRes=SupRes[y2][1];                // время сопротивления
         }
      }
   ObjectSetInteger(0,oRes,OBJPROP_TIME,TimeRes);        // отрисовка ближайшего сопротивления

Aber abgesehen davon gibt es im zweiten Beispiel eine Warnung"möglicher Datenverlust durch Typkonvertierung" in derdatetime-Zeile TimeRes=SupRes[y2][1];

Ein Array auf globaler Ebene wird in dieser Form kombiniert - double SupRes[][2];

Bitte sagen Sie mir, was ich tun soll, um diese Fehler und Warnungen zu beheben.

 
WindSW:

Guten Tag!!!

Ich versuche, mql5 herauszufinden und EA von Version 4 umzuschreiben, und ich bin auf ein paar Probleme gestoßen:

1. Der Compiler schreibt 'cH' - nicht deklarierter Bezeichner in dieif(fcorH==1) countH=cH; obwohl die Variable zugewiesen ist. Wo ist der Haken?

2. die gleiche Geschichte mit der anderen Variablen TimeRes:

In beiden Fällen deklarieren Sie eine Variable innerhalb einer Bedingung/eines Zyklus, d.h. wenn die Bedingung nicht erfüllt ist, ist die Variable nicht definiert.

Setzen Sie die Definition der Variablen an den Anfang der Funktion oder machen Sie sie global.

Aber abgesehen davon, verursacht das zweite Beispiel die Warnung"möglicher Datenverlust durch Typkonvertierung" in derdatetime-Zeile TimeRes=SupRes[y2][1];

Ein Array auf globaler Ebene wird in dieser Form kombiniert - double SupRes[][2];

Was kann ich tun, um diese Fehler und Warnungen zu beheben?

Oder konvertieren Sie sie in einen Typ

datetime TimeRes=(datetime)SupRes[y2][1];
Oder definieren Sie zunächst Array und Variable als denselben Typ.
 
fyords:

In beiden Fällen deklarieren Sie eine Variable innerhalb einer Bedingung/eines Zyklus, d.h. wenn die Bedingung nicht erfüllt ist, ist die Variable nicht definiert.

Setzen Sie die Variablendefinition an den Anfang der Funktion oder machen Sie sie global.

Ich habe die Variablendefinition an den Anfang der Funktion gesetzt, aber es wurden Warnungen über die "mögliche Verwendung einer nicht initialisierten Variable" für die Variablen cH und TimeRes ausgegeben.

Was ist damit zu tun und was ist mit der Warnung"möglicher Datenverlust durch Typkonvertierung" in der datetime-Zeile TimeRes=SupRes[y2][1]; ???

 
WindSW:

Sie haben die Variablen definiert und erhalten eine Warnung "possible use of uninitialised variable 'cH'".

Das ist gut, aber haben Sie ihm einen Initialisierungswert gegeben?

int cH=0;
Schließlich wird der Wert durch den Code gelesen, und wenn dort nichts steht, wie kann er dann gelesen werden? Das ist eine Warnung.
 
fyords:

Nun, entweder reduzieren Sie es auf die gleiche Art von

oder definieren Sie zunächst Array und Variable als denselben Typ.
Und wie kann man Array und Variable durch einen Typ definieren, wenn Array Ebenen als Double und die Zeit dieser Ebenen als Datetime enthalten muss?
 
fyords:

datetime TimeRes=(datetime)SupRes[y2][1];

Danke, Ihre Tipps haben mir geholfen. Wo kann ich über Definitionen wie (datetime)SupRes[y2][1]; nachlesen?
 
WindSW:
Und wie kann man ein Array und eine Variable desselben Typs definieren, wenn das Array Ebenen als double und die Zeit dieser Ebenen als datetime enthalten soll?

In diesem Fall benötigen Sie 2 Arrays: double und datetime.

Sobald die Stufe gefunden und in das erste Array geschrieben wurde, müssen wir die Zeit ermitteln und in das zweite Array schreiben.

 
WindSW:
Danke, Ihre Tipps haben mir geholfen. Wo kann ich die Definitionen des Typs (datetime)SupRes[y2][1]; nachlesen?

Einbringen der Typen

Grund der Beschwerde: