Discussão do artigo "Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 04): Análise discriminante linear"

 

Novo artigo Funcionalidades do assistente MQL5 que você precisa conhecer (Parte 04): Análise discriminante linear foi publicado:

O trader moderno está quase sempre à procura de novas ideias. Para isso, tenta novas estratégias, modifica e descarta aquelas que não funcionam. Nesta série de artigos, tentarei provar que o assistente MQL5 é a verdadeira espinha dorsal de um trader moderno.

O LDA é muito semelhante ao PCA. Às vezes surge a dúvida de se faz sentido realizar o PCA seguido da regularização do LDA (para evitar o ajuste da curva). Este é um tema amplo e pode ser abordado em outro artigo.

A diferença crucial entre os métodos de redução 2D é que o PCA tenta encontrar eixos com variância máxima para todo o conjunto de dados, com a suposição de que quanto mais dispersos os dados, mais separáveis eles são, enquanto o LDA tenta encontrar os eixos que realmente separam os dados com base na classificação.

lda

A figura acima mostra claramente que o PCA nos dará LD2, enquanto o LDA nos dará LD1. Isso torna a principal diferença (e, portanto, a vantagem do LDA) entre PCA e LDA absolutamente óbvia: só porque uma função tem alta dispersão não significa que ela será útil para previsão de classes.

Autor: Stephen Njuki

 

Oi Stephan,

Ótimo artigo e ótimo conteúdo! Também gostei de estudar seus artigos anteriores.


No momento, estou convertendo meu EA mq4 para mq5 e gostaria de incluir esse conteúdo na conversão para aprimorar os sinais, o stoploss e o gerenciamento de dinheiro. Como você não incluiu um EA, é possível postar um que possa ser usado como exemplo de aprendizado para estudar a aplicação das técnicas de DA?


Aguardo ansiosamente seus próximos artigos.

Abraços, CapeCoddah

 

Muito bom!!!


Eu o adicionei a um Expert e recebi esta mensagem ao compilar.


'operator[]' - variável constante não pode ser passada como referência

1.

for(int v=0;v<__S_VARS;v++)

{

_xy[p].Set(v, Data(Index+p+v+1));

2.

_xy[p].Set(__S_VARS,Data(Index+p,false));


3.

for(int v=0;v<__S_VARS;v++)

{

_z[0].Set(v,Data(Index));