Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 61

 
Yedelkin:

No entiendo cuál es exactamente el inconveniente. Se descarga el historial una vez en OnInit() para todos los símbolos - eso es todo.

La creación de un indicador, ¿garantiza que el historial se descargue a la profundidad adecuada?

"MQL5 Reference" - Acceso a Series Temporales e Indicadores - Organización del Acceso a los Datoshttps://www.mql5.com/ru/docs/series/timeseries_access

La recepción de nuevos datos del servidor provoca la actualización automática de los datos de precios utilizados en el formato HC para todos los plazos y el recálculo de todos los indicadores, que obviamente los utilizan como datos de entrada para el cálculo.

Cuando llamo a un indicador desde un Asesor Experto, si el historial de un símbolo no está cargado, el terminal comenzará a descargar los datos y el tráfico se mantiene igual

No me gusta la carga independiente de datos, hay que vigilarla constantemente, lógicamente el propio terminal de la 5ª generación debería hacerlo! MT4 tiene una carga independiente del historial desde el código del indicador - "eso era un coñazo" :)

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Доступ к таймсериям и индикаторам / Организация доступа к данным - Документация по MQL5
 
IgorM:
Ya veo. El inconveniente está en obtener datos frescos por el indicador (por otros símbolos), y no los históricos, como parecía inicialmente. Sólo hay una idea en este caso: un indicador simple consume memoria en proporción directa al número de sus búferes, por lo que si no se quiere desperdiciar memoria, se puede desplazar la carga a los indicadores auxiliares.
 
Yedelkin En este caso sólo hay una idea: un indicador simple utiliza la memoria en proporción directa a la cantidad de sus búferes, por lo que si no se quiere desperdiciar la memoria, se puede desplazar la carga en los indicadores auxiliares.

Esto es constructivo, pero nadie prohíbe limitar el número de barras en la configuración del terminal - consumirá menos memoria, CopyClose() etc. también requiere arrays, y esta es la misma memoria del ordenador. Y parece que en el propio indicador se puede limitar el número de barras para el recálculo - también requiere menos memoria.

¿funcionará correctamente esta construcción con el probador?

 
IgorM: Pero nadie prohíbe limitar el número de barras en la configuración del terminal - consumirá menos memoria

Sí, "quien está prevenido está prevenido" :)

IgorM: CopyClose() etc. también requieren arrays, que es la misma memoria que el ordenador.

No estoy de acuerdo con el consumo de memoria similar de la función CopyClose(). Esta función permite que las matrices sean pequeñas, y el búfer del indicador - siempre se estira hasta su longitud total especificada en la configuración del terminal, es decir, al menos 50 mil barras.

IgorM : ¿Este diseño funcionará correctamentecon el probador?
En septiembre, el probador no reacciona al limitar el número de barras en los ajustes del terminal. Es decir, cargó todo el historial. En cuanto a los indicadores auxiliares, funcionan bien en el probador.
 
¿Por qué los cálculos son realizados por la CPU y no por la GPU? Quizás no entiendo algo, pero la eficiencia de CUDA y OpenCL es reconocida en muchas industrias. Incluso para la informática médica, unos míseros 2-4-8 agentes son simplemente patéticos comparados con los 128 o más agentes de una tarjeta gráfica
 
madload:

Dígame, ¿por qué los recursos computacionales son de la CPU y no de la GPU? Quizás no entiendo algo, pero la eficiencia de CUDA y OpenCL es reconocida en muchas industrias. Incluso para cálculos médicos. Y unos míseros 2-4-8 agentes son simplemente patéticos comparados con los 128 o más agentes de una tarjeta gráfica.

¿Quién te prohíbe utilizar los recursos de computación de la GPU?

Ver:

OpenCL: el puente hacia los mundos paralelos

OpenCL: de la codificación ingenua a la codificación más inteligente

 
Reshetov:

¿Quién le impide utilizar los recursos de cálculo de la GPU?

Ver:

OpenCL: el puente hacia los mundos paralelos

OpenCL: de la codificación ingenua a la codificación con más sentido

Me he descargado el metatester pero solo tiene CPU. no hay forma de conectar tarjetas gráficas a los cálculos - eso es lo que pregunto - ¿habrá un software basado en gpu?
 
madload:
no hay forma de conectar las tarjetas de video a los cálculos

No seas absurdo. Te he dado enlaces a dos artículos en los que está escrito en ruso e inglés de forma clara cómo utilizar las capacidades de la GPU para los cálculos.

 
Reshetov:

No seas absurdo. Te he dado enlaces a dos artículos en los que está escrito en ruso e inglés de forma clara cómo utilizar las capacidades de la GPU para los cálculos.


MQ todavía no ha descubierto cómo estandarizar la plétora de vises que se ejecutan en los ordenadores de la nube.

Problema 1: hay varios núcleos de CPU en el ordenador y una tarjeta de vídeo, todos los agentes irán a la tarjeta pidiendo recursos.

Problema 2: los vises difieren mucho tanto en memoria como en número de núcleos (escribir código para un widget personalizado es una cosa, pero escribir código universal es mucho más difícil). No olvides que la inteligencia de la multitud es igual a la de la oveja más tonta. De ahí el problema de qué listón poner. Para un código serán suficientes 128 núcleos y 512 Mb de memoria, mientras que otro código necesitará no menos de 2 GB y 2048 núcleos. De nuevo, la viscosidad varía mucho más que la de la CPU, de ahí el problema de las aplicaciones de clusión. En el caso de las CPUs, la cuestión se resuelve a través del nivel de PR a partir del cual se permite el uso de los núcleos por parte de los agentes.

loco:

Dime, ¿por qué los cálculos los hacen las CPUs y no las GPUs? Tal vez se me escapa algo, pero la eficacia de CUDA y OpenCL es reconocida en muchas industrias. Incluso se utilizan cálculos médicos. Y unos míseros 2-4-8 agentes son simplemente patéticos comparados con los 128 o más agentes de una tarjeta gráfica.

Cloud no tiene unos míseros 2-4-8 agentes, escala dependiendo de la tarea, yo estaba probando un EA con 512 agentes, para tareas serias podría tener más.

 
Urain:

No te engañes, los agentes no usan GPUs porque MQ todavía no ha descubierto cómo estandarizar en una masa variopinta de vises en ordenadores claudios.

No mientas, la GPU se utiliza en los agentes locales. No pregunté por la tetera claudicante, sino por el metatester.

Ver https://www.mql5.com/ru/forum/6042/page10

Renat:

ilovebtc:

¿La tarjeta de vídeo ya está habilitada en la nueva compilación del probador o no? Si es así, ¿dónde puedo ver los resultados?

Sí, por supuesto. Puedes llamar a funciones OpenCL desde MQL5 y calcular tus tareas.

Ver https://www.mql5.com/ru/forum/23/page15

MetaTrader 5 Client Terminal build 655

...

25. MetaTester: Se ha añadido soporte para el uso de programas OpenCL en los agentes de prueba.

Los programas OpenCL están pensados para realizar cálculos en tarjetas de vídeo compatibles con OpenCL 1.1 o superior. Las tarjetas de vídeo modernas contienen cientos de pequeños procesadores especializados que pueden realizar simultáneamente operaciones matemáticas sencillas sobre flujos de datos entrantes. El lenguaje OpenCL organiza esta computación paralela y proporciona un enorme aumento de velocidad para una determinada clase de tareas.

OpenCL: внутренние тесты реализации в MQL5
OpenCL: внутренние тесты реализации в MQL5
  • www.mql5.com
Мы ведем работу над нативной поддержкой OpenCL прямо в MQL5.