вторник, 1 мая 2018 г.

Quantitative trading strategies in r pdf


Negociação Quantitativa O que é Negociação Quantitativa A negociação quantitativa consiste em estratégias de negociação baseadas em análises quantitativas. que dependem de cálculos matemáticos e processamento de números para identificar oportunidades de negociação. Como a negociação quantitativa é geralmente usada por instituições financeiras e fundos de hedge. as transações geralmente são grandes em tamanho e podem envolver a compra e venda de centenas de milhares de ações e outros títulos. No entanto, o comércio quantitativo está se tornando mais comumente usado por investidores individuais. INTERCÂMBIO Quantitativo O preço e o volume são dois dos insumos de dados mais comuns usados ​​na análise quantitativa como os principais insumos para os modelos matemáticos. Técnicas de negociação quantitativa incluem negociação de alta frequência. negociação algorítmica e arbitragem estatística. Essas técnicas são rápidas e normalmente têm horizontes de investimento de curto prazo. Muitos comerciantes quantitativos estão mais familiarizados com ferramentas quantitativas, como médias móveis e osciladores. Compreendendo a negociação quantitativa Os comerciantes quantitativos tiram proveito da moderna tecnologia, da matemática e da disponibilidade de bancos de dados abrangentes para a tomada de decisões comerciais racionais. Comerciantes quantitativos adotam uma técnica de negociação e criam um modelo usando a matemática, e então desenvolvem um programa de computador que aplica o modelo aos dados históricos do mercado. O modelo é então backtested e otimizado. Se resultados favoráveis ​​forem alcançados, o sistema é então implementado em mercados em tempo real com capital real. A forma como os modelos de negociação quantitativa funcionam pode ser melhor descrita usando uma analogia. Considere um boletim meteorológico em que o meteorologista prevê 90 chances de chuva enquanto o sol está brilhando. O meteorologista deriva essa conclusão contra-intuitiva ao coletar e analisar dados climáticos de sensores em toda a área. Uma análise quantitativa computadorizada revela padrões específicos nos dados. Quando esses padrões são comparados com os mesmos padrões revelados em dados climáticos históricos (backtesting), e 90 em 100 vezes o resultado é chuva, então o meteorologista pode tirar a conclusão com confiança, daí a previsão 90. Os comerciantes quantitativos aplicam este mesmo processo ao mercado financeiro para tomar decisões comerciais. Vantagens e desvantagens da negociação quantitativa O objetivo da negociação é calcular a probabilidade ótima de executar uma negociação lucrativa. Um trader típico pode efetivamente monitorar, analisar e tomar decisões de negociação sobre um número limitado de títulos antes que a quantidade de dados recebidos sobrecarregue o processo de tomada de decisão. O uso de técnicas quantitativas de negociação ilumina esse limite usando computadores para automatizar as decisões de monitoramento, análise e negociação. Superar a emoção é um dos problemas mais difusos da negociação. Seja medo ou ganância, quando se negocia, a emoção serve apenas para sufocar o pensamento racional, o que geralmente leva a perdas. Computadores e matemática não possuem emoções, então a negociação quantitativa elimina esse problema. A negociação quantitativa tem seus problemas. Os mercados financeiros são algumas das entidades mais dinâmicas que existem. Portanto, os modelos de negociação quantitativos devem ser tão dinâmicos para serem consistentemente bem-sucedidos. Muitos comerciantes quantitativos desenvolvem modelos que são temporariamente lucrativos para a condição de mercado para a qual foram desenvolvidos, mas acabam fracassando quando as condições do mercado mudam. Matemática Financeira e Modelagem II (FINC 621) é uma classe de pós-graduação oferecida atualmente na Universidade de Loyola. Chicago durante o trimestre de inverno. O FINC 621 explora tópicos em finanças quantitativas, matemática e programação. A aula é prática por natureza e é composta por uma palestra e um componente de laboratório. Os laboratórios utilizam a linguagem de programação R e os alunos são obrigados a enviar suas tarefas individuais no final de cada aula. O objetivo final do FINC 621 é fornecer aos alunos ferramentas práticas que eles possam usar para criar, modelar e analisar estratégias de negociação simples. Alguns links R úteis Sobre o Instrutor Harry G. é um negociador quantitativo sênior de uma empresa de trading de HFT em Chicago. Ele é mestre em Engenharia Elétrica e mestre em Matemática Financeira pela Universidade de Chicago. Em seu tempo livre, Harry ensina um curso de pós-graduação em Finanças Quantitativas na Universidade Loyola, em Chicago. Ele também é o autor de Quantitative Trading com R. Beginner's Guide to Quantitative Trading Neste artigo vou apresentar-lhe alguns dos conceitos básicos que acompanham um sistema de negociação quantitativa end-to-end. Espera-se que este post atenda a dois públicos-alvo. O primeiro será indivíduos tentando obter um emprego em um fundo como um comerciante quantitativo. A segunda será pessoas que desejam tentar montar seu próprio negócio de comércio algorítmico de varejo. A negociação quantitativa é uma área extremamente sofisticada de finanças quânticas. Pode levar uma quantidade significativa de tempo para obter o conhecimento necessário para passar uma entrevista ou construir suas próprias estratégias de negociação. Não só isso, mas requer extensa experiência em programação, pelo menos 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 negociação quantitativo consiste em quatro componentes principais: Identificação da Estratégia - Encontrar uma estratégia, explorar uma vantagem e decidir sobre a frequência de negociação Backtesting de Estratégia - Obter dados, analisar o desempenho da estratégia e remover vieses Sistema de Execução - Vinculando a uma corretora, automatizando a negociação e minimizando Custos de transação Gerenciamento de risco - Alocação ótima de capital, tamanho da aposta / critério de Kelly e psicologia de negociação Comece por dar uma olhada em como identificar uma estratégia de negociação. Identificação da estratégia Todos os processos de negociação quantitativa começam com um período inicial de pesquisa. Este processo de pesquisa engloba encontrar uma estratégia, verificando se a estratégia se encaixa em um portfólio de outras estratégias que você pode estar executando, obtendo quaisquer dados necessários para testar a estratégia e tentando otimizar a estratégia para retornos mais altos e / ou menor risco. Você precisará levar em conta suas próprias necessidades de capital se administrar a estratégia como um comerciante de varejo e como os custos de transação afetarão a estratégia. Ao contrário da crença popular, é 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, em sua maioria, sejam brutos dos custos de transação). Os blogs de finanças quantitativas discutirão as estratégias em detalhes. Os jornais de comércio delinearão algumas das estratégias empregadas pelos fundos. Você pode questionar por que os indivíduos e as empresas estão interessados ​​em discutir suas estratégias lucrativas, especialmente quando sabem que outros que estão se aglomerando no comércio podem impedir que a estratégia funcione a longo prazo. A razão está no fato de que eles não costumam discutir os parâmetros exatos e os métodos de ajuste que eles realizaram. Essas otimizações são a chave para transformar uma estratégia relativamente medíocre em uma altamente lucrativa. Na verdade, uma das melhores maneiras de criar suas próprias estratégias únicas é encontrar métodos semelhantes e, em seguida, realizar seu próprio procedimento de otimização. Aqui está uma pequena lista de lugares para começar a procurar por ideias estratégicas: Muitas das estratégias que você irá ver se encaixarão nas categorias de reversão à média e tendência / momento. Uma estratégia de reversão à 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 acabarão sendo revertidos. Uma estratégia de momentum tenta explorar tanto a psicologia do investidor quanto a grande estrutura de fundos, aproveitando uma tendência de mercado, que pode ganhar impulso em uma direção e seguir a tendência até que ela se reverta. Outro aspecto extremamente importante da negociação quantitativa é a frequência da estratégia de negociação. A negociação de baixa frequência (LFT) geralmente se refere a qualquer estratégia que detenha ativos por mais de um dia de negociação. Correspondentemente, a negociação de alta frequência (HFT) geralmente se refere a uma estratégia que mantém ativos intradiários. Negociação de frequência ultra-alta (UHFT) refere-se a estratégias que mantêm ativos na ordem de segundos e milissegundos. Como profissionais de varejo, HFT e UHFT certamente são possíveis, mas apenas com conhecimento detalhado da pilha de tecnologia de negociação e da dinâmica do livro de pedidos. Nós não vamos discutir esses aspectos em grande medida neste artigo introdutório. Uma vez que uma estratégia, ou conjunto de estratégias, tenha sido identificada, ela agora precisa ser testada quanto à lucratividade nos dados históricos. Esse é o domínio do backtesting. Backtesting de estratégia O objetivo do backtesting é fornecer evidências de que a estratégia identificada por meio do processo acima é lucrativa quando aplicada a dados históricos e fora da amostra. Isso define a expectativa de como a estratégia funcionará no mundo real. No entanto, backtesting não é garantia de sucesso, por várias razões. É talvez a área mais sutil do comércio quantitativo, uma vez que implica inúmeros vieses, que devem ser cuidadosamente considerados e eliminados, tanto quanto possível. Vamos discutir os tipos comuns de preconceito, incluindo o viés de look-ahead. viés de sobrevivência e viés de otimização (também conhecido como viés de snooping de dados). Outras áreas de importância dentro do backtesting incluem a disponibilidade e a limpeza de dados históricos, levando em consideração custos de transação realistas e decidindo sobre uma plataforma robusta de backtesting. Bem, discuta os custos de transação na seção Sistemas de Execução abaixo. Uma vez que uma estratégia tenha sido identificada, é necessário obter os dados históricos através dos quais realizar testes e, talvez, refinamento. Há um número significativo de fornecedores de dados em todas as classes de ativos. Seus custos geralmente variam de acordo com a qualidade, profundidade e pontualidade dos dados. O ponto de partida tradicional para os comerciantes de quantia iniciais (pelo menos no nível de varejo) é usar o conjunto de dados gratuito do Yahoo Finance. Eu não vou me debruçar muito sobre provedores 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 os dados históricos incluem exatidão / limpeza, viés de sobrevivência e ajuste para ações corporativas, como dividendos e desdobramentos: a precisão diz respeito à qualidade geral dos dados - se contém algum erro. Às vezes, os erros podem ser fáceis de identificar, como com um filtro de pico. que selecionará picos incorretos nos dados de séries temporais e os corrigirá. Em outras ocasiões, podem ser muito difíceis de detectar. Muitas vezes é necessário ter dois ou mais provedores e, em seguida, verificar todos os seus dados uns contra os outros. O viés de sobrevivência é muitas vezes 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, isso significa ações excluídas / falidas. Esse 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. As ações corporativas incluem atividades logísticas realizadas pela empresa que geralmente causam uma mudança na função de etapa do preço bruto, que não devem ser incluídas no cálculo de retornos do preço. Ajustes para dividendos e desdobramentos são os culpados comuns. Um processo conhecido como ajuste de costas é necessário para ser realizado em cada uma dessas ações. É preciso ter muito cuidado para não confundir um desdobramento de ações com um verdadeiro ajuste de retorno. Muitos comerciantes foram surpreendidos por uma ação corporativa Para realizar um procedimento de backtest, é necessário usar uma plataforma de software. Você tem a escolha entre software backtest dedicado, como Tradestation, uma plataforma numérica como Excel ou MATLAB ou uma implementação personalizada completa em uma linguagem de programação como Python ou C. Eu não vou me demorar muito em Tradestation (ou similar), Excel ou MATLAB, como acredito na criação de uma pilha completa de tecnologia interna (pelas razões descritas abaixo). Um dos benefícios disso é que o software de backtest e o sistema de execução podem ser totalmente integrados, mesmo com estratégias estatísticas extremamente avançadas. Para as estratégias de HFT, em particular, é essencial usar uma implementação personalizada. Ao fazer o backtest de um sistema, é preciso ser capaz de quantificar o desempenho do mesmo. As métricas padrão da indústria para estratégias quantitativas são o rebaixamento máximo e o índice de Sharpe. O rebaixamento máximo caracteriza a maior queda de ponta a ponta na curva de patrimônio da conta em um determinado período de tempo (geralmente anual). Isso é mais frequentemente citado como uma porcentagem. As estratégias de LFT tenderão a ter rebaixamentos maiores do que as estratégias de HFT, devido a vários fatores estatísticos. Um backtest histórico mostrará o último drawdown máximo, que é um bom guia para o futuro desempenho de drawdown da estratégia. A segunda medida é o Índice de Sharpe, que é definido heuristicamente como a média dos retornos excedentes dividida pelo desvio padrão desses retornos excedentes. Aqui, os retornos excedentes referem-se ao retorno da estratégia acima de um benchmark pré-determinado. como o SP500 ou um Tesouro de 3 meses. Note que o retorno anualizado não é uma medida normalmente utilizada, pois não leva em conta a volatilidade da estratégia (diferentemente do Índice de Sharpe). Uma vez que uma estratégia tenha sido backtested e seja considerada livre de vieses (na medida em que isso seja possível), com um bom Sharpe e rebaixamentos 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 negociações geradas pela estratégia é enviada e executada pelo intermediário. Apesar do fato de que a geração de comércio pode ser semi ou totalmente automatizada, o mecanismo de execução pode ser manual, semi-manual (ou seja, um clique) ou totalmente automatizado. Para estratégias de LFT, técnicas manuais e semi-manuais são comuns. Para as estratégias de HFT, é necessário criar um mecanismo de execução totalmente automatizado, que muitas vezes será fortemente acoplado ao gerador de comércio (devido à interdependência entre estratégia e tecnologia). As principais considerações ao criar um sistema de execução são a interface para a corretora. minimização dos custos de transação (incluindo comissão, derrapagem e spread) e divergência de desempenho do sistema live a partir do desempenho do backtested. Há muitas maneiras de interagir com uma corretora. Eles variam de chamar seu corretor por telefone até uma Application Programming Interface (API) de alto desempenho totalmente automatizada. O ideal é que você queira automatizar a execução de seus negócios o máximo possível. Isso libera você para se concentrar em mais pesquisas, bem como permitir que você execute várias estratégias ou mesmo estratégias de maior frequência (na verdade, HFT é essencialmente impossível sem execução automatizada). O software comum de backtesting descrito acima, como MATLAB, Excel e Tradestation, é bom para estratégias mais simples e de menor frequência. No entanto, será necessário construir um sistema de execução interno escrito em uma linguagem de alto desempenho, como C, a fim de fazer qualquer HFT real. Como uma anedota, no fundo em que eu costumava trabalhar, tínhamos um ciclo de negociação de 10 minutos, onde baixávamos novos dados de mercado a cada 10 minutos e depois executávamos negociações com base nessas informações no mesmo período de tempo. Isso estava usando um script Python otimizado. Para qualquer coisa que se aproxime de dados de frequência de minutos ou segundos, acredito que C / C seria mais ideal. Em um fundo maior, muitas vezes não é o domínio do comerciante de quantificação para otimizar a execução. No entanto, em pequenas lojas ou empresas de HFT, os comerciantes são os executores e, portanto, um conjunto de habilidades muito mais amplo é geralmente 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 estatísticas e talentos da econometria Outra questão importante que cai sob a bandeira da execução é a minimização dos custos de transação. Em geral, há três componentes nos custos de transação: Comissões (ou impostos), que são as taxas cobradas pela corretora, pela bolsa e pelo desvio da SEC (ou órgão regulador governamental semelhante), que é a diferença entre o que você pretendia preenchido em versus o que foi realmente preenchido no spread, que é a diferença entre o preço de compra / venda do título que está sendo negociado. Observe que o spread NÃO é constante e depende da liquidez atual (ou seja, disponibilidade de ordens de compra / venda) no mercado. Os custos de transação podem fazer a diferença entre uma estratégia extremamente lucrativa com um bom índice de Sharpe e uma estratégia extremamente não lucrativa com um índice de Sharpe terrível. Pode ser um desafio prever corretamente os custos de transação de um backtest. Dependendo da frequência da estratégia, você precisará acessar os dados históricos do câmbio, que incluirão dados de ticks para preços de compra / venda. Equipes inteiras de quantos são dedicadas à otimização da execução nos fundos maiores, por esses motivos. Considere o cenário em que um fundo precisa descarregar uma quantidade substancial de negócios (dos quais as razões para isso são muitas e variadas). Ao despejar tantas ações no mercado, elas rapidamente deprimirão o preço e podem não obter uma execução ideal. Portanto, os algoritmos que gotejam pedidos de alimentação no mercado existem, embora o fundo corra o risco de derrapagem. Além disso, outras estratégias atacam essas 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 de desempenho da estratégia do desempenho do backtested. Isso pode acontecer por vários motivos. Já discutimos o viés de antecipação e o viés de otimização em profundidade, ao considerar os backtests. No entanto, algumas estratégias não facilitam o teste desses vieses antes da implantação. Isso ocorre em HFT mais predominantemente. Pode haver bugs no sistema de execução, bem como a própria estratégia de negociação que não aparece em um backtest, mas aparece no live trading. O mercado pode ter sido sujeito a uma mudança de regime após a implantação 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 de sua estratégia. Gerenciamento de risco A peça final do quebra-cabeça de negociação quantitativa é o processo de gerenciamento de risco. O risco inclui todos os vieses anteriores que discutimos. Isso inclui risco de tecnologia, como servidores co-localizados na central de repente desenvolvendo um mau funcionamento do disco rígido. Inclui o risco de corretagem, como o corretor estar falido (não tão louco quanto parece, dado o recente susto com a MF Global). Em suma, abrange quase tudo o que poderia interferir com a implementação comercial, dos quais existem muitas fontes. Livros inteiros são dedicados à gestão de risco para estratégias quantitativas, então eu não tentarei elucidar todas as possíveis fontes de risco aqui. A gestão de risco também abrange o que é conhecido como alocação ótima de capital. que é um ramo da teoria da carteira. Esse é o meio pelo qual o capital é alocado a um conjunto de estratégias diferentes e aos negócios 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 de Kelly. Desde que este é um artigo introdutório, eu não me demorarei em seu cálculo. O critério de Kelly faz algumas suposições sobre a natureza estatística dos retornos, que muitas vezes não são verdadeiros nos mercados financeiros, de modo que os operadores geralmente são conservadores quando se trata da implementação. Outro componente-chave do gerenciamento de riscos é lidar com o próprio perfil psicológico. Existem muitos vieses cognitivos que podem surgir na negociação. Embora isto seja reconhecidamente menos problemático com negociação algorítmica se a estratégia for deixada em paz Um viés comum é o da aversão à perda em que uma posição perdedora não será fechada devido à dor de ter que realizar uma perda. Da mesma forma, os lucros podem ser tomados muito cedo porque o medo de perder um lucro já ganho pode ser muito grande. Outro viés comum é conhecido como viés de recência. Isso se manifesta quando os operadores enfatizam demais os eventos recentes e não a longo prazo. Então, é claro, há o par clássico de preconceitos emocionais - medo e ganância. Estes podem muitas vezes levar a sub ou sobre-alavancagem, o que pode causar blow-up (ou seja, o título da conta para zero ou pior) ou lucros reduzidos. Como pode ser visto, o comércio quantitativo é uma área extremamente complexa, embora muito interessante, de financiamento quantitativo. Eu literalmente arranhei a superfície do tópico neste artigo e ele já está ficando um tanto longo. Livros e artigos inteiros foram escritos sobre questões que eu só dei uma frase ou duas para. Por esse motivo, antes de se candidatar a cargos quantitativos de negociação 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, por meio de uma linguagem de programação como MATLAB, Python ou R. Para estratégias mais sofisticadas no final de frequência mais alta, seu conjunto de habilidades é provável para incluir a modificação do kernel do Linux, C / C, programação de montagem e otimização de latência de rede. Se você estiver interessado em tentar criar suas próprias estratégias de negociação algorítmica, minha primeira sugestão seria se programar bem. Minha preferência é construir o máximo possível de dados capturados, backtester de estratégia e sistema de execução. Se seu próprio capital está em jogo, você não dormiria melhor à noite sabendo que testou completamente seu sistema e está ciente de suas armadilhas e problemas específicos. Terceirizar isso para um fornecedor, enquanto potencialmente economiza tempo a curto prazo, pode ser extremamente difícil. caro a longo prazo.

Комментариев нет:

Отправить комментарий