English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
preview
Ciência de Dados e Aprendizado de Máquina (Parte 04): Previsão de um crash no mercado de ações

Ciência de Dados e Aprendizado de Máquina (Parte 04): Previsão de um crash no mercado de ações

MetaTrader 5Negociação | 14 setembro 2022, 09:16
675 0
Omega J Msigwa
Omega J Msigwa

Introdução

Na parte 02 desta série de artigos nós criamos um modelo logístico simples baseado nos dados do Titanic, hoje nós vamos construir um modelo logístico que pode nos ajudar a prever um crash do mercado

Neste artigo, nós vamos fazer uma aplicação útil de nossos modelos logísticos fazendo um modelo preditivo do crash do mercado de ações, para testar o nosso modelo, nós vamos usar os dados de teste do crash do mercado de ações atual, acho que isso será relevante para todos nós.

imagem do artigo do crash do mercado de ações


Crash do mercado de ações


Um crash do mercado de ações é uma queda acentuada e rápida no valor total do mercado, com os preços geralmente caindo mais de 10% em poucos dias, exemplos famosos de um grande crash do mercado de ações é a Segunda-feira negra de 1987 e a bolha do mercado imobiliário de 2008. Um crash é geralmente atribuível ao estouro de uma bolha de preços e é devido a uma venda maciça que ocorre quando a maioria dos participantes do mercado de ações tenta vender seus ativos ao mesmo tempo.

Antes de nos aprofundarmos nisso, eu quero dar um aviso sobre isso:

Este não é um conselho financeiro ou de negociação. Espero que você acredite que eu não sou o Sr. Buffet ou Charlie Munger, ou um investidor profissional do mercado de ações, eu sou apenas um cientista de dados encontrando uma maneira de relacionar os modelos científicos à negociação, não leve as coisas a sério neste artigo como a maioria desses pontos de vista foram coletados on-line e de várias fontes confiáveis com suas referências no final do artigo faça sua pesquisa antes de decidir usar qualquer uma das abordagens discutidas neste artigo para a tomada de decisões de negociação

Agora que nós tiramos isso do caminho, vamos seguir em frente.

Em primeiro lugar, nós vamos ver os fatores que afetam os preços das ações, uma vez que nós entendemos esses fatores, nós teremos por onde começar, pois esses fatores podem ser usados como nossos dados (variáveis independentes) para o nosso modelo logístico.


Fatores que afetam os preços das ações 


há muitos fatores que afetam o mercado de ações, a seguir temos alguns. Lembre-se de que nunca houve um indicador claro de como os mercados se comportam da maneira como se comportam, então eu usarei os seguintes fatores:

  1. Oferta e Demanda
  2. Fatores relacionados à empresa
  3. Taxa de juros
  4. Eventos atuais
  5. Inflação 

01: Oferta e Demanda


Existem muitos fatores que afetam o mercado de ações, mas se você tirar tudo o que está do lado de fora e olhar para o fator básico, é simples, oferta e demanda, um desequilíbrio entre a oferta e demanda aumentará e diminuirá o preço da ação

Se houver uma escassez repentina de maçãs, mais e mais pessoas farão fila para comprá-las, e o preço das maçãs disparará imediatamente.

da mesma forma, se a empresa está indo bem e todos querem comprar as ações da mesma empresa, haverá uma escassez de ações levando à disparada dos seus preços, e o oposto é verdadeiro, se houver muitas ações, mas ninguém quer comprá-las, o preço das ações cairá.

É impossível (eu poderia dizer) para obtermos todos os dados de oferta e demanda que nós podemos usar em nosso modelo, então vamos deixar esse fator para trás em nosso conjunto de dados, mas eu acredito que qualquer pessoa que possa obter esses dados com precisão está um passo mais próximo de construir o santo graal


02: Fatores relacionados à empresa


Qualquer coisa que aconteça dentro da empresa afetará diretamente o preço das ações, se a empresa estiver em alta, com lançamentos de produtos bem-sucedidos, aumento da receita, dívida reduzida e mais influxo de investidores, o preço de uma empresa aumentará porque todos vão querer comprar as ações dessa empresa que está indo de um pico ao outro

No entanto, se uma empresa está registrando perdas, tendo falhas de produtos e aumento da dívida, a maioria dos acionistas irá despejar as ações da empresa, reduzindo assim o preço delas.

Um bom exemplo para deixar esse ponto claro é a Netflix e a Apple,

Vimos a Netflix perder mais de 200.000 assinantes de serviço nos primeiros 3 meses de 2022, devido ao aumento das sanções de preços para alguns dos membros e muitas outras situações que ocorreram dentro da empresa que levaram diretamente o preço das ações da Netflix a cair

A Apple, por outro lado, é uma empresa de sucesso há muito tempo por conta dos lançamentos de produtos bem-sucedidos, boa liderança e outras situações positivas dentro da empresa que levaram a uma alta do preço da ação nos últimos anos

Para determinar a saúde da empresa, nós usaremos uma métrica chamada de índice preço/lucro (P/L)

Índice preço/lucro

Índice preço/lucro avalia uma empresa que mede o preço atual da ação em relação ao lucro por ação (LPA). O índice P/L pode ser usado como um indicador do quão saudável está uma empresa. Aqui está a aparência dos gráficos com base nos preços das ações e no índice P/L para a Apple e Netflix

APPLE:

gráfico do índice P/L das ações da apple

fonte de dados: macrotrends.net


NETFLIX

Índice P/L da Netflix

fonte de dados:macrotrends.net

Parece que o índice P/L é calculado trimestralmente em um ano, então, neste caso, parece que isso era tudo o que as fontes gratuitas de dados podiam oferecer, acho que há mais fontes pagas, nós podemos considerar que nossos dados têm algumas falhas, pois nós precisamos ter o mesmo número de linhas em todas as colunas do nosso conjunto de dados para que nossos cálculos em nossos modelos funcionem de forma eficaz, esses são os dados para a APPLE:

buracos no índice P/L da Apple

se os dados forem calculados a cada trimestre de um ano, no restante do trimestre nós usaremos os mesmos dados que foram pré-calculados até o próximo trimestre, então, neste caso, nós vamos duplicar os dados:

dados duplicados para o índice P/L da Apple

As mesmas ações serão realizadas para a NETFLIX.


03: Taxas de Juros


Os acontecimentos no banco Federal Reserve afetam diretamente os preços das ações, os bancos centrais continuam mudando as taxas em intervalos regulares para estabilizar a economia. Naturalmente, uma taxa de juros mais alta significa que as empresas terão que pagar mais pelos empréstimos, resultando em lucros menores. fazendo um lucro maior, neste caso, os preços das ações vão subir

> O Fed está recentemente aumentando as taxas para destruir a demanda e forçar as empresas a diminuir seus preços e, finalmente, ajudar a inflação a cair.

O gráfico da taxa de juros do fed de 2010 até hoje é assim:

taxa dos fundos federais

04: Eventos Atuais


os eventos em curso pelo país ou pelo mundo, em geral, podem ter um impacto enorme no mercado de ações também, ninguém pode negar que a pandemia do covid-19 teve um efeito negativo muito forte no mercado de ações no final de 2019 e 2020, e os motins pela igualdade nos EUA no mesmo ano, 

outros eventos que afetam o preço do mercado de ações incluem guerras e ataques terroristas 

Todos esses eventos devem fazer com que os preços das ações caiam drasticamente e afetem a volatilidade do mercado

Não vou coletar nenhum dado desse fator, pois exigiria muito trabalho e mais modelos para treinar para esses eventos, isso está além do escopo do que já abordamos nesta série de artigos.


05: Inflação


A inflação é o declínio do poder de compra de uma determinada moeda ao longo do tempo. Uma estimativa quantitativa da taxa em que ocorre o declínio do poder de compra pode ser refletida no aumento do nível médio dos preços de uma cesta de bens e serviços selecionados em uma economia durante um determinado período de tempo. O aumento do nível geral de preços, muitas vezes expresso em porcentagem, significa que uma unidade de moeda compra menos do que nos períodos anteriores.

Leia mais sobre a inflação aqui https://www.investopedia.com/terms/i/inflation.asp

Então, basicamente, existem dois tipos de inflação, o Core CPI e o CPI:

  • Core CPI - é tudo menos os preços da energia e dos alimentos
  • CPI - é tudo dentro da economia; energia, preços dos alimentos, educação, entretenimento, etc. Tudo o que existe no dia a dia das pessoas de uma economia específica

Como a inflação corrói o valor de um dólar ganho, pode ser difícil para o mercado avaliar o valor atual das empresas que compõem os índices de mercado. Além disso, o aumento dos preços de materiais, estoque e mão de obra podem afetar os lucros à medida que as empresas se ajustam. Como resultado, os preços das ações podem flutuar, e isso causa volatilidade.

A boa notícia é que, embora o aperto do Fed possa impactar negativamente os investimentos em renda fixa, as ações historicamente se saíram bem durante esses ciclos.

Vamos olhar para o gráfico do CPI dos EUA desde 1970.

  Imagem do gráfico da índice CPI dos EUA


Agora, vamos coletar todos os dados necessários e armazená-los em um arquivo CSV.

Começando com a APPLE:

Coletando os dados


Os dados que vamos coletar para o nosso arquivo CSV são Core CPI, CPI, taxa de juros do Fed, LPA e P/L. Eu tenho todos esses dados disponíveis

Falta apenas um dado em nosso conjunto de dados, e essa é nossa variável dependente, mas temos apenas os valores brutos dos preços das ações. Vamos criar um script que possa nos dizer se um mês específico teve ou não um crash na bolsa

dentro do CrashClassifyScript.mq5

void DetectCrash(double &prices[], int& out_binary[])
 {
     double prev_high = prices[0];
     
     ArrayResize(out_binary,ArraySize(prices)-1); //we reduce the size by one since we ignore the current we predict the previous one
     for (int i=1; i<ArraySize(prices); i++)
        {
           int prev = i-1;
            if (prices[i] >= prev_high)
                prev_high = prices[i]; //grab the highest price 
                
            double percent_crash = ((prev_high - prices[i]) / prev_high) * 100.0; //convert crash to percentage
            printf("crash percentage %.2f high price %.4f curr price %.4f ", percent_crash,prev_high,prices[i]);  
          
            //based on the definition of a crash; markets has to fall more than 10% percent
            if (percent_crash > 10)
                out_binary[prev] = 0; //downtrend (crash)
            else
                out_binary[prev] = 1; //uptrend (no crash )
        }
 }

se você prestar atenção no primeiro prev_high você notará que eu defini o valor do preço anterior porque eu copiei os valores da Apple de 1º de dezembro de 2009, em vez de 1º de janeiro de 2010, eu queria ter um espaço para detectar a falha no primeiro cálculo e adicionando esse mês, tornou-se possível, mas ignoramos esse mês em nosso conjunto de dados de saída porque não precisamos mais dele, é por isso que o índice prev dentro de out_binary[prev] é basicamente um i-1, porque fazemos um loop começando no índice igual a 1

aqui está a saída quando imprimimos a saída binária da matriz

 CrashClassifyScript  DATE 1/1/2010 TREND 1

 CrashClassifyScript  DATE 2/1/2010 TREND 1

.........

 CrashClassifyScript  DATE 4/1/2022 TREND 0

 CrashClassifyScript  DATE 5/1/2022 TREND 0

Ao adicionamos todas as colunas de dados para um arquivo csv em excel, resultará em um arquivo csv parecido com este

Visão geral do conjunto de dados da Apple

ÓTIMO, agora está tudo pronto, vamos começar a trabalhar com mais código.

Todos nós sabemos que nos bastidores do nosso modelo logístico, existe um algoritmo de regressão linear e antes de podermos usar qualquer dado em um modelo linear nós temos que verificar se ele se correlaciona com a sua variável independente. Vamos, verificá-lo chamando o método corrcoeff que eu adicionei à nossa Biblioteca LinearRegression, criada no artigo anterior.

dentro do TestScript.mq5

m_lr = new CMatrixRegression;
      
Print("Matrix multiple regression");
m_lr.Init(8,"2,4,5,6,7",file_name,",",0.7);
      
m_lr.corrcoeff();
m_lr.MultipleMatLinearRegMain();    
delete m_lr;       

A saída certamente será:

Matriz de regressão múltipla

TestScript  Init, number of X columns chosen =5

TestScript  "2" "4" "5" "6" "7"

TestScript  All data Array Size 740 consuming 52 bytes of memory

TestScript  Correlation Coefficients

TestScript  Independent Var Vs Trend = 0.225

TestScript  Independent Var Vs CPI = -0.079

TestScript  Independent Var Vs Core CPI  = -0.460

TestScript  Independent Var Vs EPS($) = -0.743

TestScript  Independent Var Vs   PE Ratio = -0.215

Parece que todos os dados que eu acabei de coletar em lugares diferentes não se correlacionam com o preço da ação, apesar de muitas pessoas online gritarem que esses são os fatores que afetam o mercado de ações, entendo que as fontes deram um aviso inicialmente que não há um indicador claro de como os mercados fazem o que fazem, mas os números para um modelo linear mostrar uma história muito diferente, por exemplo, o CPI versus o preço da Apple, eu esperava ter uma correlação negativa muito forte aqui, mas parece que a correlação é muito fraca para ser usada em regressão linear, apenas o Core CPI está mostrando uma correlação negativa promissora de cerca de -0,46. O mais forte de todos é o LPA (Lucro por ação) mostrando a correlação negativa de cerca de 0,743 que pode ser convertida em -74,3%

Não vamos parar por aí, é super importante visualizar os dados em python e verificar se está faltando algo nos números ou em nossos cálculos:

visualização do pair plot do seaborn

saída

Análise da ação sns apple

Acho que até este ponto, está muito claro que não há uma relação muito forte entre a maioria dos dados que coletamos, vamos filtrar os nossos dados,

Nós vamos usar apenas as três variáveis independentes para construir o nosso modelo que são, 

  • Core CPI (corresponde cerca de -46%, próximo da metade)
  • LPA (corresponde cerca de -74,2%, melhor correlacionado do que todos os dados)
  • Por último, a taxa de juros do FED (corresponde a cerca de -33%, a menor correlacionada. Eu não recomendaria isso quando você está construindo um modelo sério)

Ok, agora vamos inicializar a nossa biblioteca apenas com as colunas que queremos:

log_reg.Init(file_name,delimiter,2,"3,5,6",0.7);

Para aqueles que perderam a funcionalidade básica da regressão logística devem consultar este Artigo.

Melhorias adicionais na biblioteca 

//These should be called before the Init 
                           
void    FixMissingValues(string columns);
void    LabelEncoder(string columns, string members);

os modelos logísticos são sensíveis a valores ausentes e por ser um modelo classificador de aprendizado de máquina, ele trata os dados zerados que podem indicar que os dados estão faltando como uma classe de classificação, ele também pode tratar os valores nan e strings como zeros dependendo de como lemos os arquivos em MQL5, por isso eu fiz algumas melhorias na biblioteca,

A função para substituir os valores ausentes pela média e a função para codificar as strings em rótulos, 

essas funções devem ser chamadas antes da função Init

Agora nossa biblioteca de logística herda, os componentes de nossa biblioteca MatrixRegression que criamos no Artigo anterior

class CLogisticRegression: protected CMatrixRegression

vamos para a parte boa e ver o quão bom é o nosso modelo,

Chamando a biblioteca de regressão logística

A saída será 

  Confusion Matrix 
   [ 0  13 ]
    [  0  31  ] 
  Tested model accuracy =0.7045

A precisão do nosso modelo é de 70,45% no conjunto de dados de teste 😲 Estou pasmo neste momento

Eu pensei que por causa da desvantagem dos dados que eu tinha anteriormente eu não conseguiria atingir nem a marca de 50%, eu pensei que deveria haver um erro em algum momento até tentar a mesma coisa em python apenas para obter o mesmo resultado

precisão do modelo testado em python

B  A  M

tenha em mente que nossa variável dependente é a coluna Trend que nós coletamos com o nosso script para detectar a falha, no início deste artigo, a coluna price foi usada apenas para mostrar os coeficientes de correlações para os nossos modelos lineares, porque não podemos usar os valores binários de 0 e 1 que indicam a tendência para baixo e para cima, respectivamente. Para encontrar as correlações, é necessário utilizar os preços reais da ação

Agora, vamos mudar o foco para a NETFLIX

Aqui está como os números do coeficiente de correlação se parecem para este irmão aqui,

        Correlation Coefficients
         Independent Var Vs Trend = 0.071
         Independent Var Vs  rate (FEDs rate) = 0.310
         Independent Var Vs CPI = 0.509
         Independent Var Vs Core CPI  = 0.607
         Independent Var Vs  EPS = 0.917
         Independent Var Vs PE Ratio = -0.213

Parece que a maioria dos fatores que nós discutimos abaixo afeta a NETFLIX positivamente apenas o P/L que foi negativa, o fator mais forte foi o lucro por ação (LPA) com correlação de cerca de 92% com o preço das ações, os outros foram o core CPI e CPI, então para a NETFLIX nós vamos usar apenas os três dados para construir o nosso modelo:

  • LPA
  • Core CPI 
  • e CPI

Vamos visualizar novamente os nossos dados.

Gráfico de contagem dos dados da Netflix

Parece muito melhor no NETFLIX do que na Apple da última vez,

Resumindo,

   log_reg = new CLogisticRegression();
    
    Print("NETFLIX"); 
    
    file_name =  "Netflix Dataset.csv";
    
    log_reg.Init(file_name,delimiter,2,"4,5,6",0.7);
    log_reg.LogisticRegressionMain(accuracy);
    
    printf("Tested model accuracy =%.4f",accuracy);
    delete log_reg;

a saída 

FN      0       07:54:45.106    TestScript      NETFLIX
PN      0       07:54:45.108    TestScript      ==== TRAINED LINEAR REGRESSION MODEL COEFFICIENTS ====
ED      0       07:54:45.108    TestScript      [ 
RO      0       07:54:45.108    TestScript       1.43120 -0.05632 -0.54159  0.48957
EE      0       07:54:45.108    TestScript      ] 
CQ      0       07:54:45.108    TestScript      columns = 4 rows = 1
PH      0       07:54:45.108    TestScript      ========= LINEAR REGRESSION MODEL TESTING STARTED =========
QP      0       07:54:45.108    TestScript      Tested Linear Model R square is = -0.35263665822405277
GR      0       07:54:45.108    TestScript      Confusion Matrix 
EE      0       07:54:45.108    TestScript       [ 0  18 ]
HN      0       07:54:45.108    TestScript        [  0  26  ] 
MJ      0       07:54:45.108    TestScript      Tested model accuracy =0.5909

Apesar de ter dados com forte correlação linear com o preço das ações, o modelo da NETFLIX tem uma precisão menor de cerca de 60% em comparação com a precisão do modelo da Apple, que é de 70%. Você pode brincar com o restante do conjunto de dados por conta própria e ver como o modelo pode ficar


Testes do mercado de ações em tempo real


para poder testar no mercado em tempo real dentro do nosso Expert Advisor nós precisamos fazer algumas modificações em nossa função LogisticRegression principal, precisamos fazer com que a função armazene os valores previstos com as suas respectivas datas em um arquivo CSV que usaremos na estratégia do testador para obter os sinais para onde o mercado irá de acordo com o nosso modelo.

Aqui está como nós vamos reunir os dados e armazená-los em um arquivo csv:

WriteToCSV(TestPredicted,dates,"Predicted "+m_filename,m_delimiter);

Lembre-se, nós estamos apenas coletando os resultados do conjunto de dados de teste.

Aqui está uma breve visão de como os dados são armazenados em um arquivo csv:

NETFLIX

Predicted, date_time
1,8/1/2018
1,9/1/2018
1,10/1/2018
1,11/1/2018
1,12/1/2018
1,1/1/2019

APPLE 

Predicted, date_time
1,9/1/2018
1,10/1/2018
1,11/1/2018
1,12/1/2018
1,1/1/2019
1,2/1/2019      

Se você prestou atenção na parte da matriz de confusão, você notará que o nosso modelo é um bom preditor da tendência ascendente, O TP (verdadeiro positivo teve um grande número de todas as linhas da matriz na Matrix).

EA que testa o preço das ações em tempo real

O primeiro passo para criar o nosso EA é coletar os dados do nosso arquivo CSV, mas antes disso, nós queremos que o nosso testador de estratégia saiba que nós usaremos esse arquivo durante o teste.

#property tester_file "Predicted Apple Dataset.csv"

Agora, apenas uma breve visão geral das funções que eu codifiquei e as chamei na função OnInit

 GetColumnDatatoArray(1,Trend);
 GetColumnDatatoArray(2,dates);

Essas funções são muito comuns, nós as usamos muito em nossa biblioteca, basicamente nós coletamos os dados da primeira coluna e os armazenamos na matriz Trend[], o mesmo processo se aplica para a matriz dates[].

A próxima coisa importante é converter, a hora que nós reunimos de um arquivo csv para um formato de hora padrão que pode ser entendido em MQL5

ConvertTimeToStandard();

Segue abaixo o que tem dentro dessa função:

void ConvertTimeToStandard()
 {
// A one time attempt to convert the date to yy.mm.dd
    
    ArrayResize(date_datetime,ArraySize(dates));
    for (int i=0; i<ArraySize(dates); i++)
       {
         StringReplace(dates[i],"/","."); //replace comma with period in each and every date
         //Print(dates[i]);
         string mm_dd_yy[];
         
         ushort sep = StringGetCharacter(".",0);
         StringSplit(dates[i],sep,mm_dd_yy); //separate month, day and year 
         
         //Print("mm dd yy date format");
         //ArrayPrint(mm_dd_yy);
         
         string year = mm_dd_yy[2];
         string  day = mm_dd_yy[1];
         string month = mm_dd_yy[0];
                
         dates[i] = year+"."+month+"."+day; //store to a yy.mm.dd format
         
         date_datetime[i] = StringToTime(dates[i]); //lastly convert the string datetime to an actual date and time
       }  
 }

Essas são as funções que eu acho que vale a pena explicar, o que foi feito na função Init().

A próxima coisa é testar as previsões do modelo na função Ontick, aqui está o pilar do nosso Expert Advisor:

    datetime today[1];
    int trend_signal = -1; //1 is buy signal 0 is sell signal
    
    CopyTime(Symbol(),PERIOD_D1,0,1,today);
    
    if (isNewBar())
     for (int i=0; i<ArraySize(date_datetime); i++)
      {
          if (today[0] == date_datetime[i]) //train in that specific day only
              {
                 
                  if ((int)Trend[i] == 1)
                    trend_signal = 1;
                  else 
                     trend_signal = 0; 
                     
                  // close all the existing positions since we are coming up with new data signals    
                  ClosePosByType(POSITION_TYPE_BUY);
                  ClosePosByType(POSITION_TYPE_SELL);
                  break;
              }
          
          if (MQLInfoInteger(MQL_TESTER) && today[0] > date_datetime[ArrayMaximum(date_datetime)])
             {
                 Print("we've run out of the testing data, Tester will be cancelled");
                 ExpertRemove();
             }
     } 
     
//--- Time to trade

      MqlTick tick;
      SymbolInfoTick(Symbol(),tick);
      double ask = tick.ask , bid = tick.bid;

//---

      if (trend_signal == 1 && PositionCounter(POSITION_TYPE_BUY)<1)
        {
           m_trade.Buy(Lots,Symbol(),ask,0,0," Buy trade ");
           ClosePosByType(POSITION_TYPE_SELL); //if the model predicts a bullish market close all sell trades if available
        }
        
      if (trend_signal == 0 && PositionCounter(POSITION_TYPE_SELL)<1)
        {
            m_trade.Sell(Lots,Symbol(),bid,0,0,"Sell trade");
            ClosePosByType(POSITION_TYPE_BUY); //vice versa if the model predicts bear market
        }
  }

O principal motivo para eu ter escolhido treinar o modelo naquele dia específico e no manipulador de eventos NewBar é para reduzir o custo de testar a nossa aplicação, para reduzir ainda mais esse custo, eu também codifiquei a condição de que o testador de estratégia deve ser interrompido assim que ficarmos sem o conjunto de dados de teste

É isso, veja o código completo no link abaixo, agora é hora de testar o modelo no testador de estratégia

Resultados do teste da APPLE

Relatório do testador da Apple

Gráfico

Gráfico do testador da Apple

Netflix por outro lado... relatório do testador

Relatório do testador da Netflix

Gráfico do testador

Gráfico do testador da Netflix

Ótimo, como você pode ver o modelo da Apple teve uma precisão de cerca de 70%, e fez um bom modelo preditivo até agora com um bom gráfico no testador de estratégia em comparação com a NETFLIX


Conclusão

A coisa boa sobre os modelos logísticos é que eles são fáceis de construir e treinar, mas fazem um bom trabalho na classificação de nossos dados, embora encontrar os dados a serem encontrados em nosso modelo seja algo que não deve ser dado como certo, pois está entre os passos mais cruciais que, uma vez equivocados, podem levar a um modelo ineficiente.

Você ainda pode fazer mais melhorias em nossa biblioteca e coletar os dados novamente porque eu ainda acredito que a maneira como eu coletei os dados e os classifiquei dentro do script Crashclassify não é uma maneira eficaz de observar o crash, de qualquer maneira, isso é para leitura.

Repositório do Github para este artigo com o link aqui > https://github.com/MegaJoctan/LogisticRegression-MQL5-and-python.



Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/10983

Arquivos anexados |
Files.zip (26.58 KB)
Desenvolvendo um EA de negociação do zero (Parte 31): Em direção ao futuro (IV) Desenvolvendo um EA de negociação do zero (Parte 31): Em direção ao futuro (IV)
Vamos continuar a retirar coisas de dentro do EA. Mas no entanto este será o último artigo desta serie. A última coisa que será de fato removida, nesta serie de artigos, é o sistema de som. Talvez isto venha a lhe dar um nó no cérebro, caso você não tenha acompanhado estes artigos.
Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 1): Análise de regressão Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 1): Análise de regressão
O trader moderno está quase sempre procurando novas ideias, consciente ou inconscientemente. Ele está constantemente tentando novas estratégias, modificando-as e descartando aquelas que não funcionam. Este processo de pesquisa é demorado e propenso a erros. Nesta série de artigos, tentarei provar que o assistente MQL5 é um verdadeiro suporte para qualquer operador. Graças ao assistente, o trader economiza tempo ao implementar suas ideias. Também reduz a probabilidade de erros que ocorrem ao duplicar o código. Assim, em vez de perder tempo com codificação, os operadores colocam em prática sua filosofia de negociação.
Redes neurais de maneira fácil (Parte 18): Regras de associação Redes neurais de maneira fácil (Parte 18): Regras de associação
Como continuação desta série, gostaria de apresentar a vocês outro tipo de tarefa dos métodos de aprendizado não supervisionado, em particular a busca de regras de associação. Este tipo de tarefa foi usado pela primeira vez no varejo para analisar cestas de compras. Neste artigo falaremos sobre as possibilidades de utilização de tais algoritmos no trading.
Desenvolvendo um EA de negociação do zero (Parte 30): CHART TRADE agora como indicador ?! Desenvolvendo um EA de negociação do zero (Parte 30): CHART TRADE agora como indicador ?!
Trazendo o Chart Trade de volta a ativa ... mas agora ele será um indicador e poderá ou não estar presente no gráfico.