Importación de datos y probador virtual (desarrollo)

 

Inspirado por el tema aquí, en mi opinión MT5 con todo su poder se pierde algunas opciones viables. Este no es un hilo sobre por qué MetaQuotes no me dio. Sino más bien cómo puedo encontrar soluciones al problema. Parece que tener el control de los datos de los ticks y la información del mercado no se implementaría dentro de nuestra generación de meta-trader. Entonces, ¿por qué es importante? Voy a dar algunas razones a continuación.

1) El promedio de spreads de mi broker en EURJPY por ejemplo es mucho menor que el de default-data ¿cómo puedo probar con este promedio de spreads menores y viceversa? No es un broker mt5.

2) Mi sistema está diseñado para los mercados que van, ¿cómo sería mi sistema de manejar un mercado de tendencia prolongada. ¿Es mi algoritmo lo suficientemente bueno para mantenerlo fuera de fase? Viceversa para la tendencia.

3) Creo que los mercados son aleatorios, ¿cómo puedo probar este sistema en algunos datos aleatorios y comparar los resultados con los datos reales?

4) Mi broker/vendedor... me dio/vendió toneladas de datos de alta calidad, pero no tienen un servidor mt5, ¿cómo podría obtenerlos en mt5 para realizar mis pruebas de respaldo?

5) Creo en los ticks reales, no en los generados por algoritmos. He guardado mis ticks de los últimos x años y preferiría usarlos, ¿cuáles son mis opciones?

6) Quiero confianza y un mejor control del Entorno[market-info] y de los Datos[price|time|spreads], ¿qué hago al respecto?

Tenía más razones, pero de alguna manera no puedo recordar todos ellos en este momento. Espero escuchar sus razones :)

 

El objetivo:

Creo que el objetivo debe ser simple. Y el objetivo simple que tengo en mente es conseguir que el probador de estrategias mt5 utilice datos dentro de un formato .csv | .hst. Todo lo demás puede venir después.

Creo que la primera fase de la discusión debería ser "es esto viable". La pregunta obvia aquí es "por qué mt5". Como he mencionado, es más potente que su predecesor. La mayoría de nosotros [a los que nos importa], estamos fuertemente invertidos en el lenguaje mql*. Además, discutir otra plataforma no va a ir bien en este sitio. Y por último, reinventar la rueda está fuera de lugar.

Por lo tanto, estoy buscando ideas para incorporar lo más posible de lo que tenemos. ¡Así que escuchemos esas ideas brillantes gente!

1> Estoy pensando que si esos EMULATION_MODES pueden ser aprovechados completamente dentro del back-tester hará que todo sea posible. Además, tener la capacidad de Sleep dentro del back-tester también sería una herramienta útil. Todavía estoy investigando esto y echando un vistazo a las cosas virtuales ya desarrolladas. Lo siento si parece que no sé lo que hago, pero hay una demanda de este tema y por eso os necesito. Saludos.

 
Ubzen:

El objetivo:

Creo que el objetivo debe ser simple. Y el objetivo simple que tengo en mente es conseguir que el probador de estrategias mt5 utilice datos dentro de un formato .csv | .hst. Todo lo demás puede venir después.

Creo que la primera fase de la discusión debería ser "es esto viable". La pregunta obvia aquí es "por qué mt5". Como he mencionado, es más potente que su predecesor. La mayoría de nosotros [a los que nos importa], estamos fuertemente invertidos en el lenguaje mql*. Además, discutir otra plataforma no va a ir bien en este sitio. Y por último, reinventar la rueda está fuera de lugar.

Por lo tanto, estoy buscando ideas para incorporar lo más posible de lo que tenemos. ¡Así que escuchemos esas ideas brillantes gente!

1> Estoy pensando que si esos EMULATION_MODES pueden ser aprovechados completamente dentro del back-tester hará que todo sea posible. Además, tener la capacidad de Sleep dentro del back-tester también sería una herramienta útil. Todavía estoy investigando esto y echando un vistazo a las cosas virtuales ya desarrolladas. Lo siento si parece que no sé lo que hago, pero hay una demanda de este tema y por eso os necesito. Saludos.

Por favor, tened en cuenta que el Probador de Estrategias es todavía, por lo que veo, un trabajo en progreso. He comprobado de primera mano que algunas cosas simplemente no funcionan, muchos tipos de Objetos son soportados pero no puedes hacer clic con el botón derecho del ratón en el gráfico y ver una lista de Objetos, así que sé un poco cauteloso cuando diseñes una solución, lo que diseñes puede no ser soportado. Si, por ejemplo, ha creado algunos productos para el Mercado que dependen de Objetos Botón o ChartGetInteger() con CHART_FIRST_VISIBLE_BAR, CHART_VISIBLE_BARS, CHART_WIDTH_IN_PIXELS y CHART_HEIGHT_IN_PIXELS, entonces tendrá productos que no podrán ser probados como productos de demostración ya que estas funciones/características no funcionan en el Probador de Estrategias.

¿Qué más no funciona en el Probador de Estrategias?

Lo que realmente necesitamos es que Metaquotes codifique una aplicación local de Servidor de Datos del Historial. No sólo gestionaría nuestros datos del Historial almacenados, sino que también nos permitiría crear nuestros propios Símbolos personalizando las propiedades de los mismos... el backtesting con gráficos offline sería fácil.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Symbol Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Symbol Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Environment State / Symbol Properties - Documentation on MQL5
 
Ubzen:

El objetivo:

Creo que el objetivo debe ser simple. Y el objetivo simple que tengo en mente es conseguir que el probador de estrategias mt5 utilice datos dentro de un formato .csv | .hst. Todo lo demás puede venir después.

...

¿Cómo puede ser esto posible? No tenemos ningún control sobre el Probador de Estrategias. Sólo tenemos 2 opciones, creo:

  1. Usar el Probador de Estrategias como está, y tratar de trabajar en los datos. ST utiliza el archivo .hcs, cuya estructura es desconocida por el momento AFAIK. ¿Es posible reemplazar este archivo con el suyo propio y obtener algunos resultados?
  2. Utilizar un Probador de Estrategias Virtual, sobre el cual tenemos el control total. Esto significa más trabajo , pero también más independencia, mientras que ya no dependen deformato hcs cambios , por ejemplo.

Podemos investigar sobre las 2 opciones. Mi idea era más en el segundo.

 

Escribir un sistema completo no es una tarea sencilla, pero es un objetivo alcanzable.

Sin embargo, en el momento en que empiece a escribir un sistema de este tipo, estará gastando su tiempo en el desarrollo de este sistema, y no en el comercio o el desarrollo de sistemas de comercio. Porque la cantidad de trabajo es interminable.

La principal decisión a tomar, es decidir construir su propio sistema. Usted tiene que moverse completamente fuera de MT5, de lo contrario siempre y continuamente tendrá que hacer algún tipo de compromisos, y escribir doble código (como lo es ahora para MT4-MT5). Además, algunas cosas geniales como los agentes probadores de estrategias no son tan fáciles de implementar.

Hay al menos un marcoya existente , por lo que algo así debería ser utilizado.

Let me google that for you
Let me google that for you
  • bit.ly
Let Me Google That For You
 
graziani:

Escribir un sistema completo no es una tarea sencilla, pero es un objetivo alcanzable.

Estoy interesado en entender cómo lo haría funcionar con mql5 codificado EA e indicadores ?
 
RaptorUK:
Estoy interesado en entender cómo lo harías funcionar con EAs e indicadores codificados en mql5 ?

no puedes. tienes que salir de MT5. todos los futuros EA's/indicadores se escriben fuera de MT4/MT5, entonces usas MT4/MT5 como proveedor de flujo de ticks y para la ejecución de órdenes.

Para propósitos de backtest, usted puede revertir el formato de la base de datos ( prohibido pero posible), y reemplazar M1 con S1 (un segundo, no un tick) registros, y luego sólo ejecutar a través de la historia de M1 en ST. pero no veo ningún uso para esto, porque para el flujo en vivo, usted tiene que escribir un EA completamente diferente, que tiene que utilizar indicadores internos, ya que debe ser el procesamiento de la corriente de garrapatas recogidas, y no matrices de historia.

Mi punto era que al iniciar tal proyecto, uno se concentraría en la construcción de otro "MT4/5" y no en el comercio.

 
graziani:

no puedes. tienes que salir de MT5. todos los futuros EA's/indicadores se escriben fuera de MT4/MT5, entonces usas MT4/MT5 como proveedor de flujo de ticks y para la ejecución de órdenes.

Para propósitos de backtest, usted puede revertir el formato de la base de datos ( prohibido pero posible), y reemplazar M1 con S1 (un segundo, no un tick) registros, y luego sólo ejecutar a través de la historia de M1 en ST. pero no veo ningún uso para esto, porque para el flujo en vivo, usted tiene que escribir un EA completamente diferente, que tiene que utilizar indicadores internos, ya que debe ser el procesamiento de la corriente de garrapatas recogidas, y no matrices de historia.

Mi punto era que al iniciar tal proyecto, uno se concentraría en la construcción de otro "MT4/5" y no en el comercio.

Gracias por la respuesta, creí entender lo que sugerías, sólo quería que fuera claro, y lo ha sido.

 

@RaptorUK: Gracias, entiendo que todo puede no ser soportado. No sé todo lo que no funciona dentro del probador de estrategias. No estoy haciendo un producto para el mercado. Alguien que hace productos tiene sus propios problemas. Pueden modificar los códigos que hacemos o esperar a mq. Mq no participa en estas discusiones, (nos ignora), paso de pedirles nada.

@angevoyageur: Estoy de acuerdo en que necesitamos algo como la opción#2. No me importa hacer un poco más de trabajo para tener más independencia. Lo que se nos ocurra, tiene que ser fácilmente adoptado y aceptado. De lo contrario, todo el trabajo será en vano. No creo que podamos hacerlo tan fácil como : [codifique su ea en mql5] [inicie el probador de estrategias] [y el probador de estrategias virtual se hace cargo]. Sin embargo, podríamos usar el reemplazo de funciones que ya existen poniendo una 'v' delante del nombre de la función.

@graziani: Que tal esto para lo simple. FileRead( my.csv ); FileRead( my.market.info ). Reemplace su Marketinfo() con vMarketInfo(). DrawObjects como se mueve el probador de la estrategia. Hacer un informe.......Done. :), Así que lo que u pensar? Es más fácil decirlo que hacerlo, ¿verdad?

Mover fuera de mt4 o mt5 no funcionaría porque estoy tratando de reunir el apoyo de los codificadores similares a mí mover de mql4-mql5. Para mantener la motivación de estos proyectos, se necesita una adaptación exitosa por parte de otros, aunque sólo sea para propósitos de prueba|información de errores. Me gustan los Agentes y los Optimizadores, esperaba que alguien dijera que es fácil de implementar (aquí está cómo) :(. Aceptémoslo, todas las características dentro de mt4/mt5 no van a ser soportadas con la primera versión de este VST.

Conseguir soporte para datos, información de mercado, ejecución de mercado, multi-divisa y un simple informe es lo que se necesita en este momento. Cuanta más gente se ofrezca como voluntaria en cualquier momento en este proyecto, más éxito tendrá. Si el proyecto se convierte en un movimiento fuera de mt, tendremos que construir todo lo anterior + un montón de otras cosas que nunca habíamos tenido que considerar antes.

Realmente esperaba que pudiéramos utilizar códigos de mql5 ya construidos. Si nadie sugiere una forma de hacer esto angevoyageur#1, entonces pasaremos a angevoyageur#2.

 
RaptorUK:

Gracias por la respuesta, creí entender lo que sugerías sólo quería que te quedara claro, y lo has hecho.


No se trata de hacer algo fuera de MT5. No se trata de reprogramar todo lo que ya funciona con el Strategy Tester . No se trata de sustituir el Strategy Tester. La idea es desarrollar algo que complemente al Probador de Estrategias , por una u otra de las dos opciones (ver arriba), o una combinación de ambas.
 
Ubzen:

@RaptorUK: Gracias, entiendo que todo puede no ser soportado. No sé todo lo que no funciona dentro del probador de estrategias. No estoy haciendo un producto para el mercado. Alguien que hace productos tiene sus propios problemas. Pueden modificar los códigos que hacemos o esperar a mq. Mq no participa en estas discusiones, (nos ignora), paso de pedirles nada.

@angevoyageur: Estoy de acuerdo en que necesitamos algo como la opción#2. No me importa hacer un poco más de trabajo para tener más independencia. Lo que se nos ocurra, tiene que ser fácilmente adoptado y aceptado. De lo contrario, todo el trabajo será en vano. No creo que podamos hacerlo tan fácil como : [codifique su ea en mql5] [inicie el probador de estrategias] [y el probador de estrategias virtual se hace cargo]. Sin embargo, podríamos usar el reemplazo de funciones que ya existen poniendo una 'v' delante del nombre de la función.

@graziani: Que tal esto para lo simple. FileRead( my.csv ); FileRead( my.market.info ). Reemplace su Marketinfo() con vMarketInfo(). DrawObjects como se mueve el probador de la estrategia. Hacer un informe.......Done. :), Así que lo que u pensar? Es más fácil decirlo que hacerlo, ¿verdad?

Mover fuera de mt4 o mt5 no funcionaría porque estoy tratando de reunir el apoyo de los codificadores similares a mí mover de mql4-mql5. Para mantener la motivación de estos proyectos, se necesita una adaptación exitosa por parte de otros, aunque sólo sea para propósitos de prueba|información de errores. Me gustan los Agentes y los Optimizadores, esperaba que alguien dijera que es fácil de implementar (aquí está cómo) :(. Aceptémoslo, todas las características dentro de mt4/mt5 no van a ser soportadas con la primera versión de este VST.

Conseguir soporte para datos, información de mercado, ejecución de mercado, multi-divisa y un simple informe es lo que se necesita en este momento. Cuanta más gente se ofrezca como voluntaria en cualquier momento en este proyecto, más éxito tendrá. Si el proyecto se convierte en un movimiento fuera de mt, tendremos que construir todo lo anterior + un montón de otras cosas que nunca habíamos tenido que considerar antes.

Realmente esperaba que pudiéramos utilizar códigos de mql5 ya construidos. Si nadie sugiere una forma de hacer esto angevoyageur#1, entonces pasaremos a angevoyageur#2.

Estamos enla misma onda.