Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 84

 
lobo:

Domanda: Come posso impostare cosa e dove in modo che i segnali non arrivino? Non mi sono iscritto a nessuno dei segnali.


+ e disattivare la scheda segnali nel terminale.

 
sergeev:

+ e disattivare la scheda segnali nel terminale.


Il menu contestuale della scheda "avvisi" non è attivo, si può solo "creare" lì. Nella scheda "segnali" è possibile solo visualizzare i segnali in arrivo, non è possibile cancellarli o eliminarli.
 

Buon pomeriggio!!!

Sto cercando di capire mql5 e riscrivere EA dalla versione 4, e mi sono imbattuto in alcuni problemi:

1. Il compilatore scrive 'cH' - identificatore non dichiarato nella lineaif(fcorH==1) countH=cH; anche se la variabile è assegnata. Qual è la fregatura?

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

2. la stessa storia con un'altra variabile 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);        // отрисовка ближайшего сопротивления

Ma a parte questo nel secondo esempio c'è un avvertimento"possibile perdita di dati a causa della conversione del tipo" nella lineadatetime TimeRes=SupRes[y2][1];

Un array a livello globale è combinato in questa forma - double SupRes[][2];

Per favore, ditemi cosa dovrei fare per risolvere questi errori e avvertimenti.

 
WindSW:

Buon pomeriggio!!!

Sto cercando di capire mql5 e riscrivere EA dalla versione 4, e mi sono imbattuto in alcuni problemi:

1. Il compilatore scrive 'cH' - identificatore non dichiarato nelif(fcorH==1) countH=cH; anche se la variabile è assegnata. Qual è la fregatura?

2. la stessa storia con l'altra variabile TimeRes:

In entrambi i casi state dichiarando una variabile all'interno di una condizione/ciclo, cioè se la condizione non è soddisfatta, la variabile non è definita.

Mettete la definizione delle variabili all'inizio della funzione o rendetele globali.

Ma oltre a questo, il secondo esempio causa l'avvertimento"possibile perdita di dati a causa della conversione del tipo" nella lineadatetime TimeRes=SupRes[y2][1];

Un array a livello globale è combinato in questa forma - double SupRes[][2];

Si prega di consigliare cosa fare per risolvere questi errori e avvertimenti?

O convertirlo in un tipo

datetime TimeRes=(datetime)SupRes[y2][1];
Oppure definire inizialmente array e variabile come lo stesso tipo.
 
fyords:

In entrambi i casi state dichiarando una variabile all'interno di una condizione/ciclo, cioè se la condizione non è soddisfatta, la variabile non è definita.

Mettete la definizione della variabile all'inizio della funzione o rendetela globale.

Ho messo la definizione della variabile all'inizio della funzione, ma ha generato avvisi di "possibile uso di variabile non inizializzata" per le variabili cH e TimeRes.

Cosa fare con esso e cosa fare con l'avvertimento"possibile perdita di dati a causa della conversione del tipo" nella linea datetime TimeRes=SupRes[y2][1]; ??

 
WindSW:

Avete definito le variabili e avete ottenuto un avvertimento "possibile uso di una variabile non inizializzata 'cH'".

Questo è buono, ma gli avete dato un valore di inizializzazione?

int cH=0;
Dopo tutto, sta leggendo il valore dal codice e se non c'è niente, cosa può essere letto. Qui è un avvertimento.
 
fyords:

Beh, o lo si riduce allo stesso tipo di

o definire inizialmente array e variabile come lo stesso tipo.
E come potete definire array e variabile con un solo tipo, se l'array deve contenere livelli come double e il tempo di questi livelli come datetime?
 
fyords:

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

Grazie, i vostri consigli mi hanno aiutato. Dove posso leggere delle definizioni come (datetime)SupRes[y2][1];?
 
WindSW:
E come potete definire un array e una variabile dello stesso tipo, se l'array deve contenere livelli come double e il tempo di questi livelli come datetime?

In questo caso avrete bisogno di 2 array: double e datetime.

E una volta trovato il livello e scritto nel primo array, dobbiamo ottenere il tempo e scriverlo nel secondo array.

 
WindSW:
Grazie, i vostri consigli mi hanno aiutato. Dove posso leggere le definizioni del tipo (datetime)SupRes[y2][1];?

Portare i tipi

Motivazione: