Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 84

 
lobo:

Pergunta: Como é que eu estabeleço o quê e onde para que os sinais não cheguem? Não subscrevi nenhum dos sinais.


+ e desactivar a tabulação de sinais no terminal.

 
sergeev:

+ e desactivar a tabulação de sinais no terminal.


O menu de contexto do separador "alertas" não está activo, só se pode "criar" lá. No separador "sinais" só se podem ver os sinais recebidos, não se pode cancelar ou apagar a sua subscrição.
 

Boa tarde!!!

Estou a tentar descobrir o mql5 e reescrever a EA a partir da versão 4, e deparei-me com alguns problemas:

1. O compilador escreve 'cH' - identificador não declarado na linhase(fcorH==1) countH=cH; embora a variável seja atribuída. O que é o senão?

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

2. a mesma história com outra variável 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);        // отрисовка ближайшего сопротивления

Mas para além disso, no segundo exemplo há um aviso"possível perda de dados devido à conversão do tipo" na linhatemporal TimeRes=SupRes[y2][1];

Uma matriz a nível global é combinada sob esta forma - duplo SupRes[][2];

Por favor, diga-me o que devo fazer para corrigir estes erros e avisos.

 
WindSW:

Boa tarde!!!

Estou a tentar descobrir o mql5 e reescrever a EA a partir da versão 4, e deparei-me com alguns problemas:

1. O compilador escreve 'cH' - identificador não declarado noif(fcorH==1) countH=cH; embora a variável seja atribuída. O que é a captura?

2. a mesma história com a outra variável TimeRes:

Em ambos os casos, está a declarar uma variável dentro de uma condição/ciclo, ou seja, se a condição não for cumprida, a variável não é definida.

Colocar a definição de variáveis no início da função ou torná-las globais.

Mas além disso, o segundo exemplo causa o aviso de"possível perda de dados devido à conversão do tipo" na linha dedata TimeRes=SupRes[y2][1];

Uma matriz a nível global é combinada sob esta forma - duplo SupRes[][2];

Aconselha-se o que fazer para corrigir estes erros e avisos?

Ou convertê-lo para um tipo

datetime TimeRes=(datetime)SupRes[y2][1];
Ou definir inicialmente array e variável como o mesmo tipo.
 
fyords:

Em ambos os casos, está a declarar uma variável dentro de uma condição/ciclo, ou seja, se a condição não for cumprida, a variável não é definida.

Colocar a definição da variável no início da função ou torná-la global.

Colocar a definição da variável no início da função, mas gerou "possível utilização de variáveis não inicializadas" avisos para as variáveis cH e TimeRes.

O que fazer com ele e o que fazer com o aviso de"possível perda de dados devido à conversão do tipo" na linha de data TimeRes=SupRes[y2][1]; ????

 
WindSW:

Definiu as variáveis e recebeu um aviso "possível utilização da variável não inicializada 'cH'".

Isto é bom, mas já lhe atribuiu um valor de inicialização?

int cH=0;
Afinal, está a ler o valor pelo código e, se não houver nada, o que pode ser lido. Aqui está um aviso.
 
fyords:

Bem, ou reduzi-la ao mesmo tipo de

ou definir inicialmente array e variável como o mesmo tipo.
E como se pode definir array e variável por um tipo, se o array deve conter níveis como o dobro e a hora destes níveis como data e hora?
 
fyords:

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

Obrigado, as suas dicas ajudaram. Onde posso ler sobre definições como (data/hora)SupRes[y2][1];?
 
WindSW:
E como se pode definir uma matriz e uma variável do mesmo tipo, se a matriz deve conter níveis como o dobro e a hora desses níveis como data e hora?

Neste caso, necessitará de 2 matrizes: duplo e data/hora.

E assim que o nível for encontrado e escrito para a primeira matriz, precisamos de obter o tempo e escrevê-lo para a segunda matriz.

 
WindSW:
Obrigado, as suas dicas ajudaram. Onde posso ler sobre (data/hora)SupRes[y2][1]; definições de tipo?

Trazer os tipos

Razão: