Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 928

 
Seric29:

Por ejemplo, declaro parámetros de entrada y de estos parámetros necesito tomar variables globales y verlas, pero hay un problema Los parámetros de entrada no pueden ser un array

si hablamos devariables de entrada, puedes simplificarlo - tienen una visibilidad global y puedes usarlas en cualquier sección de código

o escribirlos una vez en un array en la sección OnInit(), y más tarde se puede copiar un array en otro, pero aquí se necesita que los arrays sean iguales - tomar un array con repuesto, pero entonces hay que controlar los números de índice del array para evitar un error - se podría utilizar un valor de array vacío - el compilador no generará un error, pero el cálculo será erróneo

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 alguna razón estaba seguro de que el operador de asignación funciona para matrices idénticas, tal vez me confundí con la clase - definitivamente funciona allí si los objetos son de la misma clase
 
Igor Makanu:

si hablamos devariables de entrada, puedes simplificarlo - tienen visibilidad global y puedes usarlas en cualquier sección de código

o escribirlos una vez en un array en la sección OnInit(), y más tarde se puede copiar un array en otro, pero aquí se necesita que los arrays sean iguales - tomar un array con repuesto, pero entonces hay que controlar los números de índice del array, para evitar un error - se puede usar un valor de array vacío - el error no aparecerá, pero los cálculos serán erróneos

SZZ: por alguna razón, estaba seguro de que el operador de asignación funciona para las mismas matrices, tal vez confundido con la clase - definitivamente funciona si los objetos son de la misma clase

No ahí también tal lo intenté (tal vez lo intenté un poco y mal porque no soy muy bueno en ellos pero hasta donde lo intenté no funciona además a todas las clases hay que manejarlas a través de dos puntos es mejor hacerlo aquí como lo mostraste) pensé que tal vez a través de las clases no es necesario así es como lo hiciste una línea para asignar.

 

Hola.

¿Puede decirme si se puede cambiar la zona horaria en la ventana emergente de alertas estándar?

Necesito sincronizar la hora de la alerta con la del terminal (cuando es diferente en el terminal y en la ventana de alerta). ¿Es posible?
 
¿Por qué en mql4 se puede llamar a int(y a cualquier otro valor retornable) y a void(función procedimental) de la misma manera, cómo es?
 

Pregunta. ¿Cómo puedo recorrer en bucle todos los valores de la enumeración con un paso no igual?


enum Tipos {

Uno=11,

Dos=12,

Tres=15,

Cuatro=22,

Cinco=27

};

 
The_Sheikh:

Pregunta. ¿Cómo puedo recorrer en bucle todos los valores de la enumeración con un paso no igual?


enum Tipos {

Uno=11,

Dos=12,

Tres=15,

Cuatro=22,

Cinco=27

};

no, sizeof() no funciona para el enumhttps://docs.mql4.com/ru/basis/types/integer/enumeration

y al convertir los tipos, se pierde el nombre de la constante

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 = Dos , x = b

2019.08.03 10:52:13.288 tst EURUSD,H1: z = Dos , x = Types_abc::12


 
Elena Baranova:

Hola.

¿Pueden decirme si es posible cambiar la zona horaria en la ventana emergente estándar con una alerta?

Necesito sincronizar la hora de la alerta con la del terminal (cuando es diferente en el terminal y en la ventana de alerta). ¿Es posible?
La Alerta muestra la hora local del PC. Para que coincida con la hora del terminal, basta con cambiar la hora del ordenador.
 
Seric29:
¿Por qué en mql4 puedes llamar a funciones int(y cualquier otro valor retornable) y void(función procedimental) de la misma manera?

se llama "sobrecarga".

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

Hola. ¿Cómo puedo captar la señal de entrada del indicador luminoso en el código? El indicador pinta una vela en el gráfico y emite una alerta de entrada.

Simplemente quiero escribir un robot para este indicador.

 
Alexey Viktorov:
La alerta muestra la hora local en el PC. Para ponerla a la misma hora que la del terminal, basta con cambiar la hora del ordenador.

Gracias ) ¿Es esta la única manera, no hay otra forma de ajustar la hora en la Alerta? ¿Existe una alternativa a la función estándar Alert() de MQL4, en la que la hora de la alerta se pueda ajustar a la hora del terminal?