Eis o que você pode fazer com OpenCL diretamente no MetaTrader 5 sem DLLs - página 7

 

Ao tentar executar o roteiro, a princípio foi assim:

NN      0       21:04:58.552    Scripts script Seascape (EURUSD,H1) loaded successfully
MG      0       21:04:59.052    Terminal        OpenCL not found, install the latest OpenCL driver for better performance
PE      0       21:04:59.052    Scripts script Seascape (EURUSD,H1) removed

e depois a partir de http://www.nvidia.ru/Download/index.aspx?lang=ru

os últimos drivers de cartões foram baixados.

e as mensagens de registro são as mesmas que as acima, quando se tenta executar o roteiro.

então o Intel® SDK para OpenCL™ Aplicações para Windows* 2016 foi baixado do site

http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/11058/intel_sdk_for_opencl_setup_6.3.0.1904.exe

na próxima nova tentativa de executar o roteiro, a seguinte mensagem aparecerá no log:

RM      0       17:14:22.070    Scripts script Seascape (EURUSD,H1) loaded successfully
CQ      0       17:14:22.991    OpenCL  Device #0: CPU Intel(R) Corporation Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33 GHz with OpenCL 2.1 (2 units, 2330 MHz, 4094 Mb, version 6.3.0.1904)
EP      0       17:14:23.661    Scripts script Seascape (EURUSD,H1) removed

bem, quem sabe o que está errado?




não pode fazer este openCL* funcionar


________________________

openchlor* - OpenCL

Загрузка драйверов NVIDIA
Загрузка драйверов NVIDIA
  • www.nvidia.ru
Optimal Driver for Enterprise (ODE) Most users select this choice for optimal stability and performance. It also offers ISV certification and long lifecycle support Quadro New Feature Driver (QNF...
 
Você não tem, na lista de dispositivos OpenCL, nenhum adaptador de vídeo!

Mude o código do roteiro, em vez de

   if((cl_ctx=CLContextCreate())==INVALID_HANDLE)

tente a seguinte linha

   if((cl_ctx=CLContextCreate(CL_USE_ANY))==INVALID_HANDLE)
 
Ilyas:
Você não tem, na lista de dispositivos OpenCL, nenhum adaptador de vídeo!

Mude o código do roteiro, em vez de

   if((cl_ctx=CLContextCreate())==INVALID_HANDLE)

tente usar a seguinte linha

   if((cl_ctx=CLContextCreate(CL_USE_ANY))==INVALID_HANDLE)

não funcionou (

JN      0       18:10:49.867    Scripts script Seascape (EURUSD,H1) loaded successfully
LD      0       18:10:50.116    OpenCL  Device #0: CPU Intel(R) Corporation Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33 GHz with OpenCL 2.1 (2 units, 2330 MHz, 4094 Mb, version 6.3.0.1904)
RM      0       18:10:50.223    Scripts script Seascape (EURUSD,H1) removed
 
fmql:

não ajudou (


Compilar o roteiro
 
Há limites para a computação na CPU e na GPU?
 
-Aleks-:
Há alguma limitação para os cálculos sobre CPU e GPU?

Como regra, a limitação é a memória, tanto para GPU quanto para CPU.

Mas uma coisa é clara - o código para a CPU é menos exigente para otimizar do que para a GPU, muitas vezes acontece que na CPU funciona suavemente que na GPU não pode nem rodar ou termina rapidamente com um erro ou travamento do driver de vídeo.

 
Igor Volodin:
Compilar o roteiro
foi naturalmente compilado
 
Andrey Dik:

Como regra, a limitação é a memória, tanto para GPU quanto para CPU.

Mas uma coisa é clara - o código para a CPU é menos exigente para otimizar do que para a GPU, muitas vezes acontece que na CPU funciona suavemente e que na GPU não pode nem rodar ou termina rapidamente com um erro ou travamento do acionador de vídeo.

Se este for o caso, é possível usar a GPU para calcular indicadores e executar o Expert Advisor na CPU?
 
Dr.Trader:

O OpenCL é muito bom, você pode treinar redes neurais muito rapidamente com esta tecnologia, centenas (milhares) de vezes mais rápido do que em um processador comum.

Isto pode ser corrigido da seguinte forma: encontre estas linhas no roteiro -

                    "   uint b=(uint)(res[2]*255);\r\n"
                    "   uint g=(uint)(res[1]*255);\r\n"
                    "   uint r=(uint)(res[0]*255);\r\n"

e substituí-los por -

                    "   uint b=(uint)(res.z*255);\r\n"
                    "   uint g=(uint)(res.y*255);\r\n"
                    "   uint r=(uint)(res.x*255);\r\n"


Obrigado!

Funcionou, mas o "céu" tem ondulações nele.

 
Ficou claro para mim, como não-programador, a partir dos comentários que isto não era para as massas. Mas ainda era interessante de ler. Diga-me, devo esperar uma onda de novas idéias sob a forma de indicadores e especialistas? Ou é apenas um brinquedo para a elite?