Error en MQL5 al trabajar con el acceso a series temporales iClose/iOpen, etc. - página 10
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
No tiene sentido.
No tiene sentido.
Mientras "de repente" (c) no se puede hablar de un rendimiento limitado del sistema (no importa cuál).
Estos días he estado observando más de cerca el manejo de datos de OnCalculate y de los ticks. Anteriormente se escribió que todo se hace para evitar la "congelación" de los indicadores incorrectamente escritos, pero si realmente queremos procesar todo el flujo de datos de los ticks desde la anterior llamada de OnCalculate, entonces en el movimiento rápido del precio (y el retroceso) deberíamos obtener un array bastante "profundo", ¿hay alguna limitación en la profundidad del array de ticks?
No me gustaría escuchar una respuesta como "OnCalculate recibirá un tick(s) acumulativo..., para optimizar...".
¿Quién está analizando ya los datos de las garrapatas, hay algún motivo de preocupación?
Estos días he estado observando más de cerca el manejo de datos de OnCalculate y de los ticks. Anteriormente se escribió que todo se hace para evitar la "congelación" de los indicadores incorrectamente escritos, pero si realmente queremos procesar todo el flujo de datos de los ticks desde la anterior llamada de OnCalculate, entonces en el movimiento rápido del precio (y el retroceso) deberíamos obtener un array bastante "profundo", ¿hay alguna limitación en la profundidad del array de ticks?
No me gustaría escuchar una respuesta como "OnCalculate recibirá un tick(s) acumulativo..., para optimizar...".
¿Quién analiza ya los datos de las garrapatas, hay razones para esos temores?
En 2008-2009 Renat escribió una vez que no hay felicidad en las garrapatas, dio un ejemplo de un experto. Las garrapatas se saltan de todos modos. Si lo necesita, obtengahttps://www.mql5.com/ru/docs/series/copyticks en cada llamada, pero aún así se pierde el deseado 50/50 arriba/abajo para entrar.
Sólo voy a aparecer aquí por el bien de la publicidad. Llevo un mes intentando averiguar por qué ha dejado de funcionar:
A la espera de la nueva publicación en Opening.
Reanudar las cuestiones relacionadas con la optimización y la carga de datos históricos.
1. El problema del correcto funcionamiento de las funciones iClose/iOpen, y en este caso iTime, existe y creo que no tiene sentido esperar que todo sea perfecto. ¿Quizás deban ser simplemente eliminados de MQL5 para no volver a cometer los mismos errores? (Tengo un problema, pero no tengo tiempo para describirlo, porque he encontrado una solución, otro "giro")
Quizás haya una solución, pero me gustaría que estuviera documentada y no fuera otra vuelta de tuerca de la comunidad MQL5. Estamos hablando de cómo tratar las peticiones asíncronas, que a su vez sincronizan las bases de datos locales, por ejemplo:
La frase clave es"Tras finalizar la sincronización, la siguiente llamada a CopyTicks() devolverá todos los ticks solicitados". ", señores ¿cómo se sabe cuando la sincronización ha terminado? Está escrito como si antes del final de la sincronización CopyTicks() devolviera por ejemplo -1, pero no es así.Como resultado después de unas cuantas recargas la DB del indicador se sincroniza y realmente estamos obteniendo todo el conjunto de datos, pero si no estoy recargando el indicador no estoy obteniendo este conjunto de datos, porque no sé el resultado de terminar esta maldita sincronización.
Un ejemplo llamativo fueron los últimos golpes, hubo un movimiento brusco en el EURUSD, aunque el indicador estuvo encendido todo ese tiempo y más o menos representó este periodo con normalidad, pero después de que lo recargara (cambié los parámetros de entrada), el indicador empezó a reflejar la información de forma incorrecta, respectivamente se iniciaron búsquedas de errores en el indicador (se recompiló y se recargó varias veces) pero nada ayudó, y entonces ocurrió ese "milagro", "Cuando sellama a CopyTick() desde un indicador, éste devuelve inmediatamente los ticks disponibles para el símbolo, y además inicia la sincronización de la base de ticks", tal vez habría que crear (o tener) una función que nos diga que en ese momento no se ha completado la sincronización de la base de datos local, esta función nos facilitaría la tarea y nos permitiría escribir un mejor producto final para el Mercado.
P.D.: La función SymbolInfoTick lamentablemente no tiene esta funcionalidad.
Por desgracia, este ejemplo no siempre funciona:
Para ser exactos, funciona 1-2 veces de cada 10.
Pero en la situación descrita anteriormente, no funcionó ni una sola vez.
De nuevo una pregunta, ¿se actualiza la base de datos en tiempo real?
Como escribí anteriormente, todo el período que fue problemático, el indicador funcionó, es decir, la función CopyTicks() fue llamada regularmente, pero resulta que no tuvo ningún efecto en la base de datos local.... Esto es raro....
En 2008-2009, Renat escribió una vez que no hay felicidad en las garrapatas, poniendo el ejemplo de un experto. Las garrapatas se saltan tal cual. Si es necesario, obtengahttps://www.mql5.com/ru/docs/series/copyticks en cada llamada, pero aún así se perderá el 50/50 de la parte superior/baja en la que desea entrar.
Reanudación de las cuestiones relacionadas con la optimización y la carga de datos históricos.
1. El problema del funcionamiento correcto de las funciones iClose/iOpen, y en este caso iTime, probablemente existe y no hay razón para esperar que todo sea perfecto. ¿Quizás se puedan eliminar simplemente de MQL5 para no repetir los mismos errores? (Tengo un problema, pero no tengo tiempo de describirlo, porque he encontrado una solución, otro "giro")
Quizás haya una solución, pero me gustaría que estuviera documentada y no fuera otra vuelta de tuerca de la comunidad MQL5. Estamos hablando de cómo tratar las peticiones asíncronas, que a su vez sincronizan las bases de datos locales, por ejemplo:
La frase clave es"Tras finalizar la sincronización, la siguiente llamada a CopyTicks() devolverá todos los ticks solicitados". ", señores ¿cómo se sabe cuando la sincronización ha terminado? Está escrito como si antes del final de la sincronización CopyTicks() devolviera por ejemplo -1, pero no es así.Como resultado después de unas cuantas recargas la DB del indicador se sincroniza y realmente estamos obteniendo todo el conjunto de datos, pero si no estoy recargando el indicador no estoy obteniendo este conjunto de datos, porque no sé el resultado de terminar esta maldita sincronización.
Un ejemplo llamativo fueron los últimos golpes, hubo un movimiento brusco en el EURUSD, aunque el indicador estuvo encendido todo ese tiempo y más o menos representó este periodo con normalidad, pero después de que lo recargara (cambié los parámetros de entrada), el indicador empezó a reflejar la información de forma incorrecta, respectivamente se iniciaron búsquedas de errores en el indicador (se recompiló y se recargó varias veces) pero nada ayudó, y entonces ocurrió ese "milagro", "Cuando sellama a CopyTick() desde un indicador, éste devolverá inmediatamente los ticks disponibles para el símbolo, y además comenzará a sincronizar la base de ticks", tal vez habría que crear (o tener) una función que nos diga que en ese momento no se ha completado la sincronización de la base de datos local, esta función nos facilitaría la tarea y nos permitiría escribir un mejor producto final para el Mercado.
P.D.: La función SymbolInfoTick lamentablemente no tiene esta funcionalidad.
¿Qué devuelve SERIES_SYNCHRONIZED en estos casos?