Esto es lo que puedes hacer con OpenCL directamente en MetaTrader 5 sin ninguna DLL - página 16

 

Comprobaré la interpretación.

Sin las dobles matemáticas no hay nada que hacer en nuestro campo. Más aún en 2020.

Mientras que en los primeros días de OpenCL todavía se podían buscar compromisos y dejarse engañar por la idea de "bueno, se puede calcular algo en float", hoy no es así.

Cualquier intento de convertir doble -> int -> doble mata completamente el rendimiento y el beneficio, especialmente en tamaños grandes.

La opción correcta es utilizar formatos nativos y tarjetas más modernas con nuevos drivers.

 

El apoyo está ahí:

OpenCL device name: GeForce GTX 1050 Ti with Max-Q Design
OpenCL device ext: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64
                   cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d10_sharing
                   cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics


OpenCL device name: Intel(R) UHD Graphics 630
OpenCL device ext: cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics 
                   cl_khr_local_int32_extended_atomics cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator 
                   cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long
                   cl_khr_fp64 cl_khr_subgroups cl_khr_il_progr
 
No voy a discutir sobre el modelo moderno de monetización en las TI. Comprar un nuevo hardware que funcione al 25% de la eficiencia posible en comparación con el uso de algoritmos optimizados no causará el calentamiento global :)

Dejaremos el tema de OpenCL y MT5 para más adelante, cuando haya algo de dinero de sobra para un ordenador de sobremesa en el presupuesto familiar.

Tengo que pedirte un favor, Renat. En el manual de MQL5 (sección de OpenCL) añadir una advertencia diciendo que antes de usar datos y cálculos dobles en tarjetas gráficas/coprocesadores gráficos, hay que asegurarse de que son soportados por estos dispositivos. Para que los novatos de MQL5 no se hagan ilusiones con el hardware antiguo.

Gracias por su tiempo.
 
aim-1:

Una petición para ti Renat. Por favor, añade en el manual de MQL5 (sección de OpenCL) una exención de responsabilidad en la que se indique que antes de utilizar datos y cálculos dobles en tarjetas gráficas/coprocesadores gráficos, debes verificar que son compatibles con estos dispositivos. Para que los novatos de MQL5 no se hagan ilusiones con el hardware antiguo.

Esto ya está escrito en la prueba del mapa automático y no es seleccionable: hecho en la última versión

OpenCL  test compilation failed with error: use of type 'double' requires cl_khr_fp64 extension to be enabled 

Se puede decir que los mapas antiguos sin doble soporte son absolutamente inútiles para los cálculos matemáticos.

Esta es la realidad.

 
Renat Fatkhullin:

Esto ya está escrito en la prueba del mapa automático y no es seleccionable: hecho en la última versión

Tengo mucho respeto por MetaQuotes. Se desarrollan y mantienen muy buenas plataformas.

Disclamer (requisitos del sistema) es lógico si quieres llevar un control de la reputación. Porque los principiantes ingenuos (como yo:) se entusiasman con una característica interesante, recogida en la red, y habiendo fracasado en el lanzamiento de MT5, pueden enfriar a una nueva plataforma, porque tienen la impresión de que hay potencialmente otras fallas mientras se utiliza. Por ejemplo, la necesidad de entender la POO en las bibliotecas estándar, etc.

Por cierto, sería útil tener una plantilla de un simple Asesor Experto de comercio sin OOP (preferiblemente directamente en el sitio web de MT5), por lo que incluso los infantes MQL4 puede acostumbrarse rápidamente a MQL5, mientras que tener un control total sobre el código. En este sentido, un nuevo tutorial de MQL5 (preferiblemente más corto - sin rehacer los antiguos) sería una buena idea. Así, la comunidad de comerciantes (el principal motor/obstáculo del progreso) se arrastraría a una nueva plataforma más rápidamente.

Gracias de nuevo por su duro trabajo.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 
aim-1 : Respeto a MetaQuotes. Se desarrollan y apoyan muy buenas plataformas.

La exención de responsabilidad (requisitos del sistema) es lógica si quieres controlar tu reputación. Debido a que los novatos ingenuos (como yo :) atrapado el fuego de las características interesantes recogidos en la red y se rompió cuando MT5 se lanza puede enfriar durante mucho tiempo a la nueva plataforma, ya que parece que otras averías son potencialmente posible cuando se utiliza. Por ejemplo, la necesidad de comprender la POO en las bibliotecas estándar, etc.

Con OOP, por cierto, sería bueno para establecer oficialmente (mejor, a la derecha en las páginas del sitio web de MT5) una plantilla de un simple Asesor Experto de comercio sin OOP, de modo que incluso los bebés MQL4 puede participar rápidamente en MQL5, mientras que el control total del trabajo del código. En este sentido, un nuevo libro de texto sobre MQL5 (preferiblemente más corto - sin repetir el agua vieja) no estaría de más. Entonces, la comunidad de comerciantes (el principal motor/obstáculo del progreso) se arrastrará a la nueva plataforma más rápidamente.

Gracias de nuevo por su duro trabajo.

Algunos ejemplos vienen con el paquete MQL5. Programación totalmente orientada a los procedimientos. No estoy seguro de MQL4

 
No está claro
//test.mqh
void f( int ii )
{
        for ( int i = -ii; i <= ii; i++ )
        {
                int j = CLContextCreate( i );
                if ( j != -1 )
                {
                        CLContextFree( j );
                        Print( ii, ":", i, ":", j );
                }
        }
}
#include "test.mqh"
void OnStart() { f( 32765 ); }
Resultado:
32765:0:2147352576
32765:1:2147418112

y si

#include "test.mqh"
void OnStart() { f( 32766 ); }

Resultado:

32766:0:2147418112

¿Por qué hay una salida (línea) en un caso y dos en el otro?

 
A100:
No está claro Resultado:

y si

Resultado:

¿Por qué hay una salida (línea) en un caso y dos en el otro?

Gracias por el mensaje.
Arreglado.

Desbordamiento del manejador OpenCL debido a la sobreutilización frecuente del manejador, más de SHORT_MAX veces

 
Al parecer solucionaron el problema drásticamente, ahora tampoco funciona
void OnStart()
{
        if ( CLContextCreate( 0 ) == -1 ) Print( GetLastError() ); //5114

}

y hace una semana funcionaba bien. ¿Por qué desactivar OpenCL si no hay soporte para el doble y no se utiliza?

 

Sí, decidí no utilizar en absoluto las tarjetas antiguas sin doble soporte.

Las tarjetas viejas en general son muy malas, incluyendo drivers malos sin reparar que suelen colapsar, dejando caer el terminal.

La realidad es que ya debería controlar explícitamente las versiones de los controladores, como hacen los desarrolladores de juegos para PC. Los controladores por defecto de Microsoft no te llevarán muy lejos.