Discussão do artigo "Superando as limitações do aprendizado de máquina (Parte 2): falta de reprodutibilidade"

 

Novo artigo Superando as limitações do aprendizado de máquina (Parte 2): falta de reprodutibilidade foi publicado:

O artigo examina por que os resultados de trading podem variar significativamente entre corretoras, mesmo usando a mesma estratégia e o mesmo símbolo financeiro, devido à precificação descentralizada e às divergências nos dados. Este artigo ajuda os desenvolvedores MQL5 a entender por que seus produtos podem receber avaliações mistas no MQL5 Marketplace e incentiva os desenvolvedores a adaptar suas abordagens a corretoras específicas para garantir resultados transparentes e reproduzíveis. Se amplamente adotada, essa pode se tornar uma prática recomendada importante e bastante especializada, capaz de beneficiar nossa comunidade.

Para esta discussão, escolhi aleatoriamente duas corretoras que uso pessoalmente para trading por conta própria. De acordo com as regras da nossa comunidade, que proíbem publicidade de corretoras, seus nomes foram removidos e substituídos por "Corretora A" e "Corretora B".

Usando a biblioteca Python para MetaTrader 5, solicitei às duas corretoras dados históricos diários do par EURUSD ao longo de quatro anos. Ao verificar os dados, percebi que os timestamps não coincidiam: os dados de uma corretora cobriam o período a partir de setembro de 2019, enquanto os dados da outra começavam apenas em agosto de 2020. Ainda assim, ambos os serviços retornaram exatamente 1460 linhas de dados diários, atendendo corretamente à nossa solicitação.

Dado o caráter descentralizado do setor de corretoras, é perfeitamente esperado que seus fusos horários operacionais possam ser diferentes. No entanto, são menos óbvias as consequências do horário de verão, dos feriados nacionais reconhecidos e de outras pequenas divergências que podem distorcer ainda mais o alinhamento dos timestamps.

Em seguida, calculamos o retorno de 10 dias do par EURUSD nas duas corretoras e descobrimos que as características numéricas do símbolo EURUSD não coincidiam. O retorno médio de 10 dias do par EURUSD na Corretora A foi de 0,000267, enquanto na Corretora B o retorno médio foi de -0,000352. Isso representa uma diferença de aproximadamente 232% no retorno esperado do mesmo ativo subjacente.

A situação se agrava pelo fato de que o retorno esperado da Corretora A parece estar associado a um risco 21% maior do que o retorno esperado da Corretora B. Chegamos a essa conclusão porque a diferença nos retornos entre as corretoras aumentou em 21%. 


Autor: Gamuchirai Zororo Ndawana

 
Devastador.
Muito obrigado pelo artigo.
 

Achei a tese principal do artigo muito interessante, especialmente a ideia de que um modelo de aprendizado de máquina pode se comportar de maneira bastante diferente dependendo do fluxo de dados fornecido por cada corretora.

No entanto, ao ler a análise, percebi uma questão metodológica importante que pode ter um impacto significativo nas conclusões.

Os dois conjuntos de dados históricos têm datas de início diferentes, mas são posteriormente combinados da seguinte forma:

pd.concat([A, B], axis=1)
Como ambos os DataFrames possuem índices inteiros consecutivos, o Pandas os alinha por índice, e não por carimbo de data/hora. Isso significa que muitas linhas de A e B podem, na verdade, corresponder a dias de negociação diferentes.

Por exemplo, se A começa em 2019 e B em 2020, a linha 0 em ambos os conjuntos de dados não representa o mesmo momento no tempo. Isso poderia afetar diretamente a correlação relatada, as diferenças nas médias e nas variâncias, bem como várias das comparações subsequentes entre as duas corretoras.

Acho que os dois conjuntos de dados deveriam primeiro ser sincronizados por “hora”, usando apenas carimbos de data e hora comuns, por exemplo, com uma “fusão” ou “junção” na coluna datetime, antes de se tirar conclusões dessas comparações.

A ideia principal do artigo parece válida e altamente relevante, mas, da forma como o experimento está concebido atualmente, não tenho certeza se os resultados apresentados a comprovam de maneira conclusiva.

Seria muito interessante ver como os resultados mudariam após repetir a análise com os dois conjuntos de dados devidamente alinhados no tempo. 😉
 
Juan Luis De Frutos Blanco #:
Devastador.
Muito obrigado pelo artigo.
Obrigado, Juan Blanco.

Fiquem ligados nas atualizações e nas futuras discussões que buscam implementar soluções para esse possível perigo.
 
Miguel Angel Vico Alba #:

Achei a tese principal do artigo muito interessante, especialmente a ideia de que um modelo de aprendizado de máquina pode se comportar de maneira bastante diferente, dependendo do feed de dados fornecido por cada corretora.

No entanto, ao ler a análise, percebi uma questão metodológica importante que pode ter um impacto significativo nas conclusões.

Os dois conjuntos de dados históricos têm datas de início diferentes, mas são posteriormente combinados usando:

Como ambos os DataFrames possuem índices inteiros consecutivos, o Pandas os alinha por índice, em vez de por carimbo de data/hora. Isso significa que muitas linhas de A e B podem, na verdade, corresponder a dias de negociação diferentes.

Por exemplo, se A começa em 2019 e B começa em 2020, a linha 0 em ambos os conjuntos de dados não representa o mesmo momento no tempo. Isso poderia afetar diretamente a correlação relatada, as diferenças nas médias e nas variâncias, bem como várias das comparações subsequentes entre as duas corretoras.

Acho que os dois conjuntos de dados deveriam primeiro ser sincronizados por “tempo”, utilizando apenas carimbos de data e hora comuns — por exemplo, com uma “fusão” ou “junção” na coluna datetime —, antes de se tirar conclusões dessas comparações.

A ideia principal do artigo parece válida e altamente relevante, mas, da forma como o experimento está concebido atualmente, não tenho certeza se os resultados apresentados a comprovam de maneira conclusiva.

Seria muito interessante ver como os resultados mudariam após repetir a análise com os dois conjuntos de dados devidamente alinhados no tempo. 😉
Adorei, adorei, adorei <3

Muito obrigado, Miguel Alba, por destacar essa omissão crítica. De fato, concordo com você: tal erro metodológico pode ter efeitos catastróficos em toda a análise. Com certeza revisarei o desenho experimental e publicarei uma análise corrigida do efeito causado por diferentes fontes de dados.

De fato, duas cabeças pensam melhor do que uma.