Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1164
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Es necesario pensar de antemano cómo se ejecuta el código a nivel de memoria, inicialización y devolución de valores.
No hay que pensarlo, hay manuales para estas cosas, y nunca ha habido un manual para la asignación de memoria en MQL, sólo mensajes de los desarrolladores, y a menudo con una aclaración de que la implementación puede cambiar
Vale, la discusión se reduce a quién lee qué libro de programación, yo lo leo desde el instituto y lo sigo leyendo desde hace 30 años.
No hay que pensarlo, hay manuales para estas cosas, y nunca ha habido un manual para la asignación de memoria en MQL, sólo mensajes de los desarrolladores, y a menudo con una aclaración de que la implementación puede cambiar
Vale, la discusión se reduce a quién lee qué libro de programación, yo lo leo desde el instituto y lo sigo leyendo desde hace 30 años
Por supuesto que no tienes que pensarlo bien, por qué deberías... El compilador lo hará todo por sí mismo. ))
C# no es C
Y mira el vídeo en __inline.
Allí se explica cómo funcionan las funciones en la memoria para los que no hacen ninguna diferencia.
Haz un dibujo primero y especifica lo que es para ti la "barra cero" de un indicador con el parámetro de desplazamiento.
Dibujado. La barra de cero se resalta con una línea vertical.
Dibujado. La barra de cero se resalta con una línea vertical.
Ejemplo de código:
Resultado:
Como puedes ver, es copiable sin necesidad de retoques.
Ejemplo de código:
Resultado:
Como se puede ver se copia fácilmente, sin ninguna pandereta.
Ejemplo de código. Basado en un indicador. El indicador está ocupado asignando memoria intermedia.
Cuando start_pos = 0, el valor correspondiente a la barra 0 del gráfico está en la posición 5. 1.017041 Está en la posición 0 en su EA. Bien.
Pero necesito obtener este valor en la posición cero.
He puesto start_pos = 5. No obtengo el resultado deseado. El valor que busco está de nuevo en la posición 5.
He puesto start_pos = -5. No obtengo el resultado deseado. De nuevo, el valor que busco está en la posición 5.
He puesto start_pos = -10. Y sólo ahora obtengo el resultado deseado.
Ejemplo de código. Basado en el indicador. El indicador está ocupado asignando memoria intermedia.
Cuando start_pos = 0, el valor correspondiente a la barra 0 del gráfico lo vemos en la posición 5. 1.017041 En su EA está en la posición 0. Bien.
Pero necesito obtener este valor en la posición cero.
He puesto start_pos = 5. No obtengo el resultado deseado. El valor que busco está de nuevo en la posición 5.
He puesto start_pos = -5. No obtengo el resultado deseado. De nuevo, el valor que busco está en la posición 5.
He puesto start_pos = -10. Y sólo ahora obtengo el resultado deseado.
Tenemos que entender la diferencia entre el trabajo del Asesor Experto y del indicador. Para trabajar a partir del indicador utilice el ejemplo de la ayuda(iMA).
Hay que entender la diferencia entre operar desde un EA y desde un indicador. Para trabajar a partir de un indicador, utilice el ejemplo de la ayuda(iMA).
Así que toma un ejemplo de la ayuda de iMA, añade
y verifique que el valor es diferente del valor de salida de su EA por exactamente ma_shift de barras.
Por otro lado, necesito obtener en el indicador en iMABuffer[0] el valor que tienes en tu Expert Advisor en array_ma[0].
Al menos por el momento podemos ver que el comportamiento del CopyBuffer para los Asesores Expertos y los indicadores es diferente. Si entiende la diferencia de CopyBuffer cuando se trabaja con un EA y un indicador, por favor especifique la sección apropiada de la documentación para estudiar.
Intentaré simplificar la pregunta. ¿Cómo puedo llevar estos valores de MA (a partir de la línea vertical roja y hacia la izquierda) al buffer del indicador? ¿Puede escribir un ejemplo?
Intentaré simplificar la pregunta. ¿Cómo puedo llevar estos valores de MA (a partir de la línea vertical roja y hacia la izquierda) al buffer del indicador? ¿Puede escribir un ejemplo?
En la captura de pantalla, la visualización de la memoria intermedia se desplaza cinco barras hacia la derecha. Entonces - para obtener la quinta barra del buffer de indicadores (índice 4), y más a la izquierda en la lista, ¿de dónde debemos obtenerlas? De Buffer[4] y más a la izquierda.
En teoría. En la práctica, no he abierto el código del indicador ni he trabajado con él durante mucho tiempo, casi un año... Pruébalo.
En teoría. En la práctica, no he abierto el código del indicador ni he trabajado con él durante mucho tiempo, casi un año... Pruébalo.
No puedes perder una habilidad.