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

 
Sergey Golubev #:

Não é necessário publicar seus feeds do Telegram aqui.

Portanto, já é hora de bani-los.
Você tem um negócio aqui e está irritado com o fato de as pessoas escreverem coisas erradas em vez de se esforçarem para desenvolver MO no ambiente MQL5.
 
Evgeny Dyuka #:
Portanto, já é hora de bani-los
Você tem um negócio aqui e está irritado com o fato de as pessoas escreverem coisas erradas em vez de se esforçarem para desenvolver o MO no ambiente MQL5.
Você - por quê?
Eu não estava discutindo com você. Não descarregue em si mesmo.

Excluirei essa postagem (e minha postagem acima) mais tarde.
 
Evgeny Dyuka #:

Se me permite, uma pergunta semelhante.
(não se trata de seu negócio, mas especificamente do tópico do MoD)

Especificamente para o MO é feito:

  • Plataforma de negociação Metatrader 5
  • Linguagem MQL5
  • matemática matricial em MQL5
  • integração do Python no terminal, incluindo a biblioteca de comunicação
  • Integração de modelos ONNX
  • OpenCL/DirectX para uso de GPU
  • rede em nuvem, incluindo testador
  • www.mql5.com ecossistema em 11 idiomas

Isso é feito para o público e é usado maciçamente em todo o mundo.

Quer comparar isso com alguns scripts copiados (como é comum com os adeptos do aprendizado de máquina)?

Seja racional e não se atire contra aqueles que fazem o trabalho e o divulgam ao público.

 

Gostaria de acrescentar meus cinco copeques e separar as moscas das costeletas, que, por mais qualitativas que sejam, não resolvem os problemas das moscas.

Neste tópico, uma certa parte dos participantes tem um firme entendimento de que o principal problema dos mercados financeiros é sua não-estacionariedade, e o problema da não-estacionariedade não tem uma solução final no momento. Toda essa conversa sobre a duração do teste, o tempo de negociação bem-sucedida - tudo isso é vazio e tem sido repetidamente refutado pela prática, arruinando os ganhadores do Prêmio Nobel que não reconheceram o problema da não-estacionariedade. A existência do problema da não estacionariedade é perfeitamente confirmada pelo mercado de sinais neste site: todos os sinais morreram, apenas alguns mais cedo e outros muito mais tarde.

Podemos distinguir duas abordagens para resolver o problema da não estacionariedade dos mercados financeiros:

1. Modelagem da não-estacionariedade, que se tenta fazer dentro da estrutura dos modelos GARCH, dos quais já existem mais de cem.

2. Tentativa de encontrar padrões no fluxo de entrada não estacionário, na esperança de que esses padrões se repitam no futuro. Isso é tentado na estrutura do chamado "aprendizado de máquina". Por exemplo, o modelo RandomForest encontra um mínimo de 50 padrões, sendo que 150 padrões esgotam qualquer período de tempo. Mas a próxima etapa pode alterar o conjunto de padrões, e são necessários esforços especiais para preparar os dados de entrada de modo que esses padrões, se mudarem, não mudem muito.

Infelizmente, o tópico desceu para a discussão dos modelos em si, embora, em minha experiência, não haja nenhum problema em usar modelos (o shell do Caret inclui até 200 modelos para qualquer gosto), mas há um problema em preparar os dados de entrada para esses modelos. Não vamos nos esquecer do principal slogan da estatística: "Garbage in - rubbish out".

 
СанСаныч Фоменко #:

Para você, estou anexando novamente um texto abrangente sobre fórmulas em um arquivo PDF. Isso inclui "dependências e fontes".

E sobre as nuances dos cálculos, eu não faço isso, porque sei com certeza que as fórmulas NÃO têm nada a ver com programação, é um problema independente, que é resolvido por outras pessoas com outro treinamento e em outros círculos científicos.

Portanto, leia o PDF.

Obrigado, vou dar uma olhada.

Até agora, encontrei uma resposta direta à minha pergunta aqui - https://blog.paperspace.com/gradient-boosting-for-classification/

Gradient Boosting for Classification | Paperspace Blog
Gradient Boosting for Classification | Paperspace Blog
  • blog.paperspace.com
Machine learning algorithms require more than just fitting models and making predictions to improve accuracy. Most winning models in the industry or in competitions have been using Ensemble Techniques or Feature Engineering to perform better. Ensemble techniques in particular have gained popularity because of their ease of use compared to...
 
A referência da estrutura de dados para ONNX não parece ser verdadeira. MT versão 3602.
Документация по MQL5: ONNX модели / Структуры данных
Документация по MQL5: ONNX модели / Структуры данных
  • www.mql5.com
Структуры данных - ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
E não há nada sobre chaves para OnnxRun() na ajuda.
Документация по MQL5: ONNX модели / OnnxRun
Документация по MQL5: ONNX модели / OnnxRun
  • www.mql5.com
OnnxRun - ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Na ajuda do ONNX, não há informações sobre as funções OnnxSetInputShape() e OnnxSetOutputShape(). Não está muito claro o que elas devem fazer.
 
Aleksey Nikolayev #:
Na ajuda do ONNX, não há informações sobre as funções OnnxSetInputShape() e OnnxSetOutputShape(). Não está muito claro o que elas devem fazer.


Esses métodos definem a dimensionalidade dos dados de entrada e saída do modelo. Hoje, nós os adicionaremos à ajuda

//+------------------------------------------------------------------+
//|                                        ONNX.Price.Prediction.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

const long  ExtOutputShape[] = {1,1};
const long  ExtInputShape [] = {1,10,4};
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
int OnStart(void)
  {
   matrix rates;
//--- получаем 10 баров
   if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC,2,10))
      return(-1);
//--- на вход модели должен подаваться набор вертикальных векторов OHLC
   matrix x_norm=rates.Transpose();
   vector m=x_norm.Mean(0);               // нормируем цены
   vector s=x_norm.Std(0);
   matrix mm(10,4);
   matrix ms(10,4);

   for(int i=0; i<10; i++)
     {
      mm.Row(m,i);
      ms.Row(s,i);
     }

   x_norm-=mm;
   x_norm/=ms;
//--- создаём модель
   long handle=OnnxCreateFromBuffer(model,ONNX_DEBUG_LOGS);

   if(!OnnxSetInputShape(handle,0,ExtInputShape))
     {
      Print("failed, OnnxSetInputShape error ",GetLastError());
      OnnxRelease(handle);
      return(-1);
     }

   if(!OnnxSetOutputShape(handle,0,ExtOutputShape))
     {
      Print("failed, OnnxSetOutputShape error ",GetLastError());
      OnnxRelease(handle);
      return(-1);
     }
//--- запускаем модель
   matrixf x_normf;
   vectorf y_norm(1);

   x_normf.Assign(x_norm);
   if(!OnnxRun(handle,ONNX_DEBUG_LOGS | ONNX_NO_CONVERSION,x_normf,y_norm))
     {
      Print("failed, OnnxRun error ",GetLastError());
      OnnxRelease(handle);
      return(-1);
     }

   Print(y_norm);
//--- обратно разнормируем цену из выходного значения
   double y_pred=y_norm[0]*s[3]+m[3];

   Print("predicted ",y_pred);
//--- завершили работу
   OnnxRelease(handle);
   return(0);
  }
//+------------------------------------------------------------------+
 
mytarmailS #:
O que você quer dizer com isso?
No meu computador, estou banido por 10 anos, mas no meu celular estou fora do banimento)))

Você provavelmente tem um "banimento por IP falso":

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Pergunta para a administração do site mql5.com

Sergey Golubev, 2022.12.16 17:22

Se você foi banido e pode fazer postagens aqui, trata-se de um "banimento de IP falso".
Você provavelmente tem um IP dinâmico e ele acidentalmente "caiu" no IP banido de alguém.
Quando eu "pego" esse tipo de banimento, simplesmente desligo meu computador, desligo o roteador, ligo o roteador e ligo meu computador.
Como resultado, meu IP muda (e eu também tenho um IP dinâmico) e a inscrição de cerca de 10 anos desaparece.

...

Razão: