¿Qué debería añadirse para el soporte adicional de los cálculos matemáticos universales en MQL5 y MQL5 Cloud Network?

 

No todo el mundo sabe que el probador de MetaTrader 5 puede probar no sólo las estrategias comerciales, sino también resolver toda una clase de problemas universales. Para ello existe un modo especial "Cálculos matemáticos", que desactiva la entrega de datos del entorno de mercado, lo que ahorra en gran medida la cantidad de datos transferidos.

Actualmente hemos implementado una serie de funciones importantes para la construcción de una red de cálculo universal:

  • Modo de funcionamiento "Cálculo matemático" para desactivar el entorno del mercado.
  • Transmisión de los datos iniciales a través de la adjunción de la propiedad #fichero_de_prueba "mi_fichero.dat", que nos permite procesar datos iniciales de cualquier tamaño y devolver los resultados.
  • Transmisión de datos de origen en forma de archivos adjuntos de #recursos.
  • Modo servidor de cálculo en el terminal y transferencia de matrices de datos de los agentes en forma de tramas. Los agentes pueden devolver cualquier dato al terminal a través de FrameAdd, mientras que la parte del servidor del mismo Asesor Experto se lanza en el lado del terminal en una ventana separada para recibir los resultados a través de los puntos de entrada OnTesterPass con la extracción de datos a través de las funciones FrameXXX. Los datos obtenidos pueden registrarse en el terminal, visualizarse en un gráfico, etc. Puede obtener más información al respecto en el tema"Control en tiempo real de los procesos de optimización y transferencia de datos masivos de los agentes en MetaTrader 5".
  • Funcionamiento de los agentes locales y remotos (sin MQL5 Cloud Network) con un servidor independiente utilizando las tuberías con nombre.
  • Alquilar una enorme red de agentes para agilizar los cálculos.
  • Construya su propia granja de cálculo en su red en agentes remotos.

Por supuesto, esto va acompañado de: la seguridad de MQL5, su velocidad, los enumeradores genéticos, etc.

De ahí la pregunta: ¿qué otras características deberían incluirse para mejorar las capacidades de la red informática?

 
Renat:

De ahí la pregunta: ¿qué otras características deberían habilitarse para mejorar las capacidades de la red de cálculo?

Permitir el uso de OpenCL en modo de "computación matemática" en la nube.
OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
 
TheXpert:
Permitir el uso de OpenCL en modo de "computación matemática" en la nube.

Esto se ha discutido muchas veces - es arquitectónicamente imposible debido a la forma en que funcionan los controladores de Windows. Mientras las funciones de cálculo sean una parte protegida de los controladores de vídeo, no hay solución. Ahora mismo, incluso si te conectas a través de Escritorio Remoto a Windows, verás que no hay acceso a OpenCL.

En cuanto los fabricantes de tarjetas de vídeo trasladen las funciones de cálculo a una interfaz separada e independiente de los controladores de vídeo, habrá alguna alegría. Hasta ahora, sólo Nvidia Tesla va en esa dirección.

 
En la funciónOnTesterInit()

Añade la transferencia de datos brutos al agente, no como un recurso adjunto, sino como una matriz de datos generada en el curso de la optimización.

Aproximadamente:

void OnTesterInit()
  {
   // здесь формируем массив данных (например ArrayPass[])
   // и передаем сформированный массив агенту для расчетов
   return(ArrayPass);
  }

.

...

Por favor.

 
¿Y quién tiene que transmitir estos datos y cómo exactamente?

Lo que interesa son los detalles técnicos de quién, qué y cómo.
 
Renat:
1. ¿quién y cómo debe transferir exactamente estos datos?

2. lo que interesa son los detalles técnicos de quién, qué y cómo.

1. La transmisión, naturalmente, debe ser hecha por el usuario, como sugerí anteriormente -"Aproximadamente así:", usted sabe mejor.

2. Quién es quién y cómo, no puedo describirlo )

¿Para qué sirven los agentes? - Para resolver problemas.

¿Qué tareas resolvemos? - No sé, lo principal es que los resuelvan.

Necesitamos entrada y salida para resolver estas tareas.

La salida es clara, pero la entrada es confusa.

¿Quizás me he perdido algo? ¿Cómo paso los datos de entrada (calculados a partir de los datos de salida anteriores) al agente?

 
her.human:

1. La transmisión, naturalmente, debe ser hecha por el usuario, como sugerí anteriormente -"Aproximadamente así:", usted sabe mejor.

2. Quién es quién y cómo, no puedo describirlo )

La cuestión es que necesitamos propuestas exactamente elaboradas desde el punto de vista técnico en al menos 2 pasos. "No sé qué y cómo" no es suficiente.

 
her.human:

Cómo pasar los datos de entrada (calculados a partir de los datos de salida anteriores) al agente

Esto ya se ha preguntado, controlar el progreso de la optimización sería a veces muy útil.

Pero en una inmersión más profunda surgen muchas preguntas (a menos que la optimización se haga en un solo agente local).

 
Renat:

La cuestión es que necesitamos propuestas técnicamente sólidas en al menos dos pasos. "No sé qué y cómo" no es suficiente.

Debería decirlo: "se aceptan propuestas en forma de términos de referencia", de lo contrario se percibe como "escucharemos ideas".
 
Komposter, no tan categórico, pero sí un poco más técnico.

Por nuestra parte, pensamos en la comunicación independiente entre agentes sin terminal. Por ejemplo, uno de los agentes podría generar los datos iniciales y enviarlos a los demás mediante fordcast.
 
Renat:
Nosotros, por nuestra parte, pensamos en una comunicación independiente entre agentes sin la participación del terminal. Por ejemplo, uno de los agentes puede generar los datos iniciales y enviarlos a los demás mediante un fordcast.

Es un poco diferente. Quería controlar el curso de la optimización.

Es decir, generar conjuntos de parámetros a medida que avanza la optimización y enviarlos a los agentes para su ejecución.

Naturalmente, habrá muchas preguntas. No estoy preparado para responderlas.