Discussão do artigo "Aplicação da Teoria dos Jogos de Nash com Filtragem HMM em Trading"

 

Novo artigo Aplicação da Teoria dos Jogos de Nash com Filtragem HMM em Trading foi publicado:

Este artigo explora a aplicação da teoria dos jogos de John Nash, especificamente o Equilíbrio de Nash, no mercado financeiro. Ele discute como os traders podem utilizar scripts em Python e MetaTrader 5 para identificar e explorar ineficiências do mercado utilizando os princípios de Nash. O artigo oferece um guia passo a passo sobre como implementar essas estratégias, incluindo o uso de Modelos Ocultos de Markov (HMM) e análise estatística para melhorar o desempenho das negociações.

O Equilíbrio de Nash é um conceito da teoria dos jogos onde se assume que cada jogador conhece as estratégias de equilíbrio dos outros jogadores, e nenhum jogador tem algo a ganhar mudando apenas sua própria estratégia.

Em um equilíbrio de Nash, a estratégia de cada jogador é ótima, dado as estratégias de todos os outros jogadores. Um jogo pode ter múltiplos equilíbrios de Nash ou nenhum.

O equilíbrio de Nash é um conceito fundamental na teoria dos jogos, nomeado em homenagem ao matemático John Nash. Ele descreve um estado em um jogo não cooperativo onde cada jogador escolheu uma estratégia, e nenhum jogador pode se beneficiar ao mudar unilateralmente sua estratégia enquanto os outros jogadores mantêm as suas inalteradas.

Aplicação da Teoria dos Jogos de Nash com Filtragem HMM em Trading


Autor: Javier Santiago Gaston De Iriarte Cabrera

 

Passei um dia inteiro tentando entender seu código. As instruções na seção Python eram claras e consegui reproduzir quase exatamente os mesmos resultados de backtest que os seus. No entanto, a parte final do artigo era bastante obscura, com poucas explicações sobre a lógica por trás da arbitragem estatística de negociação de pares e como exatamente a teoria dos jogos foi aplicada.

Aqui estão dois exemplos de problemas que encontrei em seu código:

  1. A função isPositiveDefinite() tem o objetivo de verificar se uma única matriz de covariância 3×3 é definida positivamente. Entretanto, em InitializeHMM , você passa toda a matriz emissionCovs para isPositiveDefinite() em vez de matrizes 3×3 individuais.

  2. A forma como você quantifica o sinal da estratégia também é falha. Tanto o log-likelihood da estratégia quanto a tendência da estratégia produzem exatamente o mesmo sinal, enquanto o sinal do HMM parece irrelevante. Desligar o sinal do HMM literalmente não muda nada, mas todo o seu artigo está centrado na implementação do HMM.

Sua estratégia é baseada em arbitragem, e o tamanho do lote deve ser uma parte crucial dela. Você tem uma função calculateLotSize(), mas ela não é usada em sua demonstração. E você acredita seriamente que os comerciantes de varejo negociarão quase todas as velas de 4 horas? O resultado do backtest posterior não foi lucrativo, mas você afirma que ele deve ser otimizado a cada dois meses. Mas o que exatamente seria otimizado? O período do indicador?

Li muitos de seus artigos, e a maioria deles é interessante. Entretanto, acho que este não está bem construído e aconselho os leitores a não perderem muito tempo com ele, como eu fiz. Espero sinceramente que você mantenha a qualidade de seus artigos no futuro.

 
Zhuo Kai Chen backtest que os seus. No entanto, a parte final do artigo era bastante obscura, com poucas explicações sobre a lógica por trás da arbitragem estatística de negociação de pares e como exatamente a teoria dos jogos foi aplicada.

Aqui estão dois exemplos de problemas que encontrei com seu código:

  1. A função isPositiveDefinite() tem o objetivo de verificar se uma única matriz de covariância 3×3 é definida positivamente. Entretanto, em InitializeHMM , você passa toda a matriz emissionCovs para isPositiveDefinite() em vez de matrizes 3×3 individuais.

  2. A forma como você quantifica o sinal da estratégia também é falha. Tanto o log-likelihood da estratégia quanto a tendência da estratégia produzem exatamente o mesmo sinal, enquanto o sinal do HMM parece irrelevante. Desligar o sinal do HMM literalmente não muda nada, mas todo o seu artigo está centrado na implementação do HMM.

Sua estratégia é baseada em arbitragem, e o tamanho do lote deve ser uma parte crucial dela. Você tem uma função calculateLotSize(), mas ela não é usada em sua demonstração. E você acredita seriamente que os comerciantes de varejo negociarão quase todas as velas de 4 horas? O resultado do backtest posterior não foi lucrativo, mas você afirma que ele deve ser otimizado a cada dois meses. Mas o que exatamente seria otimizado? O período do indicador?

Li muitos de seus artigos, e a maioria deles é interessante. Entretanto, acho que este não está bem construído e aconselho os leitores a não perderem muito tempo com ele, como eu fiz. Espero sinceramente que você mantenha a qualidade de seus artigos no futuro.

Também perdi muito tempo, esse código não está claro, inclusive com alguns erros