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
La gran pista fue "Pero no sé cómo hacer esto".
La falta de cualquier tipo de respuesta del OP es una indicación de que hay algo mal. Mi "suposición" es que el OP se frustró por la falta de comprensión y abandonó el hilo. Hubo un tiempo, hace años, en que hice lo mismo. Aprendí más en diferentes sitios/foros que en este porque nadie se tomaba el tiempo de darse cuenta de lo nuevo que era y continuamente ponía ejemplos y tenía discusiones completamente por encima de mi entendimiento en ese momento.
Desde tu punto de vista puede que tengas razón, por otro lado he visto muchas preguntas que simplemente se respondían si se arriesgaban a echar un vistazo rápido en las documentaciones y realmente te sientes como un tonto respondiendo a esas preguntas una y otra vez.
Además, aquí hay una opción de búsqueda en Google. Si no sé cómo hacer algo, este es mi siguiente paso para intentar resolver el problema por mi cuenta.
En el caso del tema de este hilo no sé cómo codificar un sistema multidivisa habría respondido a google o buscar aquí el código ya existente.
Desde tu punto de vista, puede que tengas razón, pero por otro lado he visto muchas preguntas que simplemente se respondían si se arriesgaban a echar un vistazo rápido a la documentación y realmente te sientes como un tonto respondiendo a esas preguntas una y otra vez.
Además, aquí hay una opción de búsqueda en Google. Si no sé cómo hacer algo, este es mi siguiente paso para intentar resolver el problema por mi cuenta.
En el caso del tema de este hilo no sé cómo codificar un sistema multidivisa habría respondido a google o buscar aquí el código ya existente.
Gracias por los comentarios y me alegro de que sean positivos. lol
Lo siento a quien corresponda por la forma en que me encontré en esta situación. Realmente soy un tipo de persona amante de la paz y libre de dramas que suele ignorar la mayoría de las cosas con las que no estoy de acuerdo.
Hola chicos,
Perdón por el largo periodo sin actividad aquí. Estuve viajando por trabajo y también ocupado con algunos proyectos y tuve que dejar el proyecto de lado por un tiempo...
Después de leer las actualizaciones de correos, tengo algunos puntos que aclarar:
Abajo, el código del indicador:
Intento utilizar RefreshRates() pero sigo con el mismo resultado... sólo funciona el par en la misma ventana, los otros pares no se actualizan.
RefreshRates() no tiene nada que ver con los datos de MqlRates. El código de ejemplo de WHRoeder sólo es válido para las builds Pre-600. Para la última versión, es necesario comprobar los diversos puntos mencionados en mi post, como la comprobación de los códigos de retorno de ArrayCopyRates(), así como los códigos de error, el tamaño de la matriz de tarifas y, como precaución adicional señalada por WHRoeder, la validez del atributo de tiempo.
¡PS! Si tienes dificultades con el inglés, envíame un PM. Soy portugués (Portugal)
Hola chicos.
Probando, he incluido un "recuento" de tarifas en la función OnCalculate... añadiendo un bucle que primero libera el array de pares en todas las iteraciones, y luego vuelve a copiar las tarifas. Parece que funciona y no devuelve error.
No sé si esta es la mejor manera de hacer lo que necesito, pero aparentemente está funcionando y sin erros.
¡Una actualización para aquellos que siguen este hilo!
He estado ayudando al OP vía PM a arreglar su código ya que tiene dificultades con el inglés y ambos hablamos portugués. En nuestras pruebas nos encontramos con otra "gracia" que está sucediendo con la función "ArrayCopyRates()". Cuando se utiliza un array de MqlRates con "ArrayCopyRates()" en un EA, el array de datos es uno virtual que siempre informa del estado actual de las cosas, por lo que los datos son siempre frescos.
Sin embargo, en un Indicador, este no parece ser el caso. El array no es una copia virtual sino una copia estática fijada en el tiempo en el momento en que se llamó a"ArrayCopyRates()". Los datos no se actualizan cuando el Símbolo es diferente al símbolo del gráfico. Cuando es el mismo símbolo del gráfico, entonces los datos del array están "vivos" y se actualizan como se espera, pero cuando es de otro símbolo, es una copia estática.
Por lo tanto, para que funcione en un indicador, hay que llamar a la función "ArrayCopyRates()" en cada llamada al evento OnCalculate() si se necesitan datos frescos.
Hola a todos.
Esto es (casi) lo mismo que hago después, pero la diferencia es que ejecuto un ArrayFree antes del ArrayCopyRates... y no hago las validaciones que me ayudaste.
Aquí el código final que me ayudó FMIC. Ahora funciona normalmente en un código indicador..: