Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 928

 
Seric29:

Por exemplo, eu declaro parâmetros de entrada e a partir desses parâmetros preciso pegar variáveis globais e visualizá-las, mas há um problema Os parâmetros de entrada não podem ser uma matriz

se estamos falando devariáveis de entrada, você pode simplificá-las - elas têm uma visibilidade global e você pode usá-las em qualquer seção de código

ou escreva-os uma vez em um array na seção OnInit(), e mais tarde você pode copiar um array para um array, mas aqui você precisa que os array sejam os mesmos - pegue um array com um array de reserva, mas então você precisa controlar os números de índice do array para evitar um bug - você pode usar um valor de array vazio - o compilador não irá gerar um erro, mas o cálculo estará errado

input int a1=1;
input int a2=2;
input int a3=3;

int ArrayOfInput[3];
int OnInit()
  {
   ArrayOfInput[0] =a1;
   ArrayOfInput[1] =a2;
   ArrayOfInput[2] =a3;
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
 // delete cx;
  }
//+------------------------------------------------------------------+
void OnTick()
  {
      int arr[3];
      ArrayCopy(arr,ArrayOfInput);
  }
//+------------------------------------------------------------------+
HH: por alguma razão eu tinha certeza de que o operador da tarefa trabalha para matrizes idênticas, talvez eu tenha me confundido com classe - definitivamente funciona lá se os objetos são da mesma classe
 
Igor Makanu:

se estamos falando devariáveis de entrada, você pode simplificá-las - elas têm visibilidade global e você pode usá-las em qualquer seção de código

ou escreva-os uma vez em um array na seção OnInit(), e mais tarde você pode copiar um array para um array, mas aqui você precisa que os arrays sejam os mesmos - pegue um array com um array de reserva, mas então você precisa controlar os números de índice do array, para evitar um bug - você pode usar um valor de array vazio - o erro não aparecerá, mas os cálculos serão errôneos

SZZ: por alguma razão, eu tinha certeza de que o operador da tarefa trabalha para as mesmas matrizes, talvez misturado com a classe - definitivamente funciona se os objetos são da mesma classe

Não, também tentei (talvez tenha tentado um pouco e mal porque não sou muito bom neles, mas, na medida em que tentei, não funciona, além de que para todas as classes que precisam lidar através de um cólon é melhor fazê-lo aqui, como você mostrou) pensei que talvez através das classes não seja necessário, então foi assim que você fez uma linha para atribuir.

 

Olá.

Você pode me dizer se pode mudar o fuso horário no popup de alertas padrão?

Preciso sincronizar a hora do alerta com a hora do terminal (quando é diferente no terminal e na janela de alerta). Isso é possível?
 
Por que em mql4 você pode chamar int(e qualquer outro valor retornável) e void(função processual) da mesma forma, como?
 

Pergunta. Como posso percorrer todos os valores de enumeração em uma etapa não igualitária?


enum Tipos {

One=11,

Dois=12,

Três=15,

Quatro=22,

Cinco=27

};

 
The_Sheikh:

Pergunta. Como posso percorrer todos os valores de enumeração com um passo não igual?


enum Tipos {

One=11,

Dois=12,

Três=15,

Quatro=22,

Cinco=27

};

não, sizeof() não funciona para o enumhttps://docs.mql4.com/ru/basis/types/integer/enumeration

e ao converter os tipos, o nome constante é perdido

enum Types { One=11, Two=12, Three=15, Four=22, Five=27,Six = 111,Seven = 222};
enum Types_abc { a, b, c, d, e,f,g};
void OnStart()
  {
   int sz = sizeof(Types);
   Print("sz = ",sz);
   Types z = Two;
   Types_abc x = b;
   Print("z = ",EnumToString(z)," , x = ",EnumToString(x));
   x = (Types_abc)z;
   Print("z = ",EnumToString(z)," , x = ",EnumToString(x));
  }

2019.08.03 10:52:13.288 tst EURUSD,H1: sz = 4

2019.08.03 10:52:13.288 tst EURUSD,H1: z = Dois , x = b

2019.08.03 10:52:13.288 tst EURUSD,H1: z = Dois , x = Tipos_abc::12


 
Elena Baranova:

Olá.

Você pode me dizer se é possível mudar o fuso horário no pop-up padrão com um alerta?

Preciso sincronizar a hora do alerta com a hora do terminal (quando é diferente no terminal e na janela de alerta). Isso é possível?
O Alerta mostra a hora local no PC. Para fazer corresponder o tempo do terminal, você pode simplesmente mudar o tempo do computador.
 
Seric29:
Por que em mql4 você pode chamar as funções int(e qualquer outro valor retornável) e void(função processual) da mesma maneira?

é chamado de "sobrecarga".

Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Обычно в названии функции стремятся отобразить ее основное назначение. Читабельные программы, как правило, содержат разнообразные и грамотно подобранные идентификаторы. Иногда различные функции используются для одних и тех же целей. Например, рассмотрим функцию, которая вычисляет среднее значение массива чисел двойной точности, и такую же...
 

Olá. Como eu pego o sinal de entrada do indicador luminoso no código? O indicador pinta uma vela na tabela e emite um alerta para entrada.

Em poucas palavras, quero escrever um robô para este indicador.

 
Alexey Viktorov:
Alerta exibe a hora local no PC. Para configurá-lo ao mesmo tempo que o tempo do terminal, você pode simplesmente mudar o tempo do computador.

Obrigado ) É esta a única maneira, não há outra maneira de definir o tempo em Alerta? E existe uma alternativa à função Alerta() padrão na MQL4, na qual o tempo de alerta pode ser ajustado para o tempo do terminal?

Razão: