[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 4

 

No sonríe

 
Fox_RM: En las siguientes iteraciones todo va bien. ¿Por qué es así?

una de dos cosas:

- Utiliza la inicialización de variables en la sección init(), no todas las funciones funcionan correctamente allí

- quizás no inicializaste alguna variable, desde hace tiempo se considera una buena práctica de programación inicializar con al menos algún valor después de describir las variables

ZS: ¿por qué tienes la matriz ArrHigh[i] y utilizas ArrHigh[0]?

 

Y una pequeña pregunta más.

Me encontré con la siguiente entrada:

 void IncArray( int & Array[] )

Todo parece tener sentido, excepto ¿qué significa el signo & en este caso ?

 
Fox_RM¿Qué significa el signo & en este caso ?
https://docs.mql4.com/ru/basis/variables/formal
 

IgorM:

Una de dos:

- usas la inicialización de variables en la sección init(), no todas las funciones funcionan correctamente allí

- quizás no inicializaste alguna variable, desde hace tiempo se considera una buena práctica de programación inicializar con al menos algún valor después de describir las variables

.

Tienes toda la razón, " usas la inicialización de variables en la sección init(),..." - hay tal pecado)

"...cualquier valor" - se asigna 0.

"¿Por qué tienes el array ArrHigh[i] y usas ArrHigh[0]..." La cuestión es ésta.

Necesito obtener el valor High[i] para trabajarcon él más adelante en el código.

Si hago una asignación a una variable en el bucle, se sobrescribirá en las siguientes iteraciones. No se me ocurre nada más inteligente que asignar

High[i] a un array y luego trabajar sólo con ArrHigh[0]. La próxima vez que este bucle llegue, todos los valores se reiniciarán.

¿Quizás haya una opción mejor?

 
Fox_RM:
1.Tienes toda la razón, "usas la inicialización de variables en la sección init(),..." - hay tal pecado)

2.¿Tal vez haya una opción mejor?

1. se puede y a veces sólo es necesario inicializar en la sección init(), sólo señalé que las funciones estándar no funcionarán todas correctamente, el acceso a las series de tiempo funcionará correctamente

2. No entiendo por qué tienes que complicar la tarea? el array High[i] no irá a ninguna parte ¿por qué copiarlo de nuevo? si tienes miedo de "perder una barra" cuando abras una nueva barra, recuerda la hora de la barra - la hora nunca cambiará, puedes usar esta construcción High[iBarShift(NULL,0,mytime)]

ZS: después de la frase: "Si haces una asignación a una variable en el bucle, se sobrescribirá en las siguientes iteraciones" Sospecho que el problema está en la inicialización aleatoria de alguna variable, prueba a imprimir() todas las variables en la sección de código problemática

 
IgorM:
Gracias Igor, ¡lo intentaré así!
 

Llevo una semana estudiándolo).

necesito prescribirlo para abrir dos órdenes (multidireccionales) con un determinado stop y profit y luego, si las cierro, abrir otras órdenes con el mismo importe exacto + flow check y sólo abrir posiciones con 8 a 8

Gracias de antemano))

 
vkontakte0:

Llevo una semana estudiándolo).

necesito prescribirlo para abrir dos órdenes (multidireccionales) con un determinado stop y profit y luego, si las cierro, abrir otras órdenes con el mismo importe exacto + flow check y sólo abrir posiciones con 8 a 8

gracias de antemano))

Creo que un libro de texto no es suficiente. El FMI tiene muchos sitios diferentes donde se dan los fundamentos del MQL y los fundamentos de la "escritura experta" (te enviaré los enlaces por privado si los necesitas). Por ejemplo, tengo

Los descargué y los convertí a formato chm. Los tengo siempre a mano. Si voy a operar con Asesores Expertos creo que me da apuro, tengo que familiarizarme con los índices y luego complicar el asunto IMHO.