Discusión sobre el artículo "Símbolo personalizados: fundamentos de uso en la práctica" - página 5
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
Gracias por la respuesta. Esto es muy extraño, de hecho estoy usando el modo de ticks reales y no era consciente de que hay una opción de spread fijo en MT5 así que estoy seguro de que no (estoy más familiarizado con MT4).No me había dado cuenta de que los diferenciales eran los mismos para cada barra, de hecho, mirando a través del archivo completo parece que sólo cambian en los límites de 1 minuto. Supongo que estoy en lo cierto al pensar que las llamadas a SymbolInfoDouble() deben devolver los precios de la garrapata que se procesa como resultado de la llamada al evento OnTick() - no algún tipo de valor M1?
Intenté imprimir lo que esperaba que fuera el tiempo real del tick con milisegundos usando el código de abajo, pero el valor de los milisegundos es siempre cero...
EDIT: Como he dicho soy relativamente nuevo en MQL5 - Acabo de encontrar SymbolInfoTick(), tal vez debería estar usando que en lugar de lo que estoy haciendo! Voy a probar eso y ver qué pasa ...
Ok, eso no hizo ninguna diferencia, exactamente los mismos resultados, pero ninguno de ellos atando con el cuadro de diálogo "Symbol Ticks" en el terminal. Me equivoqué al decir que el valor de milisegundos era siempre cero - es distinto de cero durante exactamente un minuto, a saber, el minuto antes de la medianoche!
Esto me parece un problema bastante importante. Mi EA de trading espera recibir ticks con precios que coincidan con los datos de tick importados (¡como cualquier otro!). Me atrevo a decir que hay algo que estoy haciendo mal, pero si es así me gustaría saber qué es.He adjuntado un archivo zip con la prueba de EA, una hoja de cálculo de los resultados de la hora a cada lado de la medianoche, y algunas capturas de pantalla de configuración y garrapatas.
Me temo que no está claro cómo se crea el símbolo personalizado. Los archivos csv adjuntos son los mismos (BTW, no sé la razón por la que necesitas dos copias con nombres diferentes), y ambos tienen un formato incorrecto: los archivos de tick deben tener las siguientes columnas para ser importados en MT5 símbolo personalizado: fecha, hora, bid, ask, last, volume. Así que actualmente no es posible crear un símbolo personalizado a partir de tus ticks sin manipulaciones adicionales.
Sería más simple si usted publica imágenes de los ticks importados en MT5 UI y el registro de su EA lado a lado. Las imágenes presentadas anteriormente están incompletas y los ticks se ven diferentes entre las imágenes y en comparación con los archivos csv.
Me temo que no está claro cómo creas tu símbolo personalizado. Los archivos csv adjuntos son los mismos (BTW, no sé la razón por la que necesitas dos copias con nombres diferentes), y ambos tienen un formato incorrecto: los archivos de tick deben tener las siguientes columnas para ser importados en MT5 símbolo personalizado: fecha, hora, bid, ask, last, volume. Así que actualmente no es posible crear un símbolo personalizado a partir de tus ticks sin manipulaciones adicionales.
Sería más simple si usted publica imágenes de los ticks importados en MT5 UI y el registro de su EA lado a lado. Las imágenes presentadas anteriormente están incompletas y los ticks se ven diferentes entre las imágenes y en comparación con los archivos csv.
Los datos de los ticks han sido importados a MT5 como un símbolo personalizado de una exportación de mi MT4 'Tick Data Suite' usando datos de Dukascopy (archivos CSV de alrededor de 8GB de tamaño).
Los archivos csv que envié de ninguna manera están destinados a ser importados como datos de tick, son los resultados de mi EA de prueba (que se adjuntó) que está registrando los precios Bid y Ask y el tiempo para cada evento OnTick recibido. Los dos son simplemente derivados por diferentes métodos - uno usando SymbolInfoDouble(...) para obtener los precios Bid y Ask, y el otro usando SymbolInfoTick(...). El hecho de que son los mismos es simplemente probarme a mí mismo que no hay diferencia entre los métodos.
Mi punto es que los precios Bid y Ask y los tiempos en los archivos CSV registrados por el EA de prueba no coinciden con la imagen de los ticks importados en la MT5 UI (que también envié). Así que...
Me parece que hay algo que interfiere con los datos de ticks del símbolo personalizado en su camino entre el repositorio y el evento OnTick del EA.
A continuación he intentado alinear, lo más fielmente posible, una parte de los datos registrados por el EA de prueba (izquierda) y la IU MT5 (derecha). Es imposible alinearlos con precisión porque hay menos ticks registrados por el EA que los que existen en la IU MT5. Observe también que el valor en milisegundos registrado por el EA de prueba es cero hasta las 23:59.
El evento resaltado es probablemente el mismo tick pero observe que el EA de prueba registra precios diferentes a los de la UI...
Tienes muchos "por qué", pero es difícil dar una respuesta (sin especulaciones). Hay un problema en tu procedimiento o código fuente.
Lo que podrías hacer es publicar una pequeña parte de 8Gb de historial de ticks, que es fácil de importar a un símbolo personalizado y comprobar tu código.
Normalmente, SymbolInfoTick debería recibir exactamente los mismos ticks (incluyendo milisegundos de tiempo) que ves en la GUI de MT5 para el mismo símbolo personalizado.
Algunos ticks pueden ser omitidos en su EA si toma demasiado tiempo procesar el tick previo. Este "demasiado" puede ser muy corto, porque los ticks pueden venir muy rápidamente. Si desea asegurarse de que todos los ticks están disponibles en la historia, debe llamar a la función CopyTicks para el período desde el anterior tick procesado. Pero este no es el tema que deberías tratar ahora mismo - primero deberías averiguar qué está mal con el enfoque actual.
Los datos de tick han sido importados a MT5 como un símbolo personalizado desde una exportación de mi MT4 'Tick Data Suite' usando datos de Dukascopy (archivos CSV de alrededor de 8GB de tamaño).
Los archivos csv que envié de ninguna manera están destinados a ser importados como datos de tick, son las salidas de mi EA de prueba (que se adjuntó) que está registrando los precios Bid y Ask y el tiempo para cada evento OnTick recibido. Los dos son simplemente derivados por diferentes métodos - uno usando SymbolInfoDouble(...) para obtener los precios Bid y Ask, y el otro usando SymbolInfoTick(...). El hecho de que son los mismos es simplemente probarme a mí mismo que no hay diferencia entre los métodos.
Mi punto es que los precios Bid y Ask y los tiempos en los archivos CSV registrados por el EA de prueba no coinciden con la imagen de los ticks importados en la MT5 UI (que también envié). Así que...
Me parece que hay algo que interfiere con los datos de ticks del símbolo personalizado en su camino entre el repositorio y el evento OnTick del EA.
A continuación he intentado alinear, lo más fielmente posible, una parte de los datos registrados por el EA de prueba (izquierda) y la IU MT5 (derecha). Es imposible alinearlos con precisión porque hay menos ticks registrados por el EA que los que existen en la IU MT5. Observe también que el valor en milisegundos registrado por el EA de prueba es cero hasta las 23:59.
El evento resaltado es probablemente el mismo tick, pero tenga en cuenta que el EA de prueba registra precios diferentes a los de la UI...
Los ticks que recoge tu EA parecen ser ticks simulados y no reales. Compruebe los registros del Probador de Estrategias.
Gracias Alain, estoy totalmente de acuerdo. Los datos de ticks están ahí en la interfaz de usuario, pero en el momento en que llega a la EA parece como si estuviera tomando el primer par Bid / Ask que encuentra y aplica que la propagación de la duración de los próximos minutos - o algo así.
De todos modos he echado un vistazo al log (adjunto) pero no estoy muy seguro de lo que espero ver, así que te agradecería si pudieras echarle un vistazo y ver si puedes ver lo que va mal. También he adjuntado el archivo CSV generado para información.
Muchas gracias, David.
Gracias Alain, estoy totalmente de acuerdo. Los datos de tick están ahí en la interfaz de usuario, pero en el momento en que llega a la EA parece como si estuviera tomando la primera oferta / demanda par que encuentra y se aplica que la propagación de la duración de los próximos minutos - o algo así.
De todos modos he echado un vistazo al registro (adjunto), pero no estoy muy seguro de lo que espero ver, así que estaría agradecido si pudiera echar un vistazo y ver si se puede ver lo que está pasando mal. También he adjuntado el archivo CSV generado para obtener información.
Muchas gracias, David.
En tu log pone "generando cada tick" lo que significa ticks artificiales. Debería ser "generando en base a ticks reales". Por favor, consulta la documentación del probador.
De nuevo, si quieres que alguien pruebe tu símbolo personalizado, proporciona un archivo CSV compatible, no de tu propio formato.
Tu registro dice "generando cada tick" lo que significa ticks artificiales. Debería ser "generando en base a ticks reales". Por favor, consulte la documentación de pruebas.
Una vez más, si desea que alguien más pruebe su símbolo personalizado, proporcione un archivo CSV compatible, no de su propio formato.
Gracias Stanislav, agradezco la ayuda de todos pero no consigo nada.
He revisado la documentación y no puedo encontrar nada que me diga por qué el probador generaría ticks artificiales cuando tiene un conjunto completo de datos de ticks disponibles. De hecho, dice...
Repito que los archivos CSV son la salida de mi EA de prueba que simplemente está escribiendo los precios de los ticks que recibe y no tienen nada que ver con los datos de ticks que he importado en el símbolo personalizado - por lo que su formato es completamente irrelevante.
Ok, lo que he hecho...
Porque no ha seleccionado"Cada tick basado en ticks reales " en la configuración del probador:
También me he encontrado con "HistoryCache: error de lectura de cabecera de contenedor [0]" seguido de "HistoryBase: se ha encontrado un contenedor no válido (1970.01.01)".
Esto elimina el historial de enero de 2022 del historial de la herramienta personalizada, obteniendo un hueco desde el 31 de diciembre hasta hoy.
Ocurre sólo en 2 ordenadores, los recursos son suficientes.
@Slava, ¿qué detalles necesitas para la reproducción?
Ha vuelto a ocurrir. Al pasar por medianoche, parece:
¿Por dónde cavar?
Porque no ha seleccionado"Cada tick basado en ticks reales " en la configuración del probador:
Aa, por fin :-)
Gracias Fernando, sospechaba que era algo estúpido lo que estaba haciendo pero simplemente no lo veía. Como ya he dicho estoy mucho más familiarizado con MT4 (unos 8 años) y no me había dado cuenta de que había dos opciones de "£Every Tick" en MT5. Simplemente la puse en marcha, vi que estaba en "Every Tick" y supuse que si tenía ticks reales los usaría.
Tenía que ser algo sencillo y te agradezco de nuevo que lo hayas detectado.
David.