MetaTrader 5 Python User Group - como usar o Python no Metatrader - página 24

 
Maxim Dmitrievsky:

Casos visualmente semelhantes também não são mal detectados.

Não conseguia interpretar as imagens.

[Excluído]  
fxsaber:

Não conseguia interpretar as imagens.

artigo a caminho

é interessante como os ciclos e as tarefas na cabeça de algumas pessoas por vezes coincidem ))
 
fxsaber:

Publiquei um cálculo no blogue que se assemelha perfeitamente. Infelizmente, a informação do OpenCL é de tal nível que requer uma competência muito superior à minha.

Gostaria de ver um exemplo simples (como no blogue) da implementação do OpenCL e o resultado da aceleração.

Porquê falar sem uma ligação, embora exista um requisito?
 
Renat Fatkhullin:
Porque é que não existe uma ligação, apesar de existir uma exigência?

Não há nenhuma reivindicação. Não forneci um link para a entrada do blog de modo a não dar azo a acusações de auto-promoção.

https://www.mql5.com/ru/blogs/post/731774

Research03: находим простые связи между движениями цены в разных частях суток
Research03: находим простые связи между движениями цены в разных частях суток
  • 2019.12.04
  • www.mql5.com
Как это ни парадоксально, но именно при активной алготоровле много времени уходит на вглядывание в монитор. Иногда возникают иллюзии, будто что-то полезное уловил глазом. Так произошло и в этот раз. Давно была гипотеза, что какие-то движения внтури дня имеют связь с движениями после в этом же дне. Например, может показаться, что микрогепы в...
 
Renat Fatkhullin:

Eu (e todos os outros) não tenho podido ver a utilização deste parâmetro no Visual Studio durante os últimos 10 anos. Mesmo tendo activado todas as bandeiras de denúncia de loop sweep.

Simplesmente não funcionou e não funciona mesmo em grandes projectos onde existem muitas possibilidades de paralelização. Apenas o OpenMP directo com trabalhos de partição manual de laço.

Na MQL5, os loops não são paralelos.

Concordo com o fxsaber que o OpenCL requer um elevado limiar de entrada.
O facto de existir é bom, mas apenas alguns são bons nisso.

O facto de os loops em mql5 não serem paralelos, essa foi a sugestão para uma possível implementação.
Agora a plataforma está em Clang, talvez haja ali um bom paralelismo, não sei.
O objectivo da proposta é de a puxar para uma directiva mql.

 
Renat Fatkhullin:

Compreendo correctamente que se definir esta tarefa para encontrar moções semelhantes ao Optimizer, então a genética não funcionará?

Neste caso, o Testador não será habilitado para uma enumeração completa, pois há muitos passes a serem feitos.

Isto é, a única forma de resolver este problema é executar o guião em Terminal.

[Excluído]  
Lyuk:

Decidido a verificar um projecto real - talvez a python utilize o compilador jit o tempo todo? Tenho o ranger https://github.com/ranger/ranger, projecto com 122 ficheiros (26368 linhas), pingou-os para @njit.

$ grep '@njit' $(xbps-query -f ranger)

Resultado - nem um único achado. Receio que a utilização activa desta funcionalidade transformará o arranque numa busca de vários minutos.

 
Lyuk:

Com todo o respeito, simplesmente não se sabe como cozinhá-lo. Reformulou o seu exemplo:

Em Python:


Aqui está uma comparação em Python 3.8 e MQL5 nos modos de linha única/OpenCL: tempo em segundos, quanto menos melhor

pi-single.py
pi-multi.py
Velocidade PI.mq5 simples
Velocidade PI.mq5 OpenCL
4.1743
0.2101
4.1836
0.1025

Python em modo JIT via numba, o ferro é:

  • Windows 10 x64, Intel Xeon E5-2690 v3 a 2.60GHz
  • GeForce RTX 2080

O exemplo da utilização de OpenCL é muito simples e não requer quaisquer folhos para optimização. Embora a tarefa não seja massiva para o OpenCL e tenha desencadeado despesas gerais em preparação, ainda assim deu um resultado muito melhor.

Cálculos paralelos muito grandes podem ser efectuados rotineiramente com OpenCL. O limiar de entrada não é elevado e só demora um dia a descobrir como utilizá-lo.

Ficheiros para reprodução anexados.

Arquivos anexados:
 
Renat Fatkhullin:

Embora a tarefa não seja massiva para o OpenCL e tenha desencadeado despesas gerais em preparação, ainda assim deu um resultado muito melhor.

Como se debugou a parte do código OpenCL?

 
Renat Fatkhullin:

O exemplo da utilização de OpenCL é muito simples e sem quaisquer folhos para optimização. Embora a tarefa não seja massiva para o OpenCL e tenha desencadeado despesas gerais em preparação, ainda assim deu um resultado muito melhor.


Renat, pode dar-me uma ideia aproximada dos casos em que o OpenCL terá uma vantagem, trabalhando com um grande número de matrizes ou se existe um grande conjunto de símbolos e indicadores numa EA?

Não sou um programador profissional, as coisas simples ao nível da programação são provavelmente difíceis para mim