![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Todo está listo ahora, y es el momento de vincular nuestro Python TS a la terminal MT. Sin embargo, hay que tomar algunas medidas para lograrlo.
Nuestro futuro TC lee y escribirá archivos en la carpeta C:\PyTS, pero el terminal MT, por algún capricho desconocido de MQ, sólo puede leer-escribir archivos en su propio directorio - C:\<muchas letras y números>\Files, y de ninguna otra manera. Por supuesto, puedes cambiar la configuración en el código de Python, y dejar que cambie a la carpeta nativa de MQ, pero necesito que el terminal lea y escriba los archivos desde allí y hacia donde yo quiera, no hacia donde él, el terminal, quiera. Más aún, será necesario en el futuro.
En realidad, esta cuestión se resolvió hace un par de años, en mi tema - https://www.mql5.com/ru/forum/79922.
Todo se resuelve con las herramientas de Windows. En la carpeta del terminal C:\<muchas letras y números> \Files pones la referencia a la carpeta C:\PyTS, que es interpretada por el terminal (y el SO también) como la subcarpeta Files\PyTS y el terminal escribe allí, en C:\PyTS, como en su nativo).
Esto se hace en la línea de comandos, utilizando la utilidad nativa de Windows MKLINK. Para los que no puedan hacerlo por sí mismos, he aquí una descripción detallada:
Escriba en ejecutar - cmd, o desde el menú - Utilidades-Windows -> Símbolo del sistema. Aparece una ventana en la que se escribe MKLINK o mklink. Aquí tenemos:
Ahora teclea cd... varias veces hasta llegar a C:\N.
A continuación, abra el Explorador de Windows, y vaya a C:\<un montón de letras y números> \Files, donde el terminal pone los archivos, y seleccione y copie la ruta Ctrl-Ins.
Vuelva a la ventana del símbolo del sistema y allí escriba cd <espacio>, utilice Shift-Ins para pegar la ruta de acceso a ... \N - Archivos, y Enter. Lo entendemos:
Ahora en la línea de comandos escribimos - mklink /D PyTS c:\PyTS , y como siempre - Enter. Aquí lo tenemos:
Vemos que se ha creado un enlace. Vemos que apareció en la carpeta ......\Files y accedemos a ella - vemos los archivos en la carpeta C:\PyTS. )) Eso es todo.
Ahora, todos los archivos escritos por el terminal en la carpeta ...Files\PyTS serán, de hecho, escritos en la carpeta C:\PyTS.
.
El código MQL también está en el archivo adjunto. - MQL lee el historial y lo pasa a la aplicación Python. Python lo acepta y lo imprime. En Python no olvides pulsar el botón de inicio. )
Espero que no haya necesidad de escribir comentarios sobre el código MQL - hay una referencia). Sí, la transferencia de datos de MT se hace con un temporizador, es más conveniente para mí, en esta etapa.
Por ahora haré una pausa: ahora hay que resolver las preguntas con la estrategia. Si tiene alguna sugerencia, la tendremos en cuenta).
Una vez más, el uso compartido de archivos es ideal para el desarrollo y la depuración de estrategias, ya que no requiere ningún esfuerzo de modificación. Para la mayoría de las estrategias del mundo real, sigue siendo adecuado. Pero, si es necesario, siempre podemos sustituirlo por otro, sin necesidad de hacer cambios significativos en el programa - una cuestión de 1-2 días.
No prometo escribir a menudo, sólo a medida que lo consiga. El proyecto se está llevando a cabo en segundo plano, sin prisas, en mi tiempo libre.
Pensé que sería bueno que el sistema mostrara gráficos
En general, Python es un lenguaje sencillo - un par de días para estudiarlo es suficiente. Pero ocuparse de los módulos es mucho más difícil: hay miles de ellos, y quién hace qué y por qué no siempre es obvio. Con los gráficos, eso es lo que pasó: tuve que resolverlo durante mucho tiempo. Pero el resultado es el siguiente:
El programa lee un archivo CSV y dibuja un gráfico.
El gráfico muestra los precios por Cierre, unos 50 mil candelabros.
Si haces clic en la lupa y seleccionas un rectángulo en el área del gráfico, así:
puedes ampliar el gráfico, y lo conseguirás:
Esto puede hacerse repetidamente. El gráfico también puede moverse y guardarse como imagen, y por supuesto ampliarse a pantalla completa.
Todos los archivos que necesitas están en la aplicación. Descomprimir el zip en alguna carpeta y ejecutar CSVGraph.py
Antes de ejecutarlo, no olvides comprobar si los módulos que quieres importar están instalados.
Dejemos las tonterías a los vecinos y a la caja de resonancia de los aficionados, pero resumamos nosotros mismos los resultados preliminares.
Si ya está familiarizado con el tema Si eres un profesional, ya sabes algo de Python, sabes cómo trabajar con archivos CSV, sabes cómo construir gráficos e intercambiar datos con el terminal. Esto ya es suficiente para desarrollar, simular y probar estrategias de negociación. Si sus estrategias trabajan con TF de 1 minuto y más sin utilizar ticks y accediendo al terminal con intervalos de 5-10 segundos, ya puede crear estrategias que funcionen directamente en Phyton, dejando sólo la entrega de datos y la "ejecución" de sus órdenes al terminal.
Además, ya conoces la programación y el entorno Phyton, a un nivel superior al lenguaje y entorno R, tan popular entre los apologistas locales del machine learning. Ya podrá construir incluso estrategias de indicadores muy complejas en Python, pero todas las características de Python (de forma similar a R) pueden implementarse utilizando módulos. En este tema hemos utilizado sólo 3 módulos - tkinter, numpy y matplotlib.
Ahora, lo que necesita Python para construir estrategias más avanzadas, digamos que utilizando el aprendizaje automático. Para ello se puede utilizar el módulo -scikit-learn. Con el uso descikit-learn se dispone de las siguientes características - Guía del usuario. ¿Qué le parece el conjunto de métodos? - Ya tiene prácticamente de todo, incluyendo, no sin saberlo, de R y el tema de Machine Learning, desde la clasificación bayesiana hasta los bosques aleatorios y las redes neuronales.
Éste es sólo uno de los módulos de aprendizaje automático de Python, y hay una docena de ellos. Se dice que el móduloscikit-learn no es el mejor de ellos, ni el más avanzado. Eso depende de quién necesite qué. Los otros no son difíciles de encontrar en Internet.
PD Para los que están empezando o se están iniciando en Python.
He probado varios entornos de desarrollo de Python y me he detenido en el más conveniente para los principiantes (entre los que me incluyo): Anaconda. Lo que lo hace conveniente es que todo lo que necesito ya está instalado, incluyendo Python. También te aconsejo que instales el editor VSCode, que también es muy bueno y se instala directamente desdeAnaconda.
Puede que no estés contento con mi elección.
Los indicadores necesarios están listos. Ver figura hecha en Python (En Python es muy cómodo y rápido dibujar todo tipo de gráficos). Se trata de la respuesta a un único salto - 1(t), o función transitoria. En realidad, una de las pruebas estándar.
La fm es la media móvil convencional (que sólo sirve para la calibración), la f1 es la EMA, con un cálculo de coeficiente modificado, y la f2 es un indicador no estándar.
Sin embargo, como solía decir nuestro conocido común:
Lo he dicho un millón de veces, y probablemente lo volveré a decir... Nadie ha inventado nada mejor que los indicadores de la oferta de MT (estándar... por así decir los antiguos indicadores eslavos... ¡¡paganos!!).
Así que, para no engañar a su cabeza con la ciencia, obtendrá las fuentes estándar de EMA y estrategia. Sin embargo, voy a hacer y probar la estrategia en mis indicadores. Tal vez, oculte algo más de las miradas indiscretas, pero sin perder funcionalidad.
Pero no se trata de la travesía de la EMA. El objetivo de todo esto son las estrategias de aprendizaje automático. Hasta ahora estoy probando diferentes métodos de clasificación. Y aquí están los resultados de las pruebas:
La clasificación gaussiana, la RBF SVM, las redes neuronales y la bayesiana ingenua están en la cima hasta ahora. El programa Python ya está listo, disponible en algún lugar de Internet, pero la preparación de los datos depende del usuario.
Vamos.
Los indicadores necesarios están listos. Ver figura hecha en Python (En Python es muy cómodo y rápido dibujar todo tipo de gráficos). Se trata de la respuesta a un único salto - 1(t), o función transitoria. En realidad, una de las pruebas estándar.
La fm es la media móvil convencional (que sólo sirve para la calibración), la f1 es la EMA, con un cálculo de coeficiente modificado, y la f2 es un indicador no estándar.
Sin embargo, como solía decir nuestro conocido común:
Así que, para no engañarse con la ciencia, obtendrá la EMA estándar y las fuentes de la estrategia. Sin embargo, voy a hacer y probar la estrategia en mis indicadores. Tal vez, oculte algo más de las miradas indiscretas, pero sin perder funcionalidad.
Pero no se trata de la travesía de la EMA. El objetivo de todo esto son las estrategias de aprendizaje automático. Hasta ahora estoy probando diferentes métodos de clasificación. Y aquí están los resultados de las pruebas:
La clasificación gaussiana, la RBF SVM, las redes neuronales y la bayesiana ingenua están en la cima hasta ahora. El programa Python ya está listo, disponible en algún lugar de Internet, pero la preparación de los datos depende del usuario.
Vamos.
Es una pena que hayan cambiado a las redes neuronales. Pero sobre todo muy útil, creo que nos vendrá bien.
Foro sobre trading, sistemas de trading automatizados y comprobación de estrategias
Robots de aprendizaje automático
Yuriy Asaulenko, 2018.09.21 00:45
No lo harán. Lo máximo que harán es lo mismo que antes.
Es una pena que se hayan pasado a las redes neuronales. Pero sobre todo muy útil, creo que nos vendrá bien.
No hay planes para cambiar a NS y otros métodos de MdD en este hilo. Al menos por ahora). Ya veremos.
Lo que se hace aquí es una plantilla del sistema Python. El llenado específico de esta plantilla es una cuestión de usuario específico.
Bueno, mostrar las capacidades de las bibliotecas de Python, creo, no es superfluo.
Cuando se inicia el programa, se prueba la estrategia, se guarda el informe de todas las operaciones en un archivo CSV, se muestra el gráfico de beneficios en la consola, que puede guardarse en el disco - véase la Fig.