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

 
Renat Fatkhullin:

Estamos preparando uma biblioteca do OpenCL para matemática e renderização, que levará algumas semanas. Vai ser incrivelmente rápido e bonito.

Enquanto isso, dê uma olhada na biblioteca gráfica atualizada para a renderização de gráficos científicos.

Então, trata-se de escrever programas no MetaEditor, ou eles já estão preparados e apenas um roteiro deve ser atirado no gráfico?
 

Também não começou para mim:

2016.12.10 07:00:47.388 Seascape (EURUSD,M1)    OpenCL: GPU device 'Redwood' selected
2016.12.10 07:00:47.418 Seascape (EURUSD,M1)    
2016.12.10 07:00:47.418 Seascape (EURUSD,M1)    OpenCL program create failed
2016.12.10 07:00:57.263 Seascape (EURUSD,M1)    OpenCL: GPU device 'Redwood' selected
2016.12.10 07:00:57.285 Seascape (EURUSD,M1)    
2016.12.10 07:00:57.285 Seascape (EURUSD,M1)    OpenCL program create failed
 

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.

prostotrader:
2016.12.10 03:57:08.218 Seascape (GOLD-12.16,H1)        OpenCL program create failed
2016.12.10 03:57:36.695 Seascape (GOLD-12.16,H1)        OpenCL: GPU device 'GeForce GTX 970' selected
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:188:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint b=(uint)(res[2]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:189:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint g=(uint)(res[1]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:190:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint r=(uint)(res[0]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        
2016.12.10 03:57:36.730 Seascape (GOLD-12.16,H1)        OpenCL program create failed

Isto pode ser corrigido encontrando 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"
 

Algumas perguntas:

  1. Se vários EAs estiverem funcionando no mesmo terminal, eles podem compartilhar e usar o OpenCL independentemente?
  2. O mesmo com vários terminais.

 
Renat Fatkhullin:

Milhares de núcleos de GPU podem ser usados com OpenCL para acelerar os cálculos em cem (várias centenas) vezes.

Isto é exatamente o que é necessário na negociação e o que permitirá a transição para técnicas que requerem ordens de magnitude mais recursos computacionais.

Na MQL4 você escava com uma pá, enquanto na MQL5 com OpenCL você obtém um trator em termos de desempenho. Para levar os cálculos da GPU às massas, estamos preparando novas bibliotecas matemáticas além das já existentes.

Você também precisa de exemplos reais do que pode ser realisticamente paralelizado em uma EA, por exemplo.

Posso usar código usando OpenCL quando otimizo?

 
Renat Fatkhullin:

Com OpenCL você pode usar milhares de núcleos de GPU para acelerar os cálculos matemáticos uma centena (várias centenas) de vezes.

Isto é exatamente o que é necessário na negociação e o que permitirá a transição para técnicas que requerem ordens de magnitude mais recursos computacionais.

Na MQL4 você escava com uma pá e na MQL5 com OpenCL você obtém um trator em termos de desempenho. Para levar os cálculos da GPU às massas, estamos preparando novas bibliotecas matemáticas além das já existentes.

Haverá alguma vez algo semelhante para a MQL4? Ou, pelo menos, o uso de multithreading, porque os processadores multi-núcleo são de pouca utilidade.

Você pode fazer jogos com tais gráficos no terminal do cliente, mas eu me pergunto se os comerciantes vão jogar em vez de negociar )

 
Alexander Nikolaev:

Haverá alguma vez algo semelhante para a MQL4? Ou, pelo menos, o uso de multithreading, porque os processadores multi-núcleo são de pouca utilidade.

Eu não sei se os comerciantes jogarão jogos no terminal com tais gráficos, mas eu me pergunto se eles jogarão jogos em vez de negociar )

Quais são suas tarefas que carecem de um núcleo?

Você pode executar cópias de terminais correspondentes ao número de núcleos para otimizá-los.

 
-Aleks-:

Que tipo de tarefa você tem que carece de um núcleo?

Você pode executar cópias dos terminais correspondentes ao número de núcleos a serem otimizados.

Bem, se não apenas 8-16 núcleos de CPU, mas milhares de núcleos de CPU forem usados para otimização, seria uma explosão de desempenho. Se, é claro, tal possibilidade for implementada.
 
Vitalie Postolache:
Bem, se não apenas 8-16 núcleos de CPU, mas milhares de núcleos de CPU são usados para otimização, seria uma explosão de desempenho. Se, é claro, tal possibilidade será implementada.
Renat há muito disse que o OpenCL funciona no testador MT5, mas apenas em uma máquina local, não na nuvem. Portanto, use-o mesmo agora.
 

Lindo!!!

Mesmo pensando em como poderia ser usado mais tarde - notícias ao vivo diretamente no gráfico, ou em seu próprio canal com análises ou treinamento (webinars)

Desenvolvedores Bem feito.