[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 307

 
hoz:

No es un ajuste, es una especie de autoajuste :)

Un accesorio sin marca firme es un accesorio.

Hasta que los parámetros principales funcionen correctamente, hay que definirlos pensando, probando, testeando en el tester, en la demo y en el juego real, y así sucesivamente, hasta que se te ocurra algo nuevo que te parezca mejor. Y todo ello sin ajustes, sino por la lógica, la teoría y la práctica.

 
Zhunko:
Cualquier variable debe ser declarada antes de poder ser utilizada. Puede estar en los parámetros, puede estar en el nivel global de la biblioteca.


Y no sólo eso, sino que debe iniciarse explícitamente.
 
hoz:

Así que aquí hay una función de la biblioteca:

Vadim, sobre funciones en el bucle¿Te refieres a lo que devuelve el operador del interruptor? Pero no es que esté obteniendo valores sobre todo el número de variables del bucle. Es sólo comparar el tipo de la máscara (variable de entrada de la función) que estoy obteniendo y luego calcular el valor de la máscara. Resulta que no hay cálculos adicionales. Sólo tengo que seleccionar el tipo de máscara y ya está. Quiero entender lo que quiere decir:

¿Puede explicarlo?
Esto supone lo que usted hará con esta función. Este es el tipo de función que se suele ejecutar a lo largo de la historia.
PREGUNTAS Y RESPUESTAS:

No sólo eso, sino que también debe iniciarse explícitamente.
Preferiblemente por orden, pero en MQL4 se inicializan con ceros por defecto cuando se declaran.
 
Recientemente me he enfrentado a un problema: ¿cómo saber que el indicador, que utilizamos en el Asesor Experto a través de iCustom() ha sido inicializado y podemos tomar datos de él? Otras veces, hay situaciones en las que el gráfico aún no ha tenido tiempo de mostrar sus objetos y el EA está intentando tomar algunos datos de sus buffers. Como resultado, a veces aparecen valores cero. Por supuesto, he comprobado los valores no nulos y sólo entonces dejar que el EA continuar su funcionamiento, pero ... ¿quizás haya una solución más elegante?
 

Una cosa más: he encontrado un comportamiento extraño (para mí) de UninitializeReason(). Compruebo su valor en el Inite, y si el marco temporal ha sido modificado y hay posiciones abiertas, entonces tengo que emitir una solicitud para cerrarlas. Si inicialmente ejecutamos el EA en M5, y luego cambiamos a otro marco temporal, entonces no habrá ninguna solicitud. Si volvemos al TF inicial (M5), habrá una petición. Creo que esto no es normal. Necesito tener una solicitud en cualquier cambio de TF.

¿Alguien puede explicarlo?

 
artmedia70:

Una cosa más: he encontrado un comportamiento extraño (para mí) de UninitializeReason(). Compruebo su valor en el Inite, y si el marco temporal ha sido cambiado y hay posiciones abiertas, entonces debería haber una solicitud para cerrarlas. Si inicialmente ejecutamos el EA en M5, y luego cambiamos a otro marco temporal, entonces no habrá ninguna solicitud. Si volvemos a la TF inicial (M5), habrá una petición. Creo que esto no es normal. Necesito tener una solicitud en cualquier cambio de TF.

¿Alguien puede explicarlo?

Haz que funcione, DeinitReason es una variable global

int deinit()
  {
//----
   DeinitReason = UninitializeReason( );
   Print("DeinitReason ",DeinitReason);
//----
   return(0);
  }
 
Mislaid:

Haz que funcione, DeinitReason es una variable global

Exactamente. La variable global Reason obtiene un valor, pero lo obtiene en init() en lugar de en deinit(), de forma que cuando se ejecuta init() se puede ver el motivo de la última desinicialización y, en función del valor, realizar una acción u otra. Pero no funciona como debería.
 

Buenas tardes.Una nueva pregunta ha surgido.Ayuda por favor.Para los conocedores hay un minuto, pero para los principiantes es difícil.Googleado nada ayuda, pero tal vez alguien ha enfrentado.

El diario dice

(2013.04.23 10:06:30 2013.04.01 00:00 xrust EURUSD,M1: el parámetro 2 de la función SetIndexBuffer debe ser un array).

https://forum.mql4.com/ru/55137#786974

 
palomnik:

Buenas tardes.Una nueva pregunta ha surgido.Ayuda por favor.Para los conocedores hay un minuto, pero para los principiantes es difícil.Googleado nada ayuda, pero tal vez alguien ha enfrentado.

El diario dice

(2013.04.23 10:06:30 2013.04.01 00:00 xrust EURUSD,M1: el parámetro 2 de la función SetIndexBuffer debe ser un array).

https://forum.mql4.com/ru/55137#786974


Dice que el segundo parámetro de la función SetIndexBuffer debe ser un array. Es decir, no doble znach1, sino doble znach1[]
 
¿Cómo puedo ejecutar el script que acabo de editar sin reiniciar mt4?