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

 
Evgeny Dyuka #:

Em primeiro lugar, não entendo o porquê de toda essa fantasia com a ONNX.

Há um cenário básico óbvio para tornar o MT5 e o MO amigos:
1. A partir de OnInit(), o script python é iniciado como um processo separado.
2. Precisamos de algumas funções de troca de informações entre o python e o EA, no modo em que o EA pode esperar pela chegada das informações.
3. Criamos uma pasta Models e lançamos modelos TensorFlow nela.

É ISSO!!! A integração do MT e do MO aconteceu! Todos estão felizes.

Pode ser mais simples... conectar o Redis, obter RedisAI com suporte a PyTorch, ONNX, TensorFlow e, se desejar, distribuir a carga entre nós e nuvens.

 
Maxim Dmitrievsky #:
Uma muleta a menos, a gama de modelos usados será bastante ampliada (antes, a maioria das pessoas otimizava os pesos por meio de entradas de terminal). Aparentemente, ele também deve funcionar no mac, vou verificar em breve :) às vezes é bom não fazer nada e esperar que a comida chegue à sua boca sozinha

Bem, eu me envolvi nesse caso para elevar o nível do python - não posso ficar sem ele agora), acho que vou começar com o LightGBM. Parece que há duas maneiras de obter o ONNX para ele: onnxmltools e skl2onnx.

 
Observe que a execução nativa de modelos onnx permite que você os execute com facilidade e rapidez no testador e no claudnet sem sobrecarga do sistema, o que é quase impossível com integrações de terceiros.

É durante o teste de estratégia que todas essas perguntas do tipo "qual é o problema de perder 50 ms por chamada" aumentarão o tempo de teste em milhares de vezes.
 
Evgeny Dyuka #:
Eu ouço essa lenda sobre a importância da velocidade o tempo todo, mas não consigo entender onde ela é importante.
Levando em conta o spread e as comissões da bolsa/corretora, você precisa fazer uma previsão para um tempo medido em dezenas de minutos ou horas. O que a diferença de 50 milissegundos tem a ver com isso?
Como exatamente, na vida real, vencer o MQ em relação ao fxsaber por 5 milissegundos ajuda você?

Como quiser, mas eu não me importaria nem mesmo com um pequeno aumento de velocidade. Tanto em testes/otimização quanto em negociações.

 
Renat Fatkhullin #:
Observe que a execução nativa dos modelos onnx facilita e agiliza a execução deles no testador e no claudnet sem sobrecarga do sistema, o que é quase impossível com integrações de terceiros.

É durante o teste de estratégia que todas essas perguntas do tipo "qual é o problema de perder 50 ms por chamada" aumentarão o tempo de teste em milhares de vezes.
Receio que a otimização na nuvem não funcione. O objetivo da otimização é alterar os parâmetros do TS. Por exemplo, a seleção de TP/SL. Quando eles são alterados, os dados para treinamento mudam. Ou seja, é necessário treinar o modelo com cada variante de parâmetros e, para isso, o software MO (Catbust, rede neural etc.) deve ser instalado. É improvável que na nuvem alguém tenha o software necessário, com a versão correta, instalado.
.

Portanto, o treinamento só pode ser feito no testador na máquina do desenvolvedor.
E não faz sentido fazer upload do modelo finalizado para a nuvem.

 
Maxim Kuznetsov #:

Pode ser mais simples... conectar o Redis, obter RedisAI com suporte a PyTorch, ONNX, TensorFlow e, se desejar, distribuir a carga entre nós e nuvens.

Nossa aeronave tem a bordo uma piscina, uma pista de dança, um restaurante, áreas de recreação aconchegantes, um jardim de inverno... Caros passageiros, apertem os cintos de segurança, agora vamos tentar decolar com tudo isso.

 
Forester #:
Receio que a otimização na nuvem não funcione. O objetivo da otimização é alterar os parâmetros do TS. Por exemplo, a seleção de TP/SL. Quando eles são alterados, os dados para treinamento mudam. Ou seja, é necessário treinar o modelo com cada variante de parâmetros e, para isso, o software MO (Catbust, rede neural etc.) deve ser instalado. É improvável que na nuvem alguém tenha o software necessário, com a versão correta, instalado.
.

Portanto, o treinamento só pode ser feito no testador na máquina do desenvolvedor.
E não faz sentido fazer upload do modelo finalizado para a nuvem.

Para ser justo, um modelo não é necessariamente um TS concluído. Por exemplo, o modelo prevê um incremento de preço e, nos parâmetros do EA, é definido um valor limite para o incremento previsto, que o EA tenta negociar.

 
Aleksey Nikolayev #:

Nosso avião tem a bordo uma piscina, uma pista de dança, um restaurante, áreas de lounge aconchegantes, um jardim de inverno... Caros passageiros, apertem os cintos de segurança, agora vamos tentar decolar com toda essa merda.

Na minha opinião, isso é exatamente o desenvolvimento atual do MQL. Uma tentativa de colocar tudo dentro de uma só vez em vez de integrações.

 
Maxim Kuznetsov #:

Na minha opinião, isso tem a ver com o desenvolvimento atual da MQL. Uma tentativa de colocar tudo de uma vez em vez de integrações

+

 
Maxim Kuznetsov #:

Na minha opinião, isso tem a ver com o desenvolvimento atual da MQL. Uma tentativa de colocar tudo de uma vez em vez de integrações

Os caminhos para as integrações sempre estiveram abertos:

  • DLLs nativas
  • DLL .NET
  • HTTP/HTTPS
  • Sockets brutos
  • Arquivos/Pipes
  • SQLite
  • Biblioteca Python


Mas são as integrações de linguagem nativa que possibilitam a criação de aplicativos completos.

Quando se trata de ML, trabalhamos e implementamos vetores, matrizes e operações sobre eles como base para o aprendizado de máquina:

  • vetores, matrizes e operações com eles como base para o aprendizado de máquina
  • integração com Python, incluindo o lançamento de programas Python no terminal como scripts comuns
  • uso de modelos ONNX nativos, o que abre uma enorme porta para a aplicação prática de neuromodelos

Conseguimos criar soluções completas e rápidas.

As palavras sobre "tentar se esmerar" indicam apenas uma atitude negativa sem justificativa racional. Especialmente porque a disponibilidade de possibilidades não limita o escritor de forma alguma.