Discussão do artigo "Arbitragem estatística com ações cointegradas (Parte 3): Configuração do banco de dados"

Novo artigo Arbitragem estatística com ações cointegradas (Parte 3): Configuração do banco de dados foi publicado:

Neste artigo, apresentamos um exemplo de implementação de um serviço em MQL5 para atualizar um banco de dados recém-criado, que será utilizado como fonte de dados para a análise e a negociação de uma cesta de ações cointegradas. Explicamos detalhadamente a lógica de modelagem do banco de dados e fornecemos uma descrição da estrutura dos dados (data dictionary) como material de referência. Também disponibilizamos scripts em MQL5 e Python para criar o banco de dados, inicializar seu esquema e carregar os dados de mercado.

Nosso Expert Advisor (EA) deve ser capaz de identificar, em tempo real, se os pesos da carteira utilizados pelo EA continuam atualizados ou se já sofreram alterações. Caso tenham mudado, o EA precisa receber os novos pesos o mais rápido possível. Além disso, deve verificar se o próprio modelo continua válido. Se não estiver mais válido, o EA precisa receber informações sobre quais ativos devem ser substituídos e realizar imediatamente a rotação dos ativos na carteira atual.

Utilizamos a integração do MetaTrader 5 com Python e as funções estatísticas especializadas da biblioteca statsmodels, mas, até agora, trabalhamos apenas com dados em tempo real, obtendo as cotações (dados de preços) conforme a necessidade. Essa abordagem é conveniente durante a fase de pesquisa devido à sua simplicidade. Entretanto, se pretendemos realizar a rotação dos ativos da carteira, atualizar os modelos ou os pesos da carteira, precisamos considerar o armazenamento dos dados. Em outras palavras, devemos começar a armazená-los em um banco de dados, pois baixar novamente as cotações sempre que precisamos delas se torna pouco prático. Além disso, talvez precisemos investigar relações entre diferentes classes de ativos e entre instrumentos que não participaram dos nossos testes iniciais de cointegração.

Um banco de dados de alta qualidade, escalável e rico em metadados é a base de qualquer projeto sério de arbitragem estatística. Como a modelagem de um banco de dados depende, em grande parte, das necessidades específicas de cada projeto (um bom banco de dados é aquele que atende aos requisitos do negócio), neste artigo vamos explorar uma das possíveis abordagens para criar um banco de dados voltado à arbitragem estatística.


Autor: Jocimar Lopes