Grupo de usuarios de MetaTrader 5 Python - cómo utilizar Python en Metatrader - página 15

 
Maxim Dmitrievsky:

un comando y una lista de parámetros pueden ser pasados como una cadena, separados por separadores. Cuando el Asesor Experto desempaque el mensaje, entenderá qué hacer


El comando OrderSend ?

¿Cuál debe ser el formato de la cadena? cadena ? En el ejemplo del socket, la cadena del socket mql5 se pasaa result: socketreceive(int sock,int timeout)...result+=CharArrayToString(rsp,0,rsp_len);.devolver el resultado;

 
slukin:

Comando OrderSend ?

¿Cuál debe ser el formato de la cadena? cadena ? En el ejemplo del socket, la cadena del cliente del socket mql5 se pasaa result: socketreceive(int sock,int timeout)...result+=CharArrayToString(rsp,0,rsp_len);.devolver el resultado;

no es OrderSend() sino simplemente una cadena que contiene los 3 primeros caracteres, por ejemplo "BUY", seguido de una lista de argumentos: lotes, take, sl. El Asesor Experto lee la cadena, ve las 3 primeras letras buy y forma una solicitud Trog

es decir, diseñar un simple protocolo de intercambio entre las aplicaciones, de forma libre
 
Maxim Dmitrievsky:

no es OrderSend() sino una cadena con los 3 primeros caracteres, por ejemplo "BUY", y luego una lista de argumentos: lotes, take, sl. El Asesor Experto lee la cadena, ve que las 3 primeras letras son buy y forma una petición trog

es decir, piense en un simple protocolo de intercambio entre aplicaciones, de forma libre


Un ejemplo de un desarrollador experimentado sería muy útil.

 
Roffild:

Ya he conectado un Python completo a la terminal, y sigues usando sockets y tuberías lentas para hacer el intercambio.

Si no es demasiado difícil, ¿cuánto tiempo dura una sola prueba en cualquier momento?

Esto significa que estamos interesados en preguntar cuánto tiempo de optimización en el probador es y si los cálculos incorrectos son posibles?

En los comentarios anteriores escribisteis que necesito algunos conocimientos previos en JAVA para entenderlo.

También sé algo de C# y Python, puedo programar en MQL4,5, ¿puedo dominar sus bibliotecas con bastante facilidad, cuánto más difíciles pueden ser?

 
slukin:

Un ejemplo de un desarrollador experimentado sería muy útil.

no hay tiempo para explicar, a menos que haya un artículo más adelante, con ejemplos

 
forexman77:

Si no es difícil escribir el tiempo que tarda una sola prueba en cualquier plazo...

Es decir, estoy interesado en la cuestión de cuánto tiempo la optimización en el probador y si hay cálculos incorrectos?

En los comentarios anteriores escribisteis que necesito algunos conocimientos previos en JAVA para entenderlo.

Sé algo de C# y Python, puedo programar en MQL4,5, ¿puedo dominar sus bibliotecas con bastante facilidad, cuánto más difíciles pueden ser?

La optimización en el Probador de Estrategias es la misma que la habitual. Quedan excluidos los cálculos incorrectos debidos a datos corruptos durante la transferencia a Python y de vuelta, porque la transferencia tiene lugar a través de la RAM, y no a través de sockets o archivos inestables.

Sí, pongo en mi biblioteca código en MQL, Java y Python. Pero no tienes que usar Java si no necesitas Apache Spark, etc.

 

MetaTrader 5 build 2055 beta: integración con Python, alcance tipo C++ y mejoras masivas en el probador de estrategias

Terminal: Добавлено API для запроса данных из терминала MetaTrader 5 через приложения, использующие язык Python

Python es un lenguaje de programación moderno y de alto nivel para desarrollar scripts y aplicaciones. Contiene muchas bibliotecas para el aprendizaje automático, la automatización de procesos, el análisis de datos y la visualización.

Elpaquete MetaTrader para Python está diseñado para obtener fácil y rápidamente los datos de intercambio a través de la comunicación interproceso directamente desde el terminal MetaTrader 5. Los datos así obtenidos pueden utilizarse además para cálculos estadísticos y aprendizaje automático.



Conectando

  1. Descargue la última versión de Python dehttps://www.python.org/downloads/windows
  2. Cuando instale Python marque la casilla "Añadir Python X.X a PATH%" para poder ejecutar scripts en Python desde la línea de comandos.
  3. Instalar el módulo de MetaTrader 5 desde la línea de comandos
    pip install MetaTrader5
  4. Añadir los paquetes matplotlib y pytz
    pip install matplotlib
    pip install pytz

Funciones

  • MT5Initialize- establece la conexión con el terminal MetaTrader 5
  • MT5Shutdown- cierra la conexión previamente establecida con el terminal MetaTrader 5
  • MT5TerminalInfo- recibe el estado y los parámetros del terminal MetaTrader 5 conectado
  • MT5Version- devuelve la versión del terminal MetaTrader 5
  • MT5WaitForTerminal- espera a que el terminal MetaTrader 5 se conecte al servidor de operaciones
  • MT5CopyRatesFrom- recibe barras del terminal MetaTrader 5 desde la fecha especificada
  • MT5CopyRatesFromPos- recibe barras del terminal MetaTrader 5 a partir del índice especificado
  • MT5CopyRatesRange- recibe barras en el rango de fechas especificado desde el terminal MetaTrader 5
  • MT5CopyTicksFrom- recibe los ticks del terminal MetaTrader 5 a partir de la fecha especificada
  • MT5CopyTicksRange- recibe los ticks para el rango de fechas especificado desde el terminal MetaTrader 5
Welcome to Python.org
Welcome to Python.org
  • 2019.05.15
  • www.python.org
The official home of the Python Programming Language
 

¿Y qué? ¿Alguien está trabajando en esa dirección? No parece entusiasmado.

Buena suerte

 
Vladimir Perervenko:

¿Y qué? ¿Alguien está trabajando en esa dirección? No parece entusiasmado.

Buena suerte

No en este. Y uso python para las pruebas de NS.
 
Roffild:

La optimización en el probador es la habitual. Quedan excluidos los cálculos incorrectos debidos a la corrupción de datos durante la transferencia hacia y desde Python, ya que la transferencia se realiza a través de la memoria RAM, no a través de sockets o archivos inestables.

Sí, pongo en mi biblioteca código en MQL, Java y Python. Pero no tienes que usar Java si no necesitas Apache Spark, etc.

Estoy de acuerdo en que es más rápido a través de la memoria, pero no estoy de acuerdo en que los sockets o pips no sean estables, y la velocidad loca de la memoria cuando se organiza un conector es innecesaria porque hay intercambio de latencia <--- (es posible el servidor intermedio) ---> terminal, para lo cual incluso cientos de sockets consecutivos dentro de una máquina son excesivamente...

Razón de la queja: