Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 2441

 
Renat Fatkhullin:

Já dissemos que estamos a avançar para a implementação da aprendizagem de máquinas na MQL5.

Em breve iremos lançar suporte nativo para números complexos (prontos), vetores de velocidade e matrizes. Esta é exatamente a funcionalidade nativa do idioma, não as bibliotecas.

Em seguida, incluiremos um grande conjunto de mecânica ML e daremos funcionalidade semelhante ao TensorFlow. Isto nos permitirá escrever um nível completamente diferente de robôs nativos.

Isso é interessante, mas precisamos de intérpretes modelo do mesmo CatBoost com suporte para preditores categóricos e diferentes variantes de construção de árvores, mais com multiclassificação. Procedo a partir daí, preciso de funcionalidade para usar as realizações modernas, e depois funcionalidade para recriá-las, melhorá-las, reciclá-las.

Construídos em diferentes métodos de agrupamento, classificação, conversão, compressão de dimensionalidade, transformação, seleção de preditores podem ser úteis, ajustados à negociação.

 
Aleksey Vyazmikin:

Isto é interessante, mas precisamos de intérpretes de modelos CatBoost com suporte para preditores categóricos e diferentes variantes de árvores, além de multiclassificação. Presumo que precisamos de funcionalidade para usar as realizações modernas, e depois funcionalidade para as recriar, melhorar, reciclar.

Construído em diferentes métodos de agrupamento, classificação, conversão, compressão de dimensões, transformação, seleção de preditores - pode ser útil com correção para negociação.

Tudo passo a passo.

Já fizemos coisas (complexos, vectores e matrizes em versões alfa) que as linguagens convencionais, incluindo Python (que nem sequer tem matrizes nativas de tipos simples) não têm.

Na realidade, os filtros e motores dentro do TensorFlow não são super complexos. Elas podem ser portadas criativamente para a MQL5 sem o ônus da compatibilidade com tudo e qualquer coisa no projeto inicial.

No nosso tempo, transferimos e apresentamos no código fonte MQL5 cerca de 500 funções de R. E na MQL5 é 3 a 50 vezes mais rápido.

Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
  • www.mql5.com
Рассмотрены функции для работы с основными статистическими распределениями, реализованными в языке R. Это распределения Коши, Вейбулла, нормальное, логнормальное, логистическое, экспоненциальное, равномерное, гамма-распределение, центральное и нецентральные распределения Бета, хи-квадрат, F-распределения Фишера, t-распределения Стьюдента, а также дискретные биномиальное и отрицательное биномиальные распределения, геометрическое, гипергеометрическое и распределение Пуассона. Есть функции расчета теоретических моментов распределений, которые позволяют оценить степень соответствия реального распределения модельному.
[Excluído]  
Renat Fatkhullin:

Já dissemos que estamos a avançar para a implementação da aprendizagem de máquinas na MQL5.

Em breve iremos lançar suporte nativo para números complexos (prontos), vetores de velocidade e matrizes. Esta é exatamente a funcionalidade nativa do idioma, não as bibliotecas.

Em seguida, incluiremos um grande conjunto de mecânica ML e daremos funcionalidade semelhante ao TensorFlow. Isto irá permitir-lhe escrever um nível completamente diferente de robôs nativos.

Você vai usar WinML ou DirectML ou alguma de suas próprias soluções?

Haverá apoio para o ONNX?

 
Renat Fatkhullin:

Já dissemos que estamos a avançar para a implementação da aprendizagem de máquinas na MQL5.

Em breve iremos lançar suporte nativo para números complexos (prontos), vetores de velocidade e matrizes. Esta é exatamente a funcionalidade nativa do idioma, não as bibliotecas.

Em seguida, incluiremos um grande conjunto de mecânica ML e daremos funcionalidade semelhante ao TensorFlow. Isto permitirá escrever robôs nativos em absolutamente outro nível.

Renat, isto é muito interessante. Espero uma documentação completa sobre a direção desenvolvida. Obrigado!
 

Renat Fatkhullin:

Em breve iremos lançar suporte nativo para números complexos (prontos), vetores de velocidade e matrizes.

A capacidade de trabalhar com arrays sem loops, como em matlab e numpy (multiplicação por número, multiplicação elemento por elemento, fatia) é muito necessária.

 
Rorschach:

A capacidade de trabalhar com arrays sem loops, como em matlab e numpy (multiplicação por número, multiplicação elemento por elemento, fatia) é muito necessária.

Isto já está disponível a nível linguístico.

 
Koldun Zloy:

Você vai usar WinML ou DirectML ou algum tipo de solução própria?

Haverá suporte ONNX?

Primeiro, estamos fazendo suporte nativo para novos tipos de dados e operações sobre eles diretamente no idioma.

A aceleração das operações via OpenCL/multithreading será escondida e transparente para os desenvolvedores.

WinML/ONNX será considerado mais tarde.

 
Offtopic apagado.
 
Renat Fatkhullin:

Planejamos aplicar o OpenCL de forma automática e transparente às operações matriciais e ML.

Na verdade, vamos espremer o máximo sem usar toneladas de CUDA monstruosamente configuráveis e bibliotecas de fluxo tensor.

O OpenCL não será aplicado automaticamente aos vetores?
Ou seja, se trabalharmos com vários vectores, seria mais razoável usar uma matriz?
Ou os vetores também serão suportados no OpenCL?

Adicionado.
O recurso de hardware na CPU ou GPU será selecionado automaticamente a partir do que está disponível?
Ou será possível decidir que recurso utilizar?

 
Roman:

O OpenCL não se aplicará automaticamente aos vetores?
Ou seja, se trabalharmos com vários vectores, seria mais racional usar uma matriz?
Ou os vetores também serão suportados no OpenCL?

Adicionado.
O recurso de hardware na CPU ou GPU será selecionado automaticamente a partir do que está disponível?
Ou será possível determinar que recurso utilizar?

Há pouco sentido em usar OpenCL de alto custo para vetores únicos.

Onde encontrarmos um efeito, vamos aplicá-lo. O OpenCL não é um fim em si mesmo.

Aguarde as versões beta das operações de matriz sem OpenCL no início. Uma vez que a funcionalidade básica tenha sido depurada, passaremos a acelerar.

Tudo será definitivamente coberto com testes de stress e benchmarks.