Tuesday 27 March 2018

Estratégias quantitativas de negociação em pdf


Negociação quantitativa com R.


Compreendendo ferramentas matemáticas e computacionais da perspectiva de uma Quant.


Autores: Georgakopoulos, Harry.


Compre este livro.


ISBN 978-1-137-43747-1 Marcado digitalmente, sem DRM Formato incluído: EPUB, ebooks PDF podem ser usados ​​em todos os dispositivos de leitura Download imediato de livros eletrônicos após a compra Hardcover $ 75.00.


ISBN 978-1-137-35407-5 Envio gratuito para pessoas em todo o mundo Normalmente despachado dentro de 3 a 5 dias úteis. Capa leve $ 70.00.


ISBN 978-1-349-46986-4 Envio gratuito para pessoas em todo o mundo Normalmente despachado dentro de 3 a 5 dias úteis.


A Finança Quantitativa com R oferece uma estratégia vencedora para a elaboração de modelos de negociação habilidosos e trabalháveis ​​usando a linguagem de programação de código aberto R, proporcionando aos leitores uma abordagem passo-a-passo para a compreensão de problemas de finanças quantitativas complexas e a criação de código de computador funcional.


Harry Georgakopoulos é professor de finanças quantitativas na Universidade Loyola e comerciante quantitativo da XR Trading, LLC. Ele trabalhou como comerciante quantitativo em Chicago, IL no espaço de alta freqüência desde 2007. Antes disso, ele estava empregado na Motorola e Andrew Corp. como engenheiro elétrico, onde projetou e testou transceptores de microondas para tecnologias móveis 3G, bem como em Milliman, onde serviu como consultor financeiro quantitativo. Sua principal área de especialização é a pesquisa e desenvolvimento de sistemas de negociação automatizados de alta freqüência para futuros e ações. Ele recebeu seu doutorado em Matemática Financeira pela Universidade de Chicago.


"Através da lente de um profissional especialista, Harry fornece um tratado sobre como desenvolver uma robusta estratégia de negociação quantitativa usando 'R'. Este é o primeiro livro escrito que cobriu a capacidade do software 'R' para fornecer a infra-estrutura para um algoritmo sistema de comércio. Harry escreveu um clássico instantâneo que o profissional e o novato encontrarão inerentemente útil. Existe uma quantidade excessiva de código "R" de trabalho que o leitor pode implantar instantaneamente ou alavanca para desenvolver funções e scripts mais exóticos. Com este livro, Não há necessidade de um desenvolvimento de software caro ou de uma licença MATLAB. Baixe o software R e você pode começar a desenvolver estratégias rentáveis ​​imediatamente. Harry gerou toda uma nova geração de gestores de hedge funds com este trabalho seminal ". - Ed Zarek, Quantitative Options Trader, Chicago Volatility Group.


"Este é um texto excelente para os aspirantes a comerciantes quantitativos. Os conceitos financeiros de matemática e computação são introduzidos e desenvolvidos simultaneamente. O texto orienta os leitores através de um conjunto de exercícios de programação R que culminam em várias estratégias de negociação baseadas em dados. O estilo de escrita conversacional e a perspectiva do profissional. vai ressoar com muitos leitores ". - Steven Todd, Diretor Adjunto da Faculdade e Pesquisa, Ex-Presidente do Departamento de Finanças e Professor Associado Finance, Quinlan School of Business, Loyola University Chicago.


"Negociação quantitativa com R traduz tópicos complicados em conceitos diretos. Estou usando isso como referência e Belvedere já incorporou algum material em nossas aulas". - Thomas Hutchinson, Managing Partner, Belvedere Trading, LLC.


Índice (11 capítulos)


Ferramentas do Comércio.


Trabalhando com Dados.


Estatística básica e probabilidade.


Estatísticas intermediárias e probabilidade.


Spreads, Betas e Risco.


Backtesting com Quantstrat.


Velocidade, Testes e Relatórios.


Compre este livro.


ISBN 978-1-137-43747-1 Marcado digitalmente, sem DRM Formato incluído: EPUB, ebooks PDF podem ser usados ​​em todos os dispositivos de leitura Download imediato de livros eletrônicos após a compra Hardcover $ 75.00.


ISBN 978-1-137-35407-5 Envio gratuito para pessoas em todo o mundo Normalmente despachado dentro de 3 a 5 dias úteis. Capa leve $ 70.00.


ISBN 978-1-349-46986-4 Envio gratuito para pessoas em todo o mundo Normalmente despachado dentro de 3 a 5 dias úteis.


Serviços para este livro.


Informações bibliográficas.


Informações para.


Outros sites e produtos.


Palgrave Macmillan publica revistas, monografias e livros de referência impressos e on-line.


QuantStart.


O portal QuantCademy QuantStademy da QuantStart fornece recursos educacionais detalhados para aprender comércio sistemático e uma forte comunidade de comerciantes algorítmicos de sucesso para ajudá-lo.


Artigos Mais Recentes.


Apenas iniciando o comércio quantitativo?


3 razões para se inscrever para a lista de e-mails QuantStart:


1. Quant Trading Lessons.


Você terá acesso instantâneo a um curso de e-mail gratuito de 10 partes, repleto de sugestões e dicas para ajudá-lo a começar a negociação quantitativa!


2. Todo o conteúdo mais recente.


Todas as semanas, vou enviar-lhe um envoltório de todas as atividades no QuantStart para que você nunca mais perca uma postagem novamente.


Real, dicas de negociação viáveis, sem tonturas.


O R Trader.


Usando R e ferramentas relacionadas em Finanças Quantitativas.


Arquivo para as estratégias de negociação & # 8216; & # 8217; Categoria.


Vinculando R para IQFeed com o pacote QuantTools.


O IQFeed fornece serviços de transmissão de dados e soluções de negociação que cobrem o mercado agrícola, energético e financeiro. É um fornecedor bem conhecido e reconhecido de feed de dados voltado para usuários de varejo e pequenas instituições. O preço da assinatura começa em torno de US $ 80 / mês.


Stanislav Kovalevsky desenvolveu um pacote chamado QuantTools. É um pacote tudo em um projetado para melhorar a modelagem de negociação quantitativa. Ele permite baixar e organizar dados históricos de mercado de várias fontes como Yahoo, Google, Finam, MOEX e IQFeed. O recurso que mais me interessa é a capacidade de vincular o IQFeed à R. I & # 8217; tenho usado o IQFeed há alguns anos e estou feliz com ele (eu não sou afiliado à empresa em nenhum caminho). Mais informações podem ser encontradas aqui. Eu procurei uma integração dentro de R por um tempo e aqui está. Como resultado, depois de executar alguns testes, mudei meu código que ainda estava em Python em R. Apenas por completude, aqui é um link que explica como baixar dados históricos do IQFeed usando o Python.


O QuantTools oferece quatro funcionalidades principais: Obter dados de mercado, armazenar / recuperar dados do mercado, traçar dados da série temporal e testar as costas.


Primeiro, certifique-se de que o IQfeed esteja aberto. Você pode baixar dados diários ou intraday. O código abaixo baixa os preços diários (Open, High, Low, Close) para a SPY de 1 de janeiro de 2017 a 1 de junho de 2017.


O código abaixo baixa dados intraday de 1 de maio de 2017 a 3 de maio de 2017.


Observe o parâmetro do período. Pode levar qualquer um dos seguintes valores: tick, 1min, 5min, 10min, 15min, 30min, hora, dia, semana, mês, dependendo da frequência que você precisa.


O QuantTools torna o processo de gerenciamento e armazenamento de dados do mercado de tiques fácil. Você apenas configura parâmetros de armazenamento e está pronto para ir. Os parâmetros são onde, desde que data e quais símbolos você gostaria de ser armazenado. Sempre que você pode adicionar mais símbolos e se eles não estiverem presentes em um armazenamento, o QuantTools tenta obter os dados da data de início especificada. O código abaixo salvará os dados no seguinte diretório: & # 8220; C: / Usuários / Arnaud / Documents / Market Data / iqfeed & # 8221 ;. Existe uma sub-pasta por instrumento e os dados são aved em arquivos. rds.


Você também pode armazenar dados entre datas específicas. Substitua a última linha de código acima com uma das seguintes.


Agora, você deseja recuperar alguns dos dados armazenados, basta executar algo como:


Observe que apenas os tiques são suportados no armazenamento local, pelo que o período deve ser & # 8216; assinalar & # 8217;


O QuantTools fornece a função plot_ts para traçar dados da série temporal sem fins de semana, feriados e intervalos overnight. No exemplo abaixo, primeiro recupero os dados armazenados acima, selecione as primeiras 100 observações de preços e, finalmente, desenhe o gráfico.


Duas coisas a notar: primeiro espião é um objeto data. table daí a sintaxe acima. Para obter uma visão geral rápida das capacidades de data. table, veja esta excelente folha de truques da DataCamp. Segundo, o parâmetro local é VERDADEIRO à medida que os dados são recuperados do armazenamento interno.


O QuantTools permite escrever sua própria estratégia comercial usando sua API C ++. Eu não vou elaborar sobre isso, pois este é basicamente o código C ++. Você pode consultar a seção Exemplos no site QuantTools.


No geral, considero o pacote extremamente útil e bem documentado. O único bit faltante é o feed ao vivo entre R e IQFeed, o que tornará o pacote uma solução de fim a fim real.


Como de costume, todos os comentários são bem-vindos.


BERT: um recém-chegado na conexão do R Excel.


Alguns meses atrás, um leitor me apontou essa nova maneira de conectar R e Excel. Eu não sei por quanto tempo isso aconteceu, mas nunca encontrei isso e eu nunca vi nenhuma postagem no blog ou artigo sobre isso. Então eu decidi escrever uma publicação, pois a ferramenta realmente vale a pena e, antes que alguém pergunte, eu não estou relacionado à empresa de nenhuma maneira.


BERT significa Basic Excel R Toolkit. É grátis (licenciado sob a GPL v2) e foi desenvolvido pela Structured Data LLC. No momento da redação, a versão atual do BERT é 1.07. Mais informações podem ser encontradas aqui. De uma perspectiva mais técnica, o BERT foi projetado para suportar a execução de funções R a partir de células da planilha do Excel. Em termos de Excel, ele é para escrever funções definidas pelo usuário (UDFs) em R.


Nesta publicação, não vou mostrar-lhe como o R e o Excel interagem através do BERT. Há muito bons tutoriais aqui, aqui e aqui. Em vez disso, quero mostrar-lhe como usei o BERT para criar uma torre de controle # 8222; para minha negociação.


Meus sinais comerciais são gerados usando uma longa lista de arquivos R, mas eu preciso da flexibilidade do Excel para exibir resultados de forma rápida e eficiente. Como mostrado acima, o BERT pode fazer isso por mim, mas eu também quero adaptar o aplicativo às minhas necessidades. Ao combinar o poder de XML, VBA, R e BERT, posso criar uma aplicação bem parecida e poderosa na forma de um arquivo Excel com código VBA mínimo. Em última análise, tenho um único arquivo do Excel reunindo todas as tarefas necessárias para gerenciar meu portfólio: atualização do banco de dados, geração de sinal, envio de ordens etc e # 8230; Minha abordagem poderia ser dividida nas 3 etapas abaixo:


Use XML para criar menus e botões definidos pelo usuário em um arquivo do Excel. Os menus e botões acima são essencialmente chamadas para funções VBA. Essas funções VBA estão envolvidas em torno de funções R definidas usando o BERT.


Com esta abordagem, posso manter uma distinção clara entre o núcleo do meu código mantido em R, SQL e Python e tudo usado para exibir e formatar resultados mantidos no Excel, VBA e amp; XML. Nas próximas seções, apresento o pré-requisito para desenvolver essa abordagem e um guia passo a passo que explica como o BERT poderia ser usado para simplesmente passar dados de R para Excel com um código mínimo de VBA.


1 & # 8211; Baixe e instale o BERT a partir deste link. Uma vez que a instalação foi concluída, você deve ter um novo menu de suplementos no Excel com os botões como mostrado abaixo. É assim que o BERT se materializou no Excel.


2 & # 8211; Baixe e instale o editor de UI personalizado: O Editor de UI personalizado permite criar menus e botões definidos pelo usuário na faixa de Excel. Um procedimento passo a passo está disponível aqui.


1 & # 8211; Código R: A função R abaixo é um código muito simples apenas para fins ilustrativos. Ele calcula e retorna os resíduos de uma regressão linear. Isto é o que queremos recuperar no Excel. Salve isso em um arquivo chamado myRCode. R (qualquer outro nome está bem) em um diretório de sua escolha.


2 & # 8211; functions. R em BERT: do Excel, selecione Add-Ins - & gt; Diretório inicial e abra o arquivo chamado functions. R. Neste arquivo cole o seguinte código. Certifique-se de inserir o caminho correto.


Isso está apenas fornecendo o arquivo RERT que você criou acima. Em seguida, salve e feche as funções do arquivo. R. Se você quiser fazer alguma alteração no arquivo R criado na etapa 1, você terá que recarregá-lo usando o botão BERT & # 8220; Recarregar arquivo de inicialização e # 8221; no menu Complementos no Excel.


3 & # 8211; No Excel: Crie e salve um arquivo chamado myFile. xslm (qualquer outro nome está bem). Este é um arquivo ativado por macro que você salva no diretório de sua escolha. Uma vez que o arquivo é salvo, feche-o.


4 & # 8211; Abra o arquivo criado acima no editor UI personalizado: depois que o arquivo estiver aberto, cole o código abaixo.


Você deve ter algo assim no editor XML:


Essencialmente, essa parte do código XML cria um menu adicional (RTrader), um novo grupo (Meu Grupo) e um botão definido pelo usuário (Novo botão) na faixa do Excel. Depois de concluir, abra myFile. xslm no Excel e feche o Editor de UI personalizado. Você deve ver algo assim.


5 & ​​# 8211; Abra o editor VBA: no myFile. xlsm insira um novo módulo. Cole o código abaixo no módulo recém-criado.


Isso apaga os resultados anteriores na planilha antes de lidar com novos.


6 & # 8211; Clique no botão Novo: Agora volte para a planilha e no menu do RTrader clique no & # 8220; Novo botão & # 8221; botão. Você deve ver algo como o que aparece abaixo.


O guia acima é uma versão muito básica do que pode ser alcançado usando o BERT, mas mostra como combinar o poder de várias ferramentas específicas para criar sua própria aplicação personalizada. Do meu ponto de vista, o interesse de tal abordagem é a capacidade de colar R e Excel, obviamente, mas também para incluir via XML (e lote) partes de código de Python, SQL e muito mais. Isso é exatamente o que eu precisava. Finalmente, ficaria curioso para saber se alguém tem alguma experiência com o BERT?


Estratégia de negociação: aproveitando ao máximo os dados da amostra.


Ao testar as estratégias de negociação, uma abordagem comum é dividir o conjunto de dados inicial em dados de amostra: a parte dos dados projetados para calibrar o modelo e fora dos dados de amostra: a parte dos dados utilizados para validar a calibração e garantir que o desempenho criado na amostra será refletido no mundo real. Como regra geral, cerca de 70% dos dados iniciais podem ser utilizados para calibração (isto é, na amostra) e 30% para validação (isto é, fora da amostra). Em seguida, uma comparação dos dados de entrada e saída da amostra ajuda a decidir se o modelo é robusto o suficiente. Esta publicação pretende dar um passo adiante e fornece um método estatístico para decidir se os dados fora da amostra estão alinhados com o que foi criado na amostra.


No gráfico abaixo, a área azul representa o desempenho fora da amostra para uma das minhas estratégias.


Uma simples inspeção visual revela um bom ajuste entre o desempenho dentro e fora da amostra, mas o grau de confiança que tenho nisso? Nesta fase não muito e esta é a questão. O que é realmente necessário é uma medida de similaridade entre os conjuntos de dados dentro e fora da amostra. Em termos estatísticos, isso pode ser traduzido como a probabilidade de os números de desempenho dentro e fora da amostra serem provenientes da mesma distribuição. Existe um teste estatístico não paramétrico que faz exatamente isso: o teste Kruskall-Wallis. Uma boa definição deste teste pode ser encontrada no R-Tutor & # 8220; Uma coleção de amostras de dados são independentes se elas vierem de populações não relacionadas e as amostras não se afetam. Usando o teste de Kruskal-Wallis, podemos decidir se as distribuições de população são idênticas sem assumir que elas sigam a distribuição normal. & # 8221; O benefício adicional deste teste não está assumindo uma distribuição normal.


Existe outros testes da mesma natureza que podem enquadrar-se nesse quadro. O teste de Mann-Whitney-Wilcoxon ou os testes de Kolmogorov-Smirnov adequam-se perfeitamente à estrutura descreve aqui no entanto, isso está além do escopo deste artigo para discutir os prós e contras de cada um desses testes. Uma boa descrição junto com exemplos R podem ser encontradas aqui.


Aqui, o código usado para gerar o gráfico acima e a análise:


No exemplo acima, o período de amostra é mais longo do que o período fora da amostra, portanto, criei aleatoriamente 1000 subconjuntos dos dados de amostra, cada um deles com o mesmo comprimento que os dados fora da amostra. Então eu testei cada um em subconjunto de amostra contra os dados fora da amostra e gravei os valores p. Este processo não cria um único valor de p para o teste de Kruskall-Wallis, mas uma distribuição que torna a análise mais robusta. Neste exemplo, a média dos valores de p é bem acima de zero (0.478) indicando que a hipótese nula deve ser aceita: existem fortes evidências de que os dados dentro e fora da amostra são provenientes da mesma distribuição.


Como de costume, o que é apresentado nesta publicação é um exemplo de brinquedo que apenas arranha a superfície do problema e deve ser adaptado às necessidades individuais. No entanto, acho que propõe um quadro estatístico interessante e racional para avaliar os resultados da amostra.


Esta publicação é inspirada nos dois artigos seguintes:


Vigier Alexandre, Chmil Swann (2007), "Efeitos de várias funções de otimização sobre o desempenho da amostra de estratégias de negociação desenvolvidas genéticamente", Conferência de mercados financeiros de previsão.


Vigier Alexandre, Chmil Swann (2018), "Um processo de otimização para melhorar dentro / fora da consistência da amostra, um caso do mercado de ações", JP Morgan Cazenove Equity Quantitative Conference, Londres, outubro de 2018.


Apresentando fidlr: FInancial Data LoadeR.


fidlr é um complemento do RStudio projetado para simplificar o processo de download de dados financeiros de vários provedores. Esta versão inicial é um invólucro em torno da função getSymbols no pacote quantmod e apenas o Yahoo, Google, FRED e Oanda são suportados. Provavelmente vou adicionar funcionalidades ao longo do tempo. Como de costume com essas coisas apenas um lembrete amável: & # 8220; O SOFTWARE É FORNECIDO & # 8220; COMO ESTÁ & # 8221 ;, SEM GARANTIA DE QUALQUER TIPO & # 8230; & # 8221;


Como instalar e usar o fidlr?


Você pode obter o addin / pacote de seu repositório Github aqui (Eu vou registrá-lo em CRAN mais tarde) Instale o addin. Existe um excelente tutorial para instalar o RStudio Addins aqui. Uma vez que o addin está instalado, ele deve aparecer no menu Addin. Basta escolher fidlr no menu e uma janela como ilustrada abaixo deve aparecer. Escolha um fornecedor de dados no menu suspenso Origem. Selecione um intervalo de datas no menu Data Digite o símbolo que deseja baixar na caixa de texto do instrumento. Para baixar vários símbolos, basta inserir os símbolos separados por vírgulas. Use os botões de rádio para escolher se deseja baixar o instrumento em um arquivo csv ou no ambiente global. O arquivo csv será salvo no diretório de trabalho e haverá um arquivo csv por instrumento. Pressione Executar para obter os dados ou Fechar para fechar o addin.


Mensagens de erro e avisos são tratados pelos pacotes subjacentes (quantmod e Shiny) e podem ser lidos a partir do console.


Esta é uma primeira versão do projeto, então não espere perfeição, mas espero que melhore com o tempo. Informe qualquer comentário, sugestão, erro, etc. & # 8230; para: thertrader @ gmail.


Mantendo um banco de dados de arquivos de preços em R.


Fazer pesquisas quantitativas implica uma grande quantidade de dados crunching e um precisa de dados limpos e confiáveis ​​para conseguir isso. O que é realmente necessário é a limpeza de dados facilmente acessíveis (mesmo sem conexão à internet). A maneira mais eficiente de fazer isso por mim tem sido manter um conjunto de arquivos csv. Obviamente, esse processo pode ser tratado de várias maneiras, mas eu encontrei horas extras muito eficientes e simples para manter um diretório onde eu armazeno e atualize arquivos csv. Eu tenho um arquivo csv por instrumento e cada arquivo é nomeado após o instrumento que ele contém. A razão pela qual eu faço isso é dupla: primeiro, eu não quero baixar dados (preço) do Yahoo, Google etc e # 8230; Toda vez que eu quero testar uma nova ideia, mas mais importante, uma vez que eu identifiquei e corrigi um problema, não quero ter que fazer isso novamente na próxima vez que eu precisar do mesmo instrumento. Simples, mas muito eficiente até agora. O processo está resumido no quadro abaixo.


Em tudo o que se segue, suponho que os dados sejam provenientes do Yahoo. O código terá que ser alterado para dados do Google, Quandl etc e # 8230; Além disso, apresento o processo de atualização dos dados diários de preços. A configuração será diferente para dados de freqüência mais alta e outro tipo de conjunto de dados (ou seja, diferente dos preços).


1 & # 8211; Transferência inicial de dados (listOfInstruments. R & amp; historicalData. R)


O arquivo fileOfInstruments. R é um arquivo contendo apenas a lista de todos os instrumentos.


Se um instrumento não é parte da minha lista (ou seja, nenhum arquivo csv na minha pasta de dados) ou se você fizer isso pela primeira vez que você precisa baixar o conjunto de dados históricos inicial. O exemplo abaixo baixa um conjunto de preços diários dos ETFs do Yahoo Finance de volta para janeiro de 2000 e armazena os dados em um arquivo csv.


2 & # 8211; Atualizar dados existentes (updateData. R)


O código abaixo começa a partir de arquivos existentes na pasta dedicada e atualiza todos eles um após o outro. Costumo executar esse processo todos os dias, exceto quando eu estiver no feriado. Para adicionar um novo instrumento, basta executar o passo 1 acima para este instrumento sozinho.


3 & # 8211; Crie um arquivo em lote (updateDailyPrices. bat)


Outra parte importante do trabalho é criar um arquivo em lote que automatiza o processo de atualização acima (I & # 8217; m um usuário do Windows). Isso evita abrir o R ​​/ RStudio e executar o código a partir daí. O código abaixo é colocado em um arquivo. bat (o caminho deve ser alterado com a configuração do leitor). Observe que eu adicionei um arquivo de saída (updateLog. txt) para rastrear a execução.


O processo acima é extremamente simples porque ele apenas descreve como atualizar os dados de preços diários. Eu já usei isso por um tempo e tem funcionado muito bem para mim até agora. Para dados mais avançados e / ou frequências mais elevadas, as coisas podem ficar muito mais complicadas.


Como de costume, todos os comentários são bem-vindos.


Avaliação do fator na gestão quantitativa da carteira.


Quando se trata de gerenciar um portfólio de ações versus um benchmark, o problema é muito diferente de definir uma estratégia de retorno absoluto. No primeiro, é necessário manter mais ações do que no final, onde nenhum estoque pode ser realizado se não houver uma oportunidade suficiente. A razão para isso é o erro de rastreamento. Isso é definido como o desvio padrão do retorno da carteira menos o retorno do benchmark. Menos estoques são mantidos em comparação com um benchmark quanto maior o erro de rastreamento (por exemplo, maior risco).


A análise que se segue é amplamente inspirada no livro # 8220; Gerenciamento de portfólio ativo # 8221; por Grinold & amp; Kahn. Esta é a Bíblia para qualquer pessoa interessada em administrar um portfólio em relação a um benchmark. Eu encorajo fortemente qualquer pessoa interessada no tópico a ler o livro desde o início até o fim. É muito bem escrito e estabelece as bases do gerenciamento sistemático de portfólio ativo (não tenho afiliação ao editor ou aos autores).


Aqui, estamos tentando classificar com a maior precisão possível as ações no universo de investimento em uma base de retorno para a frente. Muitas pessoas criaram muitas ferramentas e inúmeras variantes dessas ferramentas foram desenvolvidas para conseguir isso. Nesta publicação, foco em duas métricas simples e amplamente utilizadas: Coeficiente de Informações (IC) e Quantiles Return (QR).


O IC fornece uma visão geral da capacidade de previsão de fator. Mais precisamente, esta é uma medida de quão bem o fator classifica os estoques em uma base de retorno para a frente. O IC é definido como a correlação de classificação (ρ) entre a métrica (por exemplo, fator) e o retorno direto. Em termos estatísticos, a correlação de classificação é uma medida não paramétrica de dependência entre duas variáveis. Para uma amostra de tamanho n, as n pontuações brutas são convertidas em classificações e ρ é calculado a partir de:


O horizonte para o retorno para a frente deve ser definido pelo analista e é uma função da rotação da estratégia e da decaimento alfa (este tem sido objeto de pesquisa extensiva). Obviamente, os ICs devem ser o mais alto possível em termos absolutos.


Para o leitor afiado, no livro de Grinold & amp; Kahn é dada uma fórmula que liga Relação de informação (IR) e IC: com a amplitude sendo o número de apostas independentes (trades). Esta fórmula é conhecida como a lei fundamental do gerenciamento ativo. O problema é que muitas vezes, definir a amplitude com precisão não é tão fácil quanto parece.


Para ter uma estimativa mais precisa do poder preditivo do fator, é necessário avançar um pouco e agrupar os estoques por quantile de fatores de fator, em seguida, analise o retorno direto médio (ou qualquer outra métrica de tendência central) de cada um desses quantiles. A utilidade desta ferramenta é direta. Um fator pode ter um bom IC, mas seu poder preditivo pode ser limitado a um pequeno número de ações. Isso não é bom, pois um gerente de portfólio terá que escolher ações dentro do universo inteiro para atender a sua restrição de erro de rastreamento. O bom retorno dos quantiles é caracterizado por uma relação monótona entre os quantiles individuais e os retornos diretos.


Todas as ações no índice S & P500 (no momento da redação). Obviamente, há um viés de navio de sobrevivência: a lista de ações no índice mudou significativamente entre o início e o final do período de amostragem, porém é bom o suficiente para fins de ilustração apenas.


O código abaixo baixa os preços das ações individuais no S & P500 entre janeiro de 2005 e hoje (leva um tempo) e transforma os preços brutos em retorno nos últimos 12 meses e no último mês. O primeiro é o nosso fator, o último será usado como a medida de retorno direto.


Abaixo está o código para calcular Coeficiente de Informações e Quantiles Return. Note-se que usei quintios neste exemplo, mas qualquer outro método de agrupamento (terciles, deciles, etc. & # 8230;) pode ser usado. Depende realmente do tamanho da amostra, do que você deseja capturar e da sua vontade de ter uma visão ampla ou foco nas caudas de distribuição. Para estimar os retornos dentro de cada quintil, a mediana foi utilizada como estimador de tendência central. Esta medida é muito menos sensível a valores aberrantes do que a média aritmética.


E, finalmente, o código para produzir o gráfico de retorno Quantiles.


3 & # 8211; Como explorar as informações acima?


No gráfico acima Q1 é mais baixo após 12 meses de retorno e Q5 mais alto. Existe um aumento quase monotônico no retorno de quantiles entre Q1 e Q5, o que indica claramente que os estoques que caíram em Q5 superam aqueles que caíram em Q1 em cerca de 1% por mês. Isso é muito significativo e poderoso para um fator tão simples (não é realmente uma surpresa e # 8230;). Portanto, há maiores chances de vencer o índice por sobreponderar os estoques caindo no Q5 e subponderar aqueles que caem no Q1 em relação ao benchmark.


Um IC de 0,0206 pode não significar um ótimo negócio em si, mas é significativamente diferente de 0 e indica um bom poder preditivo dos últimos 12 meses em geral. Os testes de significância formal podem ser avaliados, mas isso está além do escopo deste artigo.


A estrutura acima é excelente para avaliar a qualidade do fator de investimento, porém existem várias limitações práticas que devem ser abordadas para a implementação da vida real:


Reequilíbrio: na descrição acima, considerou que, no final de cada mês, o portfólio é totalmente reequilibrado. Isso significa que todas as ações que caem no primeiro trimestre estão abaixo do peso e todas as ações que caem no Q5 estão com sobrepeso em relação ao benchmark. Isso nem sempre é possível por razões práticas: alguns estoques podem ser excluídos do universo de investimento, existem restrições ao peso da indústria ou do setor, existem restrições sobre o roteamento etc & # 8230; Custos de transação: isso não foi levado em consideração na análise acima e isso é um travão grave para a implementação da vida real. As considerações sobre o volume de negócios geralmente são implementadas na vida real sob uma forma de penalidade na qualidade dos fatores. Coeficiente de transferência: esta é uma extensão da lei fundamental da gestão ativa e relaxa a suposição do modelo de Grinold & # 8217; que os gerentes não enfrentam restrições que impedem que eles traduzam seus insights de investimentos diretamente em apostas de portfólio.


E, finalmente, estou impressionado com o que pode ser alcançado em menos de 80 linhas de código com R & # 8230;


Como de costume, todos os comentários são bem-vindos.


Risco como uma Variação de Sobrevivência & # 8220; # 8221;


Eu me deparo com muitas estratégias na blogosfera, algumas são interessantes, algumas são um completo desperdício de tempo, mas a maioria compartilha uma característica comum: as pessoas que desenvolvem essas estratégias fazem seu dever de casa em termos de análise do retorno, mas muito menos atenção é paga ao lado do risco é natureza aleatória. Eu comentei um comentário como "# 8220; uma redução de 25% em 2018, mas excelente retorno em geral" # 8221 ;. Bem, minha aposta é que ninguém na terra vai deixar você experimentar uma perda de 25% com seu dinheiro (a menos que acordos especiais estejam em vigor). No fundo hedge, as pessoas do mundo têm uma tolerância muito baixa para redução. Geralmente, como um novo comerciante em um hedge fund, assumindo que você não possui reputação, você tem muito pouco tempo para provar a si mesmo. Você deve ganhar dinheiro a partir do dia 1 e continuar fazendo isso por alguns meses antes de ganhar um pouco de credibilidade.


Diga primeiro que você tenha um mau começo e você perca dinheiro no início. Com uma redução de 10%, você certamente estará fora, mas mesmo com uma redução de 5%, as chances de ver sua alocação reduzida são muito altas. Isso tem implicações significativas em suas estratégias. Deixe assumir que, se você perder 5%, sua alocação é dividida por 2 e você retorna à sua alocação inicial somente quando você passou a marca de água alta novamente (por exemplo, a retirada volta para 0). No gráfico abaixo, simulei a experiência com uma das minhas estratégias.


Você começa a operar em 1º de junho de 2003 e tudo corre bem até 23 de julho de 2003, onde sua curva de retirada atinge o limite de -5% (** 1 **). Sua alocação é reduzida em 50% e você não recupera o nível da marca de água até o 05 de dezembro de 2003 (** 3 **). Se você manteve a alocação inalterada, o nível da marca de água alta teria sido cruzado em 28 de outubro de 2003 (** 2 **) e, no final do ano, você teria feito mais dinheiro.


Mas vamos empurrar o raciocínio um pouco mais. Ainda no gráfico acima, suponha que você tenha realmente uma azarada e você começa a operar até meados de junho de 2003. Você atingiu o limite de retirada de 10% no início de agosto e você provavelmente estará fora do jogo. Você teria começado no início de agosto sua alocação não teria sido cortada e você acabou fazendo um bom ano em apenas 4 meses completos de negociação. Nesses dois exemplos, nada mudou, mas sua data de início e # 8230 ;.


O sucesso comercial de qualquer indivíduo tem alguma forma de dependência do caminho e não há muito que você possa fazer sobre isso. No entanto, você pode controlar o tamanho da retirada de uma estratégia e isso deve ser abordado com muito cuidado. Um portfólio deve ser diversificado em todas as dimensões possíveis: classes de ativos, estratégias de investimento, freqüências de negociação, etc. & # 8230 ;. A partir dessa perspectiva, o risco é a sua variável de sobrevivência # 8221 ;. Se for gerenciado adequadamente, você tem a chance de permanecer no jogo o suficiente para perceber o potencial de sua estratégia. Caso contrário, você ganhou o mês que vem para ver o que acontece.


Como de costume, todos os comentários são bem-vindos.


Uma aplicação simples e brilhante para monitorar estratégias de negociação e # 8211; Parte II.


Este é um seguimento na minha publicação anterior & # 8220; Uma aplicação simples brilhante para monitorar estratégias de negociação & # 8220 ;. Eu adicionei algumas melhorias que tornam o aplicativo um pouco melhor (pelo menos para mim!). Abaixo está a lista de novos recursos:


Um exemplo de arquivo. csv (aquele que contém os dados brutos) A & # 8220; EndDate & # 8221; drop down box permitindo especificar o final do período. A & # 8220; Risk & # 8221; página contendo uma análise de VaR e um gráfico de pior desempenho em vários horizontes A & # 8220; How To & # 8221; página explicando como usar e adaptar o aplicativo às necessidades individuais.


Eu também fiz o aplicativo totalmente independente. Agora está disponível como um produto autônomo e não há necessidade de ter o R ​​/ RStudio instalado em seu computador para executá-lo. Pode ser baixado da conta da unidade R Trader Google. Esta versão do aplicativo corre usando o R portátil e o Chrome portátil. Para o leitor afiado, este link explica em detalhes completos como empacotar um aplicativo brilhante em um aplicativo de área de trabalho (somente Windows por agora).


1 & # 8211; Como instalar & amp; Execute o aplicativo no seu computador.


Crie uma pasta específica Descompacte a contém do arquivo. zip na nova pasta. Altere os caminhos no arquivo runShinyApp para combinar suas configurações Para executar o aplicativo, você apenas iniciou o arquivo run. vbs. Eu também incluí um ícone (RTraderTradingApp. ico) se você quiser criar um atalho na sua área de trabalho.


ui. R: controla o layout e a aparência do servidor do aplicativo. R: contém as instruções necessárias para criar o aplicativo. Você pode carregar tantas estratégias quanto desejar, desde que o arquivo csv correspondente tenha o formato certo (veja abaixo). ShinyStrategyGeneral. R: carrega os pacotes necessários e lança o aplicativo.


3 & # 8211; Como adicionar uma estratégia de negociação?


Create the corresponding. csv file in the right directory Create a new input in the data reactive function (within the server. R file) Add an extra element to the choice parameter in the first selectInput in the sidebarPanel (within the ui. R file). The element’s name should match the name of the new input above.


Remove the input in the data reactive function corresponding to the strategy you want to remove (within the server. R file) Remove the element in the choice parameter in the first selectInput in the sidebarPanel corresponding to the strategy you want to remove (within the ui. R file).


Please feel free to get in touch should you have any suggestion.


A Simple Shiny App for Monitoring Trading Strategies.


In a previous post I showed how to use R, Knitr and LaTeX to build a template strategy report. This post goes a step further by making the analysis interactive. Besides the interactivity, the Shiny App also solves two problems :


I can now access all my trading strategies from a single point regardless of the instrument traded. Coupled with the Shiny interactivity, it allows easier comparison. I can focus on a specific time period.


The code used in this post is available on a Gist/Github repository. There are essentially 3 files.


ui. R : controls the layout and appearance of the app. server. R : contains the instructions needed to build the app. It loads the data and format it. There is one csv file per strategy each containing at least two columns: date and return with the following format: (“2018-12-22″,”0.04%” ). You can load as much strategies as you want as long as they have the right format. shinyStrategyG eneral. R : loads the required packages and launches the app.


This app is probably far from perfect and I will certainly improve it in the future. Feel free to get in touch should you have any suggestion.


A big thank you to the RStudio/Shiny team for such a great tool.


Usando Algoritmos Genéticos em Negociação Quantitativa.


A questão que sempre deve ser feita ao usar indicadores técnicos é o que seria um critério objetivo para selecionar os parâmetros dos indicadores (por exemplo, por que usar um RSI de 14 dias em vez de 15 ou 20 dias?). Os algoritmos genéticos (GA) são ferramentas adequadas para responder a essa pergunta. Nesta publicação, eu mostro como configurar o problema em R. Antes de prosseguir o lembrete habitual: O que eu apresento nesta publicação é apenas um exemplo de brinquedo e não um convite para investir. Também não é uma estratégia concluída, mas uma idéia de pesquisa que precisa ser pesquisada, desenvolvida e adaptada às necessidades individuais.


O que são algoritmos genéticos?


A melhor descrição do GA que encontrei vem da Cybernatic Trading, um livro de Murray A. Ruggiero. Algoritmos genéticos foram inventados por John Holland em meados de 1970 para resolver problemas difíceis de otimização. Este método usa a seleção natural, a sobrevivência do mais forte # 8221 ;. O processo geral segue os passos abaixo:


Codifique o problema nos cromossomos Usando a codificação, desenvolva uma função de aptidão para uso na avaliação do valor de cada cromossomo na resolução de um determinado problema. Inicialize uma população de cromossomos. Avalie cada cromossomo na população. Crie novos cromossomos acoplando dois cromossomos. Isso é feito por muting e recombinação de dois pais para formar dois filhos (os pais são selecionados aleatoriamente, mas tendenciosos por sua aptidão) Avalie o novo cromossomo Exclua um membro da população que seja menos adequado do que o novo cromossomo e insira o novo cromossomo na população . Se o critério de parada for atingido (número máximo de gerações, o critério de aptidão é bom o suficiente e # 8230;), então, retorne o melhor cromossomo, alternativamente, vá para o passo 4.


A partir de uma perspectiva comercial, a GA é muito útil porque são boas em lidar com problemas altamente não-lineares. No entanto, eles exibem algumas características desagradáveis ​​que merecem destaque:


Sobreposição: Este é o principal problema e é para o analista configurar o problema de forma a minimizar esse risco. Tempo de computação: se o problema não for definido corretamente, pode ser extremamente longo para alcançar uma solução decente e a complexidade aumenta exponencialmente com o número de variáveis. Daí a necessidade de selecionar cuidadosamente os parâmetros.


Existem vários pacotes R que lidam com GA, eu escolhi usar o mais comum: rgenoud.


Os preços de fechamento diários para a maioria dos ETFs líquidos de finanças do Yahoo voltam a janeiro de 2000. O período de amostragem vai de janeiro de 2000 a dezembro de 2018. O período fora da amostra começa em janeiro de 2018.


A lógica é a seguinte: a função de aptidão é otimizada durante o período de amostra para obter um conjunto de parâmetros ótimos para os indicadores técnicos selecionados. O desempenho desses indicadores é então avaliado no período fora da amostra. Mas, antes disso, os indicadores técnicos devem ser selecionados.


O mercado de ações exibe duas características principais que são familiares para qualquer pessoa com alguma experiência comercial. Momento a longo prazo e reversão de curto prazo. Essas características podem ser traduzidas em termos de indicadores técnicos por: médias móveis cruzadas e RSI. Isso representa um conjunto de 4 parâmetros: períodos de retorno para médias móveis a longo e curto prazo, período de retorno para RSI e RSI. Os conjuntos de parâmetros são os cromossomos. O outro elemento-chave é a função de fitness. Podemos querer usar algo como: retorno máximo ou taxa Sharpe ou redução média mínima. No que se segue, escolhi maximizar a proporção de Sharpe.


A implementação do R é um conjunto de 3 funções:


fitnessFunction: define a função de fitness (por exemplo, taxa máxima de Sharpe) para ser usado no comércio de motores GA: estatísticas de negociação para os períodos de entrada e saída de amostra para fins de comparação genoud: o mecanismo GA do pacote rgenoud.


A função genoud é bastante complexa, mas eu não vou explicar o que cada parâmetro significa que eu quero manter esta publicação curta (e a documentação é realmente boa).


Na tabela abaixo, apresento para cada instrumento os parâmetros ótimos (período de retorno de RSI, limite de RSI, Média de Mudança de Curto Prazo e Média de Mudança de Longo Prazo), juntamente com as estatísticas de negociação dentro e fora da amostra.


Antes de comentar os resultados acima, quero explicar alguns pontos importantes. Para combinar a lógica definida acima, limitei os parâmetros para garantir que o período de look-back para a média móvel a longo prazo seja sempre mais longo que a média móvel mais curta. Eu também obriguei o otimizador a escolher apenas as soluções com mais de 50 trades no período de amostra (por exemplo, significância estatística).


Em geral, os resultados fora da amostra estão longe de serem impressionantes. Os retornos são baixos, mesmo que o número de negócios seja pequeno para tornar o resultado realmente significativo. No entanto, existe uma perda significativa de eficiência entre o período de entrada e saída do Japão (EWJ), o que muito provavelmente significa uma sobreposição.


Esta publicação destina-se a fornecer ao leitor as ferramentas para usar adequadamente o GA em uma estrutura de negociação quantitativa. Mais uma vez, é apenas um exemplo que precisa ser aperfeiçoado. Algumas possíveis melhorias a serem exploradas seriam:


Função de fitness: maximizar a relação Sharpe é muito simplista. A & # 8220; smarter & # 8221; A função certamente melhoraria o padrão de estatísticas comerciais de amostra: tentamos capturar um padrão muito direto. Uma pesquisa de padrão mais detalhada é definitivamente necessária. Otimização: há muitas maneiras de melhorar a forma como a otimização é conduzida. Isso melhoraria a velocidade de computação e a racionalidade dos resultados.


O código usado nesta publicação está disponível em um repositório Gist.


QuantStart.


Junte-se ao portal de membros privados da Quantcademy que atende à comunidade de comerciantes de varejo de varejo em rápido crescimento. Você encontrará um grupo bem informado de mentalistas quant pronto para responder suas perguntas comerciais mais importantes.


Confira meu ebook sobre o comércio de quant, onde eu ensino você como criar estratégias de negociação sistemáticas lucrativas com ferramentas Python, desde o início.


Dê uma olhada no meu novo ebook sobre estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas bayesianas, com Python e R.


Por Michael Halls-Moore em 26 de março de 2018.


Neste artigo, vou apresentá-lo a alguns dos conceitos básicos que acompanham um sistema de negociação quantitativa de ponta a ponta. Esta postagem esperará servir dois públicos. O primeiro será indivíduos tentando obter um emprego em um fundo como um comerciante quantitativo. O segundo será indivíduos que desejam tentar configurar seu próprio negócio de negociação algorítmica "de varejo".


Negociação quantitativa é uma área extremamente sofisticada de financiamento quantitativo. 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 exige uma ampla experiência em programação, pelo menos em uma linguagem como MATLAB, R ou Python. No entanto, à medida que a frequência comercial da estratégia aumenta, os aspectos tecnológicos tornam-se muito mais relevantes. Assim, ser familiar com C / C ++ será de suma importância.


Um sistema de comércio quantitativo consiste em quatro componentes principais:


Estratégia Identificação - Encontrar uma estratégia, explorar uma vantagem e decidir sobre a freqüência comercial Estratégia Backtesting - Obter dados, analisar o desempenho da estratégia e remover os viés Sistema de Execução - Vinculação a uma corretora, automatizando a negociação e minimizando os custos de transação Gerenciamento de Riscos - Alocação de capital ideal " tamanho da aposta "/ critério Kelly e psicologia comercial.


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


Identificação de Estratégia.


Todos os processos de negociação quantitativos começam com um período inicial de pesquisa. Este processo de pesquisa abrange a busca de uma estratégia, considerando se a estratégia se encaixa em um portfólio de outras estratégias que você pode estar executando, obtendo todos os dados necessários para testar a estratégia e tentar otimizar a estratégia para maiores retornos e / ou menor risco. Você precisará avaliar seus próprios requisitos de capital se estiver executando a estratégia como um comerciante "varejista" e como qualquer custo de transação afetará a estratégia.


Contrariamente à crença popular, é realmente bastante direto encontrar estratégias lucrativas através de várias fontes públicas. Os acadêmicos publicam periodicamente resultados teóricos de negociação (embora na maioria dos custos brutos de transação). Os blogs de finanças quantitativas discutirão estratégias em detalhes. As revistas comerciais descreverão algumas das estratégias empregadas pelos fundos.


Você pode questionar por que indivíduos e empresas estão interessados ​​em discutir suas estratégias rentáveis, especialmente quando sabem que outros "aglomerando o comércio" podem impedir a estratégia de trabalhar no longo prazo. A razão está no fato de que eles geralmente não discutem 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 rentável. 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 idéias de estratégia:


Muitas das estratégias que você olhará cairão nas categorias de reversão média e tendência / impulso. Uma estratégia de reversão média é aquela que tenta explorar o fato de que existe um termo de longo prazo em uma "série de preços" (como a disseminação entre dois ativos correlacionados) e que os desvios de curto prazo desse significado eventualmente reverterão. Uma estratégia de impulso tenta explorar a psicologia dos investidores e a grande estrutura do fundo ao "engatar" uma tendência de mercado, que pode reunir impulso em uma direção e seguir a tendência até reverter.


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


Uma vez que uma estratégia, ou conjunto de estratégias, foi identificado, agora precisa ser testado quanto à lucratividade em dados históricos. Esse é o domínio do backtesting.


Teste de estratégia.


O objetivo do backtesting é fornecer evidências de que a estratégia identificada através do processo acima é rentável quando aplicado a dados históricos e fora da amostra. Isso define a expectativa de como a estratégia será realizada no "mundo real". No entanto, o backtesting NÃO é uma garantia de sucesso, por vários motivos. É talvez a área mais sutil de negociação quantitativa, uma vez que implica numerosos preconceitos, que devem ser cuidadosamente considerados e eliminados o máximo possível. Discutiremos os tipos comuns de viés, incluindo viés avançado, viés de sobrevivência e viés de otimização (também conhecido como viés de dados). Outras áreas de importância no backtesting incluem disponibilidade e limpeza de dados históricos, contribuindo com custos de transação realistas e decidindo uma plataforma robusta de backtesting. Discutiremos os custos de transação ainda mais na seção Sistemas de Execução abaixo.


Uma vez que uma estratégia foi 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. Os seus custos geralmente variam com a qualidade, a profundidade e a pontualidade dos dados. O ponto de partida tradicional para os comerciantes quantos iniciais (pelo menos no nível de varejo) é usar o conjunto de dados gratuitos da Yahoo Finance. Eu não vou me aprofundar em prestadores muito aqui, e 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 divisões de ações:


A precisão pertence à qualidade geral dos dados - quer contenha quaisquer erros. Os erros às vezes podem ser fáceis de identificar, como, por exemplo, com um filtro de espiga, que irá escolher "picos" incorretos em dados da série temporal e corrigi-los. Em outras ocasiões, eles 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 geralmente é 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 negociados. No caso de ações, isso significa ações de saída / falência. Este viés significa que qualquer estratégia de negociação de ações testada em tal conjunto de dados provavelmente funcionará 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 de função gradual no preço bruto, que não deve ser incluído no cálculo dos retornos do preço. Ajustes para dividendos e divisões de estoque são os culpados comuns. Um processo conhecido como ajuste de volta é necessário para ser realizado em cada uma dessas ações. É preciso ter muito cuidado para não confundir um estoque de divisão com um verdadeiro ajuste de retorno. Muitos comerciantes foram pegos por uma ação corporativa!


Para realizar um procedimento de backtest, é necessário usar uma plataforma de software. Você tem a opção entre o software de back-test dedicado, como o 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 ++. Não vou demorar muito na Tradestation (ou similar), no Excel ou no MATLAB, pois acredito na criação de uma pilha de tecnologia interna completa (por razões descritas abaixo). Um dos benefícios de o fazer é que o software de backtest e o sistema de execução podem ser bem integrados, mesmo com estratégias estatísticas extremamente avançadas. Para as estratégias HFT em particular, é essencial usar uma implementação personalizada.


Quando testar um sistema, é preciso quantificar o desempenho. As métricas "padrão da indústria" para estratégias quantitativas são a redução máxima e a Ratia Sharpe. A retirada máxima caracteriza a maior queda de pico a calha na curva de equidade da conta em um determinado período de tempo (geralmente anual). Isso geralmente é citado como uma porcentagem. As estratégias de LFT tendem a ter maiores disparidades do que as estratégias de HFT, devido a uma série de fatores estatísticos. Um backtest histórico mostrará a retirada máxima do passado, que é um bom guia para o futuro desempenho de redução da estratégia. A segunda medida é a Ratia de Sharpe, que é definida heuristicamente como a média dos retornos em excesso divididos pelo desvio padrão desses retornos em excesso. Aqui, os retornos excedentes referem-se ao retorno da estratégia acima de um benchmark pré-determinado, como o S & P500 ou um Tesouro de 3 meses. Observe que o retorno anualizado não é uma medida usualmente utilizada, pois não leva em consideração a volatilidade da estratégia (ao contrário do Ratio Sharpe).


Uma vez que uma estratégia foi testada de novo e é considerado livre de preconceitos (na medida em que é possível!), Com um bom Sharpe e reduções minimizadas, é hora de criar um sistema de execução.


Sistemas de Execução.


Um sistema de execução é o meio pelo qual a lista de negócios gerados pela estratégia é enviada e executada pelo corretor. Apesar do fato de que a geração de comércio pode ser semi - ou mesmo totalmente automatizada, o mecanismo de execução pode ser manual, semi-manual (ou seja, "um clique") ou totalmente automatizado. Para estratégias LFT, as técnicas manuais e semi-manuais são comuns. Para as estratégias HFT, é necessário criar um mecanismo de execução totalmente automatizado, que muitas vezes será estreitamente acoplado ao gerador comercial (devido à interdependência da estratégia e da tecnologia).


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


Existem muitas maneiras de se conectar a uma corretora. Eles variam de chamar seu corretor no telefone diretamente para uma interface de programação de aplicativos (API) de alto desempenho totalmente automatizada. O ideal é que você automatize a execução de seus negócios o máximo possível. Isso liberta você para se concentrar em pesquisas futuras, além de permitir que você execute várias estratégias ou mesmo estratégias de maior freqüência (na verdade, o HFT é essencialmente impossível sem execução automática). O software comum de backtesting descrito acima, como MATLAB, Excel e Tradestation são bons para estratégias mais baixas e mais simples. No entanto, 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 uma anedota, no fundo em que costumava trabalhar, tivemos um "loop de negociação" de 10 minutos, onde iremos baixar novos dados de mercado a cada 10 minutos e depois executar trades com base nessas informações no mesmo período. Isso estava usando um script Python otimizado. Para qualquer coisa que se aproxime de dados de minuto ou de segunda frequência, acredito que o C / C ++ seria mais ideal.


Em um fundo maior, muitas vezes não é o domínio do comerciante quant para otimizar a execução. No entanto, em lojas menores ou empresas HFT, os comerciantes são os executores e, portanto, um conjunto de habilidades muito mais amplo é muitas vezes desejável. Tenha 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 de econometria!


Outra questão importante que se enquadra na bandeira de execução é a redução de custos de transações. Geralmente, existem três componentes para os custos de transação: Comissões (ou impostos), que são as taxas cobradas pela corretora, a troca e a SEC (ou órgão regulador governamental similar); deslizamento, qual é a diferença entre o que você pretendia que seu pedido fosse preenchido em relação ao que estava preenchido; spread, que é a diferença entre o preço de oferta / oferta da garantia negociada. Observe que o spread NÃO é constante e depende da liquidez atual (isto é, disponibilidade de ordens de compra / venda) no mercado.


Os custos de transação podem fazer a diferença entre uma estratégia extremamente rentável com uma boa relação Sharpe e uma estratégia extremamente rentável com uma relação 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á de acesso a dados de troca histórica, que incluirão dados de marca para preços de lances / pedidos. Equipes completas de quants dedicam-se a otimizar a execução nos fundos maiores, por estas razões. Considere o cenário em que um fundo precisa descarregar uma quantidade substancial de negócios (dos quais os motivos para isso são muitos e variados!). Ao "despejar" tantas ações no mercado, elas comprimirão rapidamente o preço e não poderão obter uma execução ótima. Daí, os algoritmos que os pedidos de "gotejamento de alimentação" no mercado existem, embora o fundo corra o risco de derrapagem. Além disso, outras estratégias "presas" sobre essas necessidades e podem explorar as ineficiências. Este é o domínio da arbitragem da estrutura do fundo.


A questão principal final para os sistemas de execução diz respeito à divergência de desempenho da estratégia com o desempenho testado. Isso pode acontecer por vários motivos. Nós já discutimos o viés avançado e o viés de otimização em profundidade, ao considerar backtests. No entanto, algumas estratégias não facilitam a verificação desses preconceitos antes da implantação. Isso ocorre em HFT mais predominantemente. Pode haver erros no sistema de execução, bem como a própria estratégia de negociação que não aparecem em um backtest, mas DO show up live trading. O mercado pode estar sujeito a uma mudança de regime posterior à implantação de sua estratégia. Novos ambientes regulatórios, mudanças no sentimento dos investidores e fenômenos macroeconômicos podem levar a divergências quanto ao comportamento do mercado e, assim, a rentabilidade da sua estratégia.


Gerenciamento de riscos.


A peça final para o enigma de negociação quantitativa é o processo de gerenciamento de riscos. "Risco" inclui todos os vies anteriores que discutimos. Inclui o risco de tecnologia, como servidores co-localizados na troca de repente, desenvolvendo um mau funcionamento do disco rígido. Isso inclui o risco de corretagem, como o corretor se quebrando (não tão louco quanto parece, dado o susto recente com o MF Global!). Em suma, abrange quase tudo o que poderia interferir com a implementação da negociação, das quais existem muitas fontes. Livros inteiros são dedicados ao gerenciamento de riscos para estratégias quantitativas, então não tento elucidar todas as possíveis fontes de risco aqui.


O gerenciamento de riscos também abrange o que é conhecido como alocação ótima de capital, que é um ramo da teoria do portfólio. Este é o meio pelo qual o capital é alocado para um conjunto de estratégias diferentes e para os 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 Kelly. Como este é um artigo introdutório, não vou me deter no seu cálculo. O critério de Kelly faz alguns pressupostos sobre a natureza estatística dos retornos, que geralmente não são válidos nos mercados financeiros, então os comerciantes são geralmente conservadores quando se trata da implementação.


Outro componente chave do gerenciamento de riscos é lidar com o próprio perfil psicológico. Existem muitos viés cognitivos que podem se aproximar da negociação. Embora isso seja certamente menos problemático com o comércio algorítmico se a estratégia for deixada sozinha! Um viés comum é o da aversão à perda em que uma posição perdedora não será encerrada devido à dor de ter que perceber uma perda. Da mesma forma, os lucros podem ser tomados muito cedo porque o medo de perder um lucro já obtido pode ser muito grande. Outro viés comum é conhecido como viés de recência. Isso se manifesta quando os comerciantes colocam muita ênfase nos eventos recentes e não no longo prazo. Então, é claro, há o par clássico de viés emocional - medo e ganância. Estes podem, muitas vezes, levar a alavancagem insuficiente ou excessiva, o que pode causar explosão (ou seja, o patrimônio da conta em 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 já está ficando bastante longo! Livros e papéis inteiros foram escritos sobre questões que eu apenas dediquei uma ou duas sentenças. Por essa razão, antes de se candidatar a empregos quantitativos em bolsa de fundos, é necessário realizar uma quantidade significativa de estudo de base. No mínimo, você precisará de uma ampla experiência 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 final de freqüência mais alta, seu conjunto de habilidades é provável para incluir modificação do kernel do Linux, C / C ++, programação de montagem e otimização de latência da rede.


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


Apenas iniciando o comércio quantitativo?


3 razões para se inscrever para a lista de e-mails QuantStart:


1. Quant Trading Lessons.


Você terá acesso instantâneo a um curso de e-mail gratuito de 10 partes, repleto de sugestões e dicas para ajudá-lo a começar a negociação quantitativa!


2. Todo o conteúdo mais recente.


Todas as semanas, vou enviar-lhe um envoltório de todas as atividades no QuantStart para que você nunca mais perca uma postagem novamente.


Real, dicas de negociação viáveis, sem tonturas.


S T R E E T DE W A L L S.


Tipos de Estratégias Quantitativas de Negociação de Fundos de Hedge.


Quant Hedge Funds vem em todas as formas e tamanhos - de pequenas empresas com empregados que numeram na adolescência, para fundos internacionais com presença em três continentes. Uma base de ativos maiores não se correlaciona necessariamente com um número maior de funcionários; Em vez disso, a equipe do Hedge Fund é provavelmente uma função do número de estratégias que emprega. Quant Hedge Funds pode se concentrar em ações, renda fixa ou outras classes de ativos, embora raramente um Quant Hedge Fund esteja envolvido em uma estratégia de longo prazo de seleção de ações individualmente, sem cobertura. Muitos CTAs ou "Consultores de Negociação de Cidade" também seriam considerados Quant Hedge Funds, tendo em vista o seu papel na compra ou venda de contratos de futuros, opções em futuros ou contratos de câmbio off-exchange de varejo (ou aconselhando outros a trocar essas commodities).


A tabela a seguir fornece mais detalhes sobre diferentes tipos de estratégias de investimento em Hedge Funds; é importante notar que as versões quantitativas e não quantitativas de quase todos esses estilos de investimento Hedge Fund podem ser construídas:


Relative Value Trading vs. Directional Trading.


As abordagens de negociação / investimento Quantitative Hedge Fund se enquadram em uma das duas categorias: as que utilizam as estratégias de Valor Relativo e aquelas cujas estratégias serão caracterizadas como Direcional. Ambas as estratégias utilizam fortemente modelos de computador e software estatístico.


As estratégias de Relative Value tentam capitalizar relacionamentos de preços previsíveis (muitas vezes - relacionamentos de retorno) entre múltiplos ativos (por exemplo, a relação entre os rendimentos de curto prazo do Tesouro dos EUA vs. os rendimentos de longo prazo do Tesouro dos EUA ou a relação no implícito volatilidade em dois contratos de opção diferentes). As estratégias direcionais, entretanto, normalmente são baseadas em caminhos baseados em tendências ou outros padrões, sugestivos de impulso ascendente ou descendente para uma garantia ou conjunto de valores mobiliários (por exemplo, apostando que os rendimentos de longo prazo dos títulos do Tesouro dos EUA aumentarão ou que a volatilidade implícita declínio).


Relative Value Strategies.


Os exemplos comuns de estratégias de Relativo de Valor incluem a colocação de apostas relativas (ou seja, comprar um bem e vender outro) em ativos cujos preços estão intimamente vinculados:


Títulos governamentais de dois países diferentes Títulos do governo de dois prazos diferentes até o vencimento Títulos de obrigações de capital corporativo versus títulos hipotecários O diferencial de volatilidade implícita entre dois derivativos. Preços de ações versus preços de títulos para um emissor de títulos corporativos. Diferenças de rendimento de obrigações de capital vs. Swap de inadimplência de crédito (CDS ) se espalha.


A lista de estratégias de valor relativo potencial é muito longa; acima são apenas alguns exemplos. Existem três estratégias de Valor Relativo muito importantes e comummente utilizadas para se conscientizar, no entanto:


Arbitragem estatística: negociação de uma tendência de reversão média dos valores de cestas semelhantes de ativos com base em relações comerciais históricas. Uma forma comum de Arbitragem Estatística, ou "Arat Stat", "trading", é conhecida como Equity Market Neutral trading. Nesta estratégia, duas cestas de ações são escolhidas (uma "cesta longa" e uma "cesta curta"), com o objetivo de que os pesos relativos das duas cestas deixem o fundo sem exposição líquida a vários fatores de risco (indústria, geografia, setor, etc. .) Stat Arb também poderia envolver a negociação de um índice contra um ETF similarmente combinado ou um índice versus estoque de uma única empresa. Arbitragem convertível: compra de emissões de obrigações convertíveis por uma empresa e simultaneamente venda das ações ordinárias da mesma empresa, com a idéia de que, se o estoque de uma determinada empresa declinar, o lucro da posição curta compensará mais do que qualquer perda na posição de títulos convertíveis, dado o valor do vínculo convertível como instrumento de renda fixa. De igual modo, em qualquer movimento ascendente das ações ordinárias, o fundo pode lucrar com a conversão de suas obrigações convertíveis em ações, vendendo essas ações no mercado valor por um valor que exceda todas as perdas em sua posição curta. Arbitragem de Renda Fixa: negociação de títulos de renda fixa em mercados de títulos desenvolvidos para explorar anomalias de taxa de juros relativos percebidas. Posições de Arbitragem de Renda Fixa podem usar títulos do governo, swaps de taxa de juros e futuros de taxa de juros. Um exemplo popular desse estilo de negociação em arbitragem de renda fixa é o "comércio de base", no qual um vende (compra) futuros do Tesouro e compra ( vende uma quantidade correspondente do potencial entregável. В Aqui, está a considerar a diferença entre o preço à vista de uma obrigação e o preço do contrato futuro ajustado (fator de conversão do preço de futuros) e a negociação dos pares de ativos em conformidade.


Estratégias direcionais.


As estratégias de negociação direcional, entretanto, geralmente se baseiam em caminhos de tendências ou outros motivos baseados em padrões sugerentes de impulso ascendente ou descendente para um preço de segurança. O comércio direcional geralmente incorporará algum aspecto da Análise Técnica ou "cartografia". Isso envolve a previsão da direção de preços através do estudo dos preços do mercado passado e do volume de dados do mercado. A "negociação" que está sendo negociada pode ser a de um bem em si (dinamismo nos preços das ações, por exemplo, ou a taxa de câmbio do euro / dólar norte-americano) ou um fator que afeta diretamente a o próprio preço dos ativos (por exemplo, volatilidade implícita para opções ou taxas de juros para títulos do governo).


A negociação técnica também pode incluir o uso de médias móveis, bandas em torno do desvio padrão histórico de preços, níveis de suporte e resistência e taxas de mudança. Normalmente, os indicadores técnicos não constituiriam a única base para o investimento de um Fundo Quantitativo de Hedge estratégia; Quant Hedge Funds emprega muitos fatores adicionais além das informações históricas de preço e volume. Por outras palavras, os Fundos de hedge quantitativos que empregam estratégias de negociação direcional geralmente têm estratégias quantitativas globais que são muito mais sofisticadas do que a Análise técnica geral.


Isso não é para sugerir que os comerciantes do dia não possam lucrar com a Análise Técnica - pelo contrário, muitas estratégias de negociação baseadas em impulso podem ser lucrativas. Assim, para os fins deste módulo de treinamento, as referências às estratégias de negociação Quant Hedge Fund não incluirão apenas estratégias baseadas em análise técnica.


Outras estratégias quantitativas.


Outras abordagens comerciais quantitativas que não são facilmente categorizadas como estratégias de Relative Value ou estratégias direcionais incluem:


Negociação de alta freqüência, onde os comerciantes tentam tirar proveito das discrepâncias de preços entre múltiplas plataformas com muitas negociações ao longo do dia. As estratégias de volatilidade administrada usam futuros e contratos a prazo para se concentrar na geração de retornos absolutos baixos, estáveis ​​e LIBOR-plus, aumentando ou diminuindo a número de contratos dinamicamente à medida que as volatilidades subjacentes das ações, títulos e outros mercados mudam. Estratégias de volatilidade gerenciadas ganharam popularidade nos últimos anos devido à recente instabilidade dos mercados de ações e títulos. & larr; O que é um Fundo de cobertura quantitativo? Top Quantitative Hedge Funds & rarr;

No comments:

Post a Comment