Beginner's Guide to Quantitative Trading

Neste artigo vou apresentar-lhe alguns dos conceitos básicos que acompanham um sistema de negociação quantitativa de ponta a ponta. Este post esperançosamente servirá dois públicos. O primeiro será indivíduos tentando obter um emprego em um fundo como um negociador quantitativo. O segundo serão indivíduos que desejam tentar e estabelecer seu próprio negócio de negociação algorítmica “de varejo”.

A negociação quantitativa é uma área extremamente sofisticada de quant finance. Pode levar um tempo significativo para adquirir o conhecimento necessário para passar uma entrevista ou construir suas próprias estratégias de negociação. Não só isso, mas também requer uma ampla experiência em programação, no mínimo em uma linguagem como MATLAB, R ou Python. No entanto, à medida que a frequência de negociação da estratégia aumenta, os aspectos tecnológicos tornam-se muito mais relevantes. Assim, estar familiarizado com C/C++ será de suma importância.

Um sistema de trading quantitativo consiste em quatro componentes principais:

  • Identificação da estratégia – Encontrar uma estratégia, explorar uma margem e decidir sobre a frequência de negociação
  • Backktesting da estratégia – Obter dados, analisar o desempenho da estratégia e remover os vieses
  • Sistema de execução – Ligação a uma corretora, automatizar a negociação e minimizar os custos de transação
  • Gestão de risco – alocação de capital ótima, “tamanho da aposta”/Critério Kelly e psicologia de negociação

Começaremos por dar uma olhada em como identificar uma estratégia de negociação.

Identificação da estratégia

Todos os processos de trading quantitativos começam com um período inicial de pesquisa. Este processo de pesquisa engloba encontrar uma estratégia, ver se a estratégia se encaixa em um portfólio de outras estratégias que você possa estar executando, obter quaisquer dados necessários para testar a estratégia e tentar otimizar a estratégia para obter maiores retornos e/ou menor risco. Você precisará considerar seus próprios requisitos de capital se estiver executando a estratégia como um trader “varejista” e como qualquer custo de transação afetará a estratégia.

Contrário à crença popular é na verdade bastante simples encontrar estratégias lucrativas através de várias fontes públicas. Os académicos publicam regularmente resultados teóricos de negociação (embora na sua maioria brutos dos custos de transacção). Blogs de finanças quantitativas irão discutir estratégias em detalhes. Revistas de comércio irão delinear algumas das estratégias empregadas pelos fundos.

Você pode questionar por que indivíduos e empresas estão interessados em discutir suas estratégias lucrativas, especialmente quando eles sabem que outros “lotando o comércio” pode impedir a estratégia de trabalhar a longo prazo. A razão está no facto de não discutirem frequentemente os parâmetros exactos e os métodos de afinação que têm levado a cabo. Essas otimizações são a chave para transformar uma estratégia relativamente medíocre em uma estratégia altamente lucrativa. De facto, uma das melhores formas de criar as suas próprias estratégias únicas é encontrar métodos semelhantes e depois realizar o seu próprio procedimento de optimização.

Aqui está uma pequena lista de lugares para começar a procurar ideias de estratégia:

  • Social Science Research Network – www.ssrn.com
  • arXiv Quantitative Finance – arxiv.org/archive/q-fin
  • Seeking Alpha – www.seekingalpha.com
  • Elite Trader – www.elitetrader.com
  • Nuclear Phynance – www.nuclearphynance.com
  • Quantivity – quantivity.wordpress.com

Muitas das estratégias que você vai olhar vão se encaixar nas categorias de média-reversão e acompanhamento de tendências/momento. Uma estratégia de reversão de média é aquela que tenta explorar o fato de que existe uma média de longo prazo em uma “série de preços” (como o spread entre dois ativos correlatos) e que os desvios de curto prazo dessa média eventualmente reverterão. Uma estratégia de momentum tenta explorar tanto a psicologia do investidor como a estrutura dos grandes fundos ao “dar uma volta” numa tendência de mercado, que pode ganhar momentum numa direcção, e seguir a tendência até se inverter.

Um outro aspecto extremamente importante da negociação quantitativa é a frequência da estratégia de negociação. A negociação de baixa freqüência (LFT) geralmente se refere a qualquer estratégia que detém ativos por mais tempo do que um dia de negociação. Correspondentemente, alta freqüência de negociação (HFT) geralmente se refere a uma estratégia que detém ativos intraday. Ultra-high frequency trading (UHFT) refere-se a estratégias que detêm ativos na ordem de segundos e milissegundos. Como um praticante de varejo HFT e UHFT são certamente possíveis, mas somente com conhecimento detalhado da “pilha de tecnologia” de negociação e da dinâmica do livro de ordens. Nós não discutiremos esses aspectos em grande parte neste artigo introdutório.

Após que uma estratégia, ou conjunto de estratégias, tenha sido identificada, ela agora precisa ser testada para rentabilidade em dados históricos. Esse é o domínio do backtesting.

Backesting da estratégia

O objetivo do backtesting é fornecer evidências de que a estratégia identificada através do processo acima é lucrativa quando aplicada tanto a dados históricos quanto a dados fora da amostra. Isto estabelece a expectativa de como a estratégia irá funcionar no “mundo real”. No entanto, o backtesting NÃO é uma garantia de sucesso, por várias razões. É talvez a área mais sutil de negociação quantitativa, uma vez que implica numerosos vieses, que devem ser cuidadosamente considerados e eliminados tanto quanto possível. Discutiremos os tipos comuns de vieses, incluindo o viés de look-ahead, o viés de sobrevivência e o viés de otimização (também conhecido como viés de “observação de dados”). Outras áreas importantes dentro do backtesting incluem a disponibilidade e limpeza de dados históricos, a tomada em consideração de custos de transacção realistas e a decisão sobre uma plataforma robusta de backtesting. Discutiremos mais detalhadamente os custos de transação na seção Sistemas de Execução abaixo.

Embora tenha sido identificada uma estratégia, é necessário obter os dados históricos através dos quais realizar os testes e, talvez, o refinamento. Há um número significativo de fornecedores de dados em todas as classes de ativos. Seus custos geralmente são dimensionados com a qualidade, profundidade e atualidade dos dados. O ponto de partida tradicional para iniciar comerciantes quant (pelo menos no nível do varejo) é usar o conjunto de dados gratuito do Yahoo Finance. Eu não vou me deter muito nos fornecedores aqui, ao invés disso eu gostaria de me concentrar nas questões gerais ao lidar com conjuntos de dados históricos.

As principais preocupações com dados históricos incluem precisão/limpeza, viés de sobrevivência e ajuste para ações corporativas como dividendos e desdobramento de ações:

  • A exatidão diz respeito à qualidade geral dos dados – se eles contêm algum erro. Os erros podem por vezes ser fáceis de identificar, como por exemplo com um filtro de picos, que irá escolher “picos” incorrectos nos dados das séries temporais e corrigi-los. Em outros momentos, podem ser muito difíceis de detectar. Muitas vezes é necessário ter dois ou mais provedores e depois verificar todos os seus dados um contra o outro.
  • O viés de sobrevivência é frequentemente uma “característica” de conjuntos de dados gratuitos ou baratos. Um conjunto de dados com viés de sobrevivência significa que ele não contém ativos que não estão mais sendo negociados. No caso de ações, isto significa ações delistadas/bancárias falidas. Este viés significa que qualquer estratégia de negociação de ações testada em tal conjunto de dados provavelmente terá um desempenho melhor do que no “mundo real”, já que os “vencedores” históricos já foram pré-selecionados.
  • Ações corporativas incluem atividades “logísticas” realizadas pela empresa que normalmente causam uma mudança de step-function no preço bruto, que não devem ser incluídas no cálculo do retorno do preço. Ajustes para dividendos e desdobramento de ações são os culpados comuns. Um processo conhecido como ajuste posterior é necessário para ser executado em cada uma dessas ações. Deve-se ter muito cuidado para não confundir um desdobramento de ações com um verdadeiro ajuste de retorno. Muitos traders foram pegos por uma ação corporativa!

Para realizar um procedimento de backtest é necessário utilizar uma plataforma de software. Você tem a escolha entre um software de backtest dedicado, como o Tradestation, uma plataforma numérica como o Excel ou MATLAB ou uma implementação totalmente personalizada em uma linguagem de programação como Python ou C++. Não vou me deter muito no Tradestation (ou similar), Excel ou MATLAB, pois acredito na criação de uma pilha de tecnologia interna completa (por razões descritas abaixo). Um dos benefícios de fazer isso é que o software de backtest e o sistema de execução pode ser bem integrado, mesmo com estratégias estatísticas extremamente avançadas. Para estratégias HFT em particular, é essencial usar uma implementação personalizada.

Ao fazer o backtest de um sistema é necessário ser capaz de quantificar o quão bem ele está funcionando. As métricas “padrão da indústria” para estratégias quantitativas são o drawdown máximo e a Sharpe Ratio. O drawdown máximo caracteriza a maior queda de pico para baixo na curva de patrimônio líquido da conta durante um determinado período de tempo (geralmente anual). Na maioria das vezes, isto é cotado como uma porcentagem. As estratégias LFT tenderão a ter drawdowns maiores que as estratégias HFT, devido a uma série de fatores estatísticos. Um backktest histórico mostrará o drawdown máximo passado, o que é um bom guia para o desempenho futuro do drawdown da estratégia. A segunda medida é o Sharpe Ratio, que é heuristicamente definido como a média dos retornos em excesso dividida pelo desvio padrão desses retornos em excesso. Aqui, o excesso de retorno refere-se ao retorno da estratégia acima de um benchmark pré-determinado, como o S&P500 ou um Bilhete do Tesouro a 3 meses. Note que o retorno anualizado não é uma medida normalmente utilizada, pois não leva em conta a volatilidade da estratégia (ao contrário do Sharpe Ratio).

Após uma estratégia ter sido testada e ser considerada livre de vieses (na medida do possível!), com um bom Sharpe e drawdowns minimizados, é hora de construir um sistema de execução.

Sistemas de execução

Um sistema de execução é o meio pelo qual a lista de trades gerada pela estratégia é enviada e executada pela corretora. Apesar da geração das ordens poder ser semi- ou mesmo totalmente automatizada, o mecanismo de execução pode ser manual, semi-manual (isto é, “um clique”) ou totalmente automatizado. Para estratégias LFT, as técnicas manuais e semi-manuais são comuns. Para estratégias HFT é necessário criar um mecanismo de execução totalmente automatizado, que muitas vezes será fortemente acoplado ao gerador de negociação (devido à interdependência de estratégia e tecnologia).

As principais considerações ao criar um sistema de execução são a interface com a corretora, minimização dos custos de transação (incluindo comissão, deslize e spread) e divergência de desempenho do sistema ao vivo do desempenho testado anteriormente.

Existem muitas formas de interface com uma corretora. Elas vão desde ligar para o seu corretor pelo telefone até uma Interface de Programação de Aplicativos (API) totalmente automatizada e de alto desempenho. O ideal é que você queira automatizar a execução de suas operações o máximo possível. Isto libera-o para se concentrar em mais pesquisas, assim como lhe permite executar múltiplas estratégias ou mesmo estratégias de maior frequência (de facto, HFT é essencialmente impossível sem execução automatizada). Os softwares de backtesting comuns descritos acima, tais como MATLAB, Excel e Tradestation são bons para estratégias mais simples e de menor frequência. Entretanto, será necessário construir um sistema de execução interno escrito em uma linguagem de alto desempenho como C++ para fazer qualquer HFT real. Como anedota, no fundo onde eu costumava ser empregado, tínhamos um “loop de negociação” de 10 minutos onde fazíamos o download de novos dados de mercado a cada 10 minutos e depois executávamos as negociações com base nessa informação no mesmo período de tempo. Isto era usando um script Python otimizado. Para qualquer coisa que se aproximasse dos dados de minuto ou segunda frequência, acredito que C/C++ seria mais ideal.

Num fundo maior, muitas vezes não é o domínio do quant trader para optimizar a execução. No entanto, em lojas menores ou empresas HFT, os traders SÃO os executores e, portanto, um conjunto de habilidades muito mais amplo é muitas vezes desejável. Tenha isso em mente se você deseja ser empregado por um fundo. Suas habilidades de programação serão tão importantes, se não mais, do que suas habilidades estatísticas e econométricas!

Uma outra questão importante que se enquadra na bandeira da execução é a da minimização dos custos de transação. Há geralmente três componentes para os custos de transação: Comissões (ou impostos), que são as taxas cobradas pela corretora, pela bolsa e pela SEC (ou órgão regulador governamental similar); slippage, que é a diferença entre o que você pretendia que seu pedido fosse preenchido em relação ao que foi realmente preenchido; spread, que é a diferença entre o preço de compra/venda do título que está sendo negociado. Note que o spread NÃO é constante e depende da liquidez actual (isto é, disponibilidade de ordens de compra/venda) no mercado.

Os custos de transacção podem fazer a diferença entre uma estratégia extremamente lucrativa com um bom rácio Sharpe e uma estratégia extremamente não lucrativa com um rácio Sharpe terrível. Pode ser um desafio prever corretamente os custos de transação a partir de um backktest. Dependendo da frequência da estratégia, você precisará ter acesso a dados históricos de troca, que incluirão dados de preços de compra/venda. Equipes inteiras de quants são dedicadas à otimização da execução nos fundos maiores, por estas razões. Considere o cenário onde um fundo precisa descarregar uma quantidade substancial de negociações (das quais as razões para fazê-lo são muitas e variadas!). Ao “despejar” tantas ações no mercado, elas deprimem rapidamente o preço e podem não obter uma execução ótima. Por isso, existem algoritmos que “alimentam” as ordens no mercado, embora depois o fundo corra o risco de escorregar. Para além disso, outras estratégias “presam” a estas necessidades e podem explorar as ineficiências. Este é o domínio da arbitragem da estrutura do fundo.

A última grande questão para os sistemas de execução diz respeito à divergência do desempenho da estratégia em relação ao desempenho testado anteriormente. Isto pode acontecer por uma série de razões. Nós já discutimos em profundidade o viés de look-ahead e o viés de otimização, quando consideramos os backtests. No entanto, algumas estratégias não facilitam o teste desses vieses antes da implantação. Isso ocorre mais predominantemente no HFT. Pode haver bugs no sistema de execução, bem como na própria estratégia de trading que não aparecem em um backtest mas sim em trading ao vivo. O mercado pode ter sido sujeito a uma mudança de regime após o desdobramento de sua estratégia. Novos ambientes regulatórios, mudanças no sentimento do investidor e fenômenos macroeconômicos podem levar a divergências na forma como o mercado se comporta e, portanto, na rentabilidade da sua estratégia.

Gestão de risco

A peça final do quebra-cabeças quantitativo de negociação é o processo de gestão de risco. O “Risco” inclui todos os preconceitos anteriores que discutimos. Ele inclui o risco tecnológico, como servidores co-localizados na bolsa de valores desenvolvendo repentinamente um mau funcionamento do disco rígido. Inclui o risco de corretagem, como a falência do corretor (não tão louco quanto parece, dado o recente susto com a MF Global!). Em resumo, cobre quase tudo que poderia interferir com a implementação da negociação, da qual existem muitas fontes. Livros inteiros são dedicados ao gerenciamento de risco para estratégias quantitativas, portanto não vou tentar elucidar sobre todas as fontes possíveis de risco aqui.

O gerenciamento de risco também abrange o que é conhecido como alocação ótima de capital, que é um ramo da teoria da carteira. Este é o meio pelo qual o capital é alocado para um conjunto de diferentes estratégias e para as operações dentro dessas estratégias. É uma área complexa e depende de algumas matemáticas não triviais. O padrão da indústria pelo qual a alocação ótima de capital e a alavancagem das estratégias estão relacionadas é chamado de critério Kelly. Como este é um artigo introdutório, não vou me deter no seu cálculo. O critério Kelly faz algumas suposições sobre a natureza estatística dos retornos, que muitas vezes não se aplicam aos mercados financeiros, por isso os traders são muitas vezes conservadores quando se trata da implementação.

Uma outra componente chave da gestão de risco está em lidar com o próprio perfil psicológico. Existem muitos preconceitos cognitivos que se podem infiltrar na negociação. Embora isto seja reconhecidamente menos problemático com a negociação algorítmica se a estratégia for deixada em paz! Um viés comum é o da aversão à perda, onde uma posição perdedora não será fechada devido à dor de ter de se aperceber de uma perda. Da mesma forma, os lucros podem ser tomados muito cedo porque o medo de perder um lucro já ganho pode ser grande demais. Outro viés comum é conhecido como viés de recência. Isto manifesta-se quando os comerciantes colocam demasiada ênfase nos acontecimentos recentes e não no longo prazo. Então, é claro, há o clássico par de preconceitos emocionais – medo e ganância. Estes podem muitas vezes levar a sub ou sobre alavancagem, o que pode causar um aumento (i.e., a rubrica de equidade da conta a zero ou pior!) ou lucros reduzidos.

Sumário

Como se pode ver, a negociação quantitativa é uma área extremamente complexa, embora muito interessante, de finanças quantitativas. Eu literalmente risquei a superfície do tópico neste artigo e já está ficando um pouco longo! Foram escritos livros e artigos inteiros sobre assuntos para os quais apenas dei uma ou duas frases. Por essa razão, antes de se candidatar a trabalhos de negociação quantitativa de fundos, é necessário realizar uma quantidade significativa de estudo de base. No mínimo você precisará de um extenso conhecimento em estatística e econometria, com muita experiência em implementação, através de uma linguagem de programação como MATLAB, Python ou R. Para estratégias mais sofisticadas no extremo superior da frequência, o seu conjunto de habilidades provavelmente incluirá modificação do kernel Linux, C/C++, programação assembly e otimização da latência da rede.

Se você estiver interessado em tentar criar suas próprias estratégias de negociação algorítmica, minha primeira sugestão seria ficar bom em programação. A minha preferência é construir o máximo possível de captura de dados, backtester de estratégia e sistema de execução por si mesmo. Se o seu próprio capital está em jogo, você não dormiria melhor à noite sabendo que testou completamente o seu sistema e está ciente das suas armadilhas e problemas particulares? Terceirizar isso para um fornecedor, embora potencialmente economizando tempo a curto prazo, pode ser extremamente caro a longo prazo.

Deixe uma resposta

O seu endereço de email não será publicado.