Sunday 4 March 2018

Pairs trading significa estratégia de reversão


Cointegration in Forex Pairs Trading.
Cointegration na troca de pares forex é uma ferramenta valiosa. Para mim, a cointegração é a base para uma excelente estratégia de negociação mecânica neutra do mercado que me permite lucrar em qualquer ambiente econômico. Se um mercado está em uma tendência de alta, tendência de baixa ou simplesmente se movendo de lado, a negociação de pares de divisas me permite colher ganhos durante todo o ano.
Uma estratégia de negociação de pares forex que utiliza cointegração é classificada como uma forma de negociação de convergência com base em arbitragem estatística e reversão para significar. Este tipo de estratégia foi popularizado por uma equipe de negociação quantitativa no Morgan Stanley na década de 1980, usando pares de ações, embora eu e outros comerciantes descobrirem que também funciona muito bem para negociação de pares de forex também.
Negociação de pares de Forex com base na cointegração.
O comércio de pares de Forex com base na cointegração é essencialmente uma estratégia de reversão para média. Declarado simplesmente, quando dois ou mais pares forex são cointegrados, significa que o spread de preços entre os pares de divisas separados tende a reverter ao seu valor médio consistentemente ao longo do tempo.
É importante entender que a cointegração não é correlação. A correlação é uma relação de curto prazo em relação a co-movimentos de preços. A correlação significa que os preços individuais se movem juntos. Embora a correlação seja dependente de alguns comerciantes, por si só é uma ferramenta não confiável.
Por outro lado, a cointegração é um relacionamento de longo prazo com co-movimentos de preços, nos quais os preços se movem juntos, mesmo dentro de certos intervalos ou spreads, como se estivessem amarrados. Descobri que a cointegração era uma ferramenta muito útil na troca de pares de forex.
Durante a minha troca de pares forex, quando o spread se alarga para um valor limiar calculado pelos meus algoritmos de negociação mecânica, eu "curto" o spread entre os preços dos pares. Em outras palavras, eu aposto que o spread reverterá em direção a zero devido à sua cointegração.
As estratégias básicas de negociação de pares de forex são muito simples, especialmente quando se utilizam sistemas de negociação mecânica: escolho dois pares de moedas diferentes que tendem a se mover de forma semelhante. Compre o par de moedas insuficientes e venda o par de desempenho. Quando a propagação entre os dois pares converge, eu fechar minha posição com lucro.
A troca de pares de Forex com base na co-integração é uma estratégia razoavelmente neutra para o mercado. Como exemplo, se um par de moedas cair, o comércio provavelmente resultará em uma perda no lado longo e um ganho compensatório no lado curto. Assim, a menos que todas as moedas e instrumentos subjacentes subitamente percam valor, o comércio líquido deve ser próximo de zero no pior cenário.
Do mesmo jeito, as negociações de pares em muitos mercados são uma estratégia de negociação de autofinanciamento, uma vez que o produto de vendas curtas às vezes pode ser usado para abrir a posição longa. Mesmo sem esse benefício, a troca de pares de divisas com cointegração ainda funciona muito bem.
Entendendo a co-integração para negociação de pares forex.
Cointegration é útil para mim na troca de pares forex porque me permite programar meu sistema de negociação mecânica com base em desvios de curto prazo dos preços de equilíbrio, bem como expectativas de preços a longo prazo, pelo que quero dizer correções e retorno ao equilíbrio.
Para entender como a negociação de negociação de pares de divisas orientadas pela cointegração, é importante primeiro definir a cointegração e depois descrever como ela funciona em sistemas de negociação mecânica.
Como eu disse acima, a cointegração refere-se à relação de equilíbrio entre conjuntos de séries temporais, como os preços de pares de divisas separados que, por si só, não estão em equilíbrio. Declarado no jargão matemático, a cointegração é uma técnica para medir a relação entre variáveis ​​não estacionárias em uma série temporal.
Se duas ou mais séries temporais tiverem um valor de raiz igual a 1, mas sua combinação linear é estacionária, então é dito que estão cointegradas.
Como um exemplo simples, considere os preços de um índice de bolsa e seu contrato de futuros relacionado: embora os preços de cada um desses dois instrumentos possam vagar aleatoriamente em breves períodos de tempo, eles retornarão ao equilíbrio e seus desvios serão estacionário.
Aqui está outra ilustração, declarada em termos do exemplo clássico de "caminhada aleatória": digamos que há dois bêbados individuais caminhando para casa depois de uma noite de carousing. Vamos continuar a assumir que esses dois bêbados não se conhecem, então não há uma relação previsível entre seus caminhos individuais. Portanto, não há cointegração entre seus movimentos.
Em contraste, considere a idéia de que um bêbado individual está vagando para casa enquanto acompanha seu cão em uma coleira. Neste caso, há uma conexão definitiva entre os caminhos dessas duas criaturas pobres.
Embora cada um dos dois ainda esteja em um percurso individual durante um curto período de tempo, e mesmo que um dos pares possa aleatoriamente levar ou atrasar o outro em qualquer ponto no tempo, ainda assim, eles sempre serão encontrados juntos. A distância entre eles é bastante previsível, pelo que o par é considerado cointegrado.
Voltando agora a termos técnicos, se houver duas séries temporais não estacionárias, como um conjunto hipotético de pares de moeda AB e XY, que se tornam estacionários quando a diferença entre eles é calculada, esses pares são chamados de série de primeira ordem integrada - também ligue para uma série I (1).
Mesmo que nenhuma dessas séries permaneça em um valor constante, se houver uma combinação linear de AB e XY estacionada (descrita como I (0)), então AB e XY são cointegradas.
O exemplo simples acima consiste em apenas duas séries temporais de pares de forex hipotéticos. No entanto, o conceito de cointegração também se aplica a séries temporais múltiplas, usando ordens de integração mais altas ... Pense em termos de um bêbado errante acompanhado por vários cães, cada um em uma coleira de comprimento diferente.
Na economia do mundo real, é fácil encontrar exemplos que mostrem cointegração de pares: renda e gastos, ou a dureza das leis criminais e o tamanho da população prisional. Na troca de pares forex, meu foco é capitalizar a relação quantitativa e previsível entre pares de moedas cointegradas.
Por exemplo, vamos assumir que estou assistindo esses dois pares de moeda hipotéticos cointegrados, AB e XY, e a relação cointegrada entre eles é AB & # 8211; XY = Z, onde Z é igual a uma série estacionária com uma média de zero, isto é, eu (0).
Isso parece sugerir uma estratégia de negociação simples: quando AB - XY & gt; V e V é o meu preço de gatilho limiar, então o sistema de negociação de pares forex venderia AB e compraria XY, uma vez que a expectativa seria AB para diminuir o preço e XY para aumentar. Ou, quando AB-XY & lt; - V, eu esperaria comprar AB e vender XY.
Evite a regressão espúria na troca de pares forex.
No entanto, não é tão simples como sugeriria o exemplo acima. Na prática, um sistema de negociação mecânica para troca de pares de forex precisa calcular a cointegração em vez de apenas confiar no valor R-quadrado entre AB e XY.
Isso ocorre porque a análise de regressão normal é baixa ao lidar com variáveis ​​não estacionárias. Provoca a chamada regressão espúria, o que sugere relacionamentos entre variáveis, mesmo quando não existe.
Suponhamos, por exemplo, que eu regredisse 2 séries temporais de "caminhada aleatória" separadas uma contra a outra. Quando eu teste para ver se há uma relação linear, muitas vezes eu vou encontrar valores altos para R-quadrado, bem como baixos valores de p. Ainda assim, não há relacionamento entre esses 2 passeios aleatórios.
Fórmulas e testes para cointegração na negociação de pares forex.
O teste mais simples para cointegração é o teste de Engle-Granger, que funciona assim:
Verifique que AB t e XY t sejam ambos I (1) Calcule a relação de cointegração [XY t = aAB t + et] usando o método de mínimos quadrados Verifique se os resíduos de cointegração e estão estacionários usando um teste de raiz de unidade como o Teste avaliado Dickey-Fuller (ADF).
Uma equação Granger detalhada:
I (0) descreve a relação de cointegração.
XY t-1 - βAB t-1 descreve a extensão do desequilíbrio longe do longo prazo, enquanto αi é tanto a velocidade como a direção em que a série temporal do par de moedas se corrige do desequilíbrio.
Ao usar o método Engle-Granger na negociação de pares forex, os valores beta da regressão são usados ​​para calcular os tamanhos comerciais para os pares.
Ao usar o método Engle-Granger na negociação de pares forex, os valores beta da regressão são usados ​​para calcular os tamanhos comerciais para os pares.
Correção de erros para cointegração em troca de pares forex:
Ao usar cointegração para negociação de pares de divisas, também é útil explicar como as variáveis ​​cointegradas se ajustam e retornam ao equilíbrio de longo prazo. Então, por exemplo, aqui estão as duas séries temporais de pares de forex mostrados de forma autoregressiva:
Negociação de pares de Forex com base na cointegração.
Quando uso o meu sistema de negociação mecânica para negociação de pares de divisas, a configuração e a execução são bastante simples. Primeiro, acho dois pares de moedas que parecem ser cointegradas, como EUR / USD e GBP / USD.
Então, eu calculo os spreads estimados entre os dois pares. Em seguida, eu verificar a estacionaridade usando um teste de raiz unitária ou outro método comum.
Tenho certeza de que meu feed de dados de entrada está funcionando adequadamente, e eu deixo meus algoritmos de negociação mecânica criar os sinais comerciais. Supondo que eu tenha executado back-tests adequados para confirmar os parâmetros, finalmente estou pronto para usar cointegração na minha troca de pares forex.
Encontrei um indicador MetaTrader que oferece um excelente ponto de partida para construir um sistema de negociação de pares de divisas de cointegração. Parece um indicador Bollinger Band, no entanto, o oscilador mostra o diferencial de preços entre os dois pares de moedas diferentes.
Quando este oscilador se move em direção ao extremo alto ou baixo, indica que os pares estão se desacoplando, o que sinaliza os negócios.
Ainda assim, para ter certeza de sucesso, confio no meu sistema de comércio mecânico bem construído para filtrar os sinais com o teste Augmented Dickey-Fuller antes de executar os negócios apropriados.
Claro, qualquer pessoa que queira usar cointegração para a negociação de pares forex, ainda que não tenha as necessárias habilidades de programação, pode contar com um programador experiente para criar um consultor especialista vencedor.
Através da magia da negociação algorítmica, programo meu sistema de negociação mecânica para definir os spreads de preços com base na análise de dados. Meu algoritmo monitora os desvios de preços, então compra e vende automaticamente pares de moedas para reduzir as ineficiências do mercado.
Riscos a ter em conta ao usar cointegração com troca de pares forex.
O comércio de pares de Forex não é totalmente livre de riscos. Acima de tudo, eu tenho em mente que a negociação de pares forex usando a cointegração é uma estratégia de reversão média, que se baseia no pressuposto de que os valores médios serão os mesmos no futuro como eram no passado.
Embora o teste Augmented Dickey-Fuller mencionado anteriormente seja útil na validação das relações cointegradas para o comércio de pares de forex, isso não significa que os spreads continuarão a ser cointegrados no futuro.
Confio em fortes regras de gerenciamento de risco, o que significa que meu sistema de negociação mecânica sai de negociações não lucrativas se ou quando a reversão-a-média calculada é invalidada.
Quando os valores médios mudam, é chamado de deriva. Eu tento detectar a deriva o mais rápido possível. Em outras palavras, se os preços dos pares Forex previamente cointegrados começam a se mover em uma tendência em vez de reverter para a média previamente calculada, é hora de os algoritmos do meu sistema de negociação mecânica recalcular os valores.
Quando uso o meu sistema de negociação mecânica para negociação de pares de divisas, uso a fórmula autorregressiva mencionada anteriormente neste artigo para calcular uma média móvel para prever o spread. Então, eu saio do comércio em meus limites de erro calculados.
Cointegration é uma ferramenta valiosa para minha troca de pares forex.
O uso da cointegração na negociação de pares forex é uma estratégia de negociação mecânica neutra do mercado que me permite negociar em qualquer ambiente de mercado. É uma estratégia inteligente que se baseia na reversão, mas isso me ajuda a evitar as armadilhas de algumas das outras estratégias de negociação forex de reversão para média.
Devido ao seu uso potencial em sistemas de negociação mecânica rentáveis, a cointegração para troca de pares de divisas atraiu o interesse tanto de comerciantes profissionais como de pesquisadores acadêmicos.
Há muitos artigos recentemente publicados, como esse artigo de blog focado em quantos, ou essa discussão acadêmica sobre o assunto, bem como uma grande discussão entre os comerciantes.
Cointegration é uma ferramenta valiosa no meu comércio de pares forex, e eu recomendo que você olhe para ele mesmo.
Diz Tommaso Sillian.
Muito bom artigo. É inspirador. Obrigado por escrevê-lo!
Harish Nachnani diz.
A correlação também é aplicada em ações (ações). Qual é a diferença? O processo acima pode ser aplicado às ações?
Eddie Flower diz.
Sim, o mesmo processo pode ser aplicado aos estoques, bem como aos derivados. Uma vez que existe um grande universo de estoques em comparação com os pares de divisas, deve haver uma maior quantidade de oportunidades potenciais para negociação. Com o poder de cruzamento dos sistemas comerciais de hoje, muitos conjuntos de relacionamentos podem ser examinados rapidamente, em tempo real. Cointegration também pode ser usado por comerciantes de opções; pode-se esperar que produza resultados como os populares spreads da Coca Cola-Pepsi, nos quais as relações de preços entre certos estoques / opções permitem que os comerciantes se envolvam em jogos de baixo risco com uma boa chance de ganhar.
Harish Nachnani diz.
Você troca intra dia ou durante semanas usando esta estratégia? Além disso, que linguagem de programação você recomendaria. R leva tempo para executar cálculos e se é comércio intra-dia, a latência entra em jogo.
A linguagem de programação não é importante para o comércio no final do dia. Qualquer linguagem importante como Perl, Python, C / C ++ e C # está bem. R pode ser extremamente rápido, mas retarda se for forçado a alocar dinamicamente a memória.
Eu troco usando gráficos diários, e eu permaneço na maioria dos negócios por alguns dias para algumas semanas. Shaun é um programador experiente, e sempre confio no seu julgamento para usar a melhor linguagem de programação para obter os melhores resultados para uma determinada estratégia de negociação. Na verdade, Shaun pode criar um programa bem equilibrado e vencedor para alavancar a co-integração e outros fatores também. Se você gostou de uma citação, entre em contato com ele diretamente em infoonestepremoved.
Chris Zimmer diz.
Existe algum interesse em uma implementação deste para o MT4. Se você pode fornecer algumas especificações sobre a implementação desta estratégia no código, envie para czimmeronestepremoved.
Estou fazendo um pequeno projeto sobre estratégias de co-integração no FX para meu mestrado. Eu acredito que você executou testes de cointegração em muitos pares de moedas. Quais as quais você achou ser estatisticamente significativamente cointegrado?
Eu não acho que Eddie realmente correu os números. O artigo pretende ser um guia geral para o conceito, mas não é o ponto de ser uma estratégia de boa-fé.
1) USD / JPY e EUR / CHF.
2) EUR / PLN e EUR / HUF.
3) USD / TRY e USD / ZAR.
4) AUD / USD e NZD / USD.
5) EUR / NOK e EUR / SEK.
Eu sei que estes estão bastante correlacionados, mas isso não significa cointegração.
Camilo Romero diz.
Existem bons pares de forex cointegrados:
Eu não acho que USDJPY / EURCHF seja um par cointegrado porque não haverá uma estratégia neutra do mercado.
Obrigado por compartilhar.
Camilo Romero diz.
Alguém implementou um código de retorno usando a estratégia de reversão média?
Eu deveria ajustar os valores do pip entre dois pares de divisas?
Alguém adicionou custo de comissão ao código de retorno e obteve resultados lucrativos?
Tenho certeza de que alguém tem, mas não é algo em que você encontrará uma resposta óbvia em gráficos de curto prazo. Você pode encontrar cointegrações de longo prazo, mas a pesquisa não foi feita pela I & # 8217;
A única cointegração é entre EUR e CHF e entre AUD e NZD, uma vez que o único comércio e economia íntima entre esses países e os bancos centrais estão criando essa cointegração.
Não EUR e GBP?
Robert J Armagost diz.
Olá Eddie. Excelente artigo. Voltei a testar 10 anos de gráficos pensando e # 8221; Eu não posso ser a primeira pessoa a ter pensado nisso! & # 8221; quando encontrei este site. Muito obrigado por escrever isso. Eu não me sinto tão sozinho. 🙂 Apenas me perguntando qual corretor você usa ou você usa vários corretores. Obrigado pelo seu tempo.
Sinceramente Robert J. Armagost.
O corretor principal que eu uso é Pepperstone e STO (via TopTradr).
Olá Shaun eu tenho negociado esta estratégia manualmente. Tem software para automatizar isso? (Então, eu não tenho mais que acordar no meio da noite) Obrigado pelo seu tempo.
Não fora da prateleira, mas é algo que podemos construir. Me tire um email com suas regras de entrada e saída para obter uma estimativa. infoonestepremoved.
Robert & # 8212; Obrigado pelo seu bom feedback. Shaun tem as ferramentas certas para implementar este tipo de estratégia de negociação, e eu concordo inteiramente com as recomendações do corretor, Agradeço novamente por comentar! EF.

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 20 de fevereiro de 2014.
Neste artigo, vamos considerar nossa primeira estratégia de negociação intradiária. Será usando uma idéia comercial clássica, a de "pares comerciais". Neste caso, vamos fazer uso de dois Exchange Traded Funds (ETFs), SPY e IWM, que são negociados na Bolsa de Valores de Nova York (NYSE) e tentam representar os índices do mercado de ações dos EUA, os S & P500 e Russell 2000, respectivamente.
A estratégia cria, em termos gerais, uma "propagação" entre o par de ETFs saudade de um e curto um montante do outro. A proporção de longo a curto pode ser definida de muitas maneiras, como a utilização de técnicas de coesão estatística de séries temporais. Nesse cenário, vamos calcular uma relação de cobertura entre SPY e IWM através de uma regressão linear rotativa. Isso nos permitirá criar uma "propagação" entre o SPY eo IWM, que é normalizado para um escore z. Os sinais de negociação serão gerados quando o escore z exceder certos limiares sob a crença de que a propagação reverterá para a média.
O raciocínio para a estratégia é que a SPY e a IWM caracterizam aproximadamente a mesma situação, a da economia de um grupo de corporações de grandes capitais e de capitais pequenos. A premissa é que, se alguém adotar a propagação dos preços, isso deve ser reverso, já que os eventos "locais" (no tempo) podem afetar separadamente os índices S & P500 ou Russell 2000 (como small-cap / large - diferenças de limite, datas de reequilíbrio ou negociações de bloco), a série de preços de longo prazo dos dois provavelmente será cointegrada.
A estratégia.
A estratégia é realizada nas seguintes etapas:
Dados - barras de 1 minuto de SPY e IWM são obtidas de abril de 2007 até fevereiro de 2014. Processamento - Os dados estão corretamente alinhados e as barras ausentes são mutuamente descartadas. Spread - A relação de cobertura entre os dois ETFs é calculada tomando uma regressão linear rotativa. Isso é definido como o coeficiente de regressão $ \ beta $ usando uma janela de lookback que se desloca para a frente em 1 barra e recalcula os coeficientes de regressão. Assim, a taxa de cobertura $ \ beta_i $, para o bar $ b_i $ é calculada entre os pontos $ b_ $ a $ b_ $ para um lookback de $ k $ bars. Z-Score - O escore padrão do spread é calculado da maneira usual. Isso significa subtrair a média (amostra) da propagação e dividir pelo desvio padrão (amostra) da propagação. O raciocínio para isso é tornar os parâmetros de limiar mais simples para interpet, uma vez que o z-score é uma quantidade sem dimensão. Eu deliberadamente introduzi uma polarização de lookahead nos cálculos, a fim de mostrar quão sutil pode ser. Tente e cuide disso! Operações - Os sinais longos são gerados quando o escore z negativo cai abaixo de um limite pré-determinado (ou pós-otimizado), enquanto os sinais curtos são o inverso disso. Os sinais de saída são gerados quando o escore z absoluto cai abaixo de um limite adicional. Para essa estratégia, eu (um pouco arbitrariamente) escolhei um limite de entrada absoluto de $ | z | = 2 $ e um limite de saída de $ | z | = 1 $. Supondo um comportamento de reversão médio na propagação, espero que capture esse relacionamento e ofereça um desempenho positivo.
Talvez a melhor maneira de entender a estratégia em profundidade é implementá-la. A seção a seguir descreve um código Python completo (arquivo único) para implementar esta estratégia de reversão média. Eu comande o código de forma liberal para ajudar a entender.
Implementação do Python.
Tal como acontece com todos os tutoriais Python / pandas, é necessário configurar um ambiente de pesquisa Python como descrito neste tutorial. Uma vez configurada, a primeira tarefa é importar as bibliotecas Python necessárias. Para este backtest, matplotlib e pandas são obrigatórios.
As versões específicas da biblioteca que estou usando são as seguintes:
Vamos continuar e importar os bibliotecários:
A seguinte função create_pairs_dataframe importa dois arquivos CSV contendo as barras intradias de dois símbolos. No nosso caso, isso será SPY e IWM. Em seguida, ele cria um conjunto de quadros de dados separados, que usa os índices de ambos os arquivos originais. Como os seus timestamps são susceptíveis de serem diferentes devido a negociações e erros perdidos, isso garante que teremos dados correspondentes. Este é um dos principais benefícios de usar uma biblioteca de análise de dados como pandas. O código "boilerplate" é tratado de maneira muito eficiente.
O próximo passo é realizar a regressão linear de rolamento entre SPY e IWM. Nessa instância, IWM é o preditor ('x') e SPY é a resposta ('y'). Define uma janela de lookback padrão de 100 barras. Conforme discutido acima, este é um parâmetro da estratégia. Para que a estratégia seja considerada robusta, idealmente queremos ver um perfil de retorno (ou outra medida de desempenho) como uma função convexa do período de lookback. Assim, em uma fase posterior do código, realizaremos uma análise de sensibilidade ao variar o período de lookback em um intervalo.
Uma vez que o coeficiente de rolamento beta é calculado no modelo de regressão linear para SPY-IWM, nós o adicionamos aos pares DataFrame e soltamos as linhas vazias. Isso constitui o primeiro conjunto de barras igual ao tamanho do lookback como medida de corte. Em seguida, criamos o spread dos dois ETFs como uma unidade de SPY e $ - \ beta_i $ unidades de IWM. Claramente, esta não é uma situação realista, pois estamos tomando quantidades fracionárias de IWM, o que não é possível em uma implementação real.
Finalmente, criamos a pontuação z da propagação, que é calculada subtraindo a média da propagação e normalizando pelo desvio padrão da propagação. Note-se que há um viés bastante parecido com a aparência aqui. Eu deliberadamente deixei isso no código, pois queria enfatizar o quão fácil é cometer um erro na pesquisa. A média eo desvio padrão são calculados para toda a série de tempo de propagação. Se isso for para refletir a verdadeira precisão histórica, essa informação não estaria disponível, pois isso implicitamente faz uso de informações futuras. Assim, devemos usar um meio de rolamento e stdev para calcular o escore z.
Em create_long_short_market_signals, os sinais de negociação são criados. Estes são calculados ao longo do spread quando o escore z excede negativamente um escore z negativo e diminui o spread quando o escore z excede positivamente um escore z positivo. O sinal de saída é dado quando o valor absoluto do escore z é menor ou igual a outro (menor em magnitude).
Para alcançar essa situação, é necessário saber, para cada barra, se a estratégia está "dentro" ou "fora" do mercado. long_market e short_market são duas variáveis ​​definidas para acompanhar as posições de mercado longo e curto. Infelizmente, isso é muito mais simples de codificar de forma iterativa em oposição a uma abordagem vetorializada e, portanto, é lento para calcular. Apesar dos bares de 1 minuto que exigem.
700.000 pontos de dados por arquivo CSV ainda é relativamente rápido para calcular em minha máquina de desktop mais antiga!
Para iterar sobre um pandas DataFrame (que é verdade que NÃO é uma operação comum) é necessário usar o método iterrows, que fornece um gerador sobre o qual iterar:
Nesta fase, atualizamos pares para conter os sinais longos / curtos reais, o que nos permite determinar se precisamos estar no mercado. Agora, precisamos criar um portfólio para acompanhar o valor de mercado das posições. A primeira tarefa é criar uma coluna de posições que combine os sinais longos e curtos. Isso conterá uma lista de elementos de $ (1,0, -1) $, com $ 1 $ representando uma posição longa / de mercado, US $ 0 $ que não representa nenhuma posição (deve ser encerrado) e $ -1 $ representando uma posição de curto / mercado . As colunas sym1 e sym2 representam os valores de mercado das posições SPY e IWM no final de cada barra.
Uma vez que os valores de mercado da ETF foram criados, os somamos para produzir um valor de mercado total no final de cada barra. Isso é transformado em um fluxo de devoluções pelo método pct_change para esse objeto da série. Linhas subsequentes de código eliminam as entradas incorretas (elementos NaN e inf) e, finalmente, calculam a curva de capital integral.
A função __main__ junta tudo. Os arquivos CSV intradiários estão localizados no caminho do datadir. Certifique-se de modificar o código abaixo para apontar para o seu diretório particular.
Para determinar quão sensível é a estratégia para o período de lookback, é necessário calcular uma métrica de desempenho para uma variedade de lookbacks. Eu escolhi a porcentagem total final de retorno do portfólio como a medida de desempenho e a faixa de lookback em $ [50,200] $ com incrementos de 10. Você pode ver no código a seguir que as funções anteriores estão envolvidas em um loop para este intervalo , com outros limiares mantidos fixos. A tarefa final é usar matplotlib para criar um gráfico de linha de lookbacks vs returns:
O gráfico do período de lookback versus retornos agora pode ser visto. Observe que existe um máximo "global" em torno de um lookback igual a 110 barras. Se tivéssemos visto uma situação em que o lookback fosse independente dos retornos, isso teria sido motivo de preocupação:
Análise de sensibilidade do período de lookback de regressão linear SPY-IWM.
Nenhum artigo de backtesting seria completo sem uma curva de equidade inclinada para cima! Assim, se você deseja traçar uma curva dos retornos cumulados versus tempo, você pode usar o seguinte código. Ele irá traçar o portfólio final gerado a partir do estudo de parâmetros de lookback. Assim, será necessário escolher o lookback dependendo do gráfico que deseja visualizar. O gráfico também traça os retornos de SPY no mesmo período para facilitar a comparação:
O gráfico de curva de equidade a seguir é para um período de lookback de 100 dias:
Análise de sensibilidade do período de lookback de regressão linear SPY-IWM.
Note-se que a redução da SPY é significativa em 2009 durante o período da crise financeira. A estratégia também teve um período volátil nesta fase. Observe também que o desempenho deteriorou-se um pouco no último ano devido à natureza fortemente tendencial da SPY neste período, o que reflete o índice S & P500.
Note que ainda temos que levar em consideração o viés de lookahead ao calcular o escore z do spread. Além disso, todos esses cálculos foram realizados sem custos de transação. Esta estratégia certamente funcionaria muito mal quando esses fatores forem levados em consideração. As taxas, a propagação / desistência de lance / pedido são todas atualmente desaparecidas. Além disso, a estratégia é negociada em unidades fracionárias de ETFs, o que também é muito pouco realista.
Em artigos posteriores, criaremos um backtester muito mais sofisticado baseado em eventos que levará esses fatores em consideração e nos dará uma confiança significativa na nossa curva de equidade e métricas de desempenho.
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.

Estratégia de reversão à média de negociação de pares
Em anexo está um algoritmo de negociação em par que permite ao usuário ativar / desativar testes diferentes para cointegração / reversão à média do spread do par antes de realizar qualquer negociação. Se você optar por ativar um dos testes, o valor do teste será registrado como uma série de tempo visível na página de resultados do backtest.
O par que está sendo negociado neste algo é o ETFs de petróleo e ouro (USO e GLD), mas você pode modificá-los conforme desejar.
Os 3 testes diferentes são:
- Efetivamente, este é um teste de raiz unitária para determinar se a propagação é cointegrada.
- Além disso, uma função está incluída mostrando como usar os valores críticos do teste ADF em vez do valor p.
- Este é o tempo teoricamente computado, baseado em uma janela histórica de dados, que levará para que o spread reverta metade da sua distância após ter divergido da média do spread.
- Efetivamente, isso retorna um valor entre 0 e 1 que indica se uma série de tempo está em tendência ou retorno de média. Quanto mais próximo o valor estiver de 0,5, maior será o número "aleatório". A série temporal se comportou historicamente. Os valores abaixo de 0,5 implicam que a série temporal é reversa média, e acima de 0,5 implica tendência. Quanto mais próximo o valor estiver de 0, maior o nível de reversão à média.
- A literatura de negociação está em conflito quanto à utilidade do expoente de Hurst, mas incluí-lo, no entanto, e defini a opção padrão para False no algoritmo.
Os resultados de backtest abaixo incorporam dois desses testes:
Valor-p do teste ADF, calculado ao longo de uma janela de lookback de 63 dias (por exemplo, 3 meses), com um p-valor mimo requerido de 0,20.
Para modificar os valores dos parâmetros dos testes, apenas olhe na função inicializar, para blocos de código que se parecem com isso. Veja como os parâmetros do valor p do teste do ADF são definidos:
Aqui você vê como há um dicionário definido chamado & # 39; stat_filter & # 39; que você pode usar para armazenar os parâmetros de cada teste. Primeiro eu crio outro dicionário dentro de & # 39; stat_filter & # 39; chamado & # 39; adf_p_value & # 39; e então eu carrego em todos os valores dos parâmetros relevantes para o teste ADF que eu quero definir quando é aceitável entrar em um comércio. Esses cinco parâmetros exatos (por exemplo, as chaves do dicionário) serão definidos para todos os testes, conforme você verá o código do algoritmo e perceberá que as expressões adf_critical_value, half_life, hurst_exponent são definidas após ele. Os 5 parâmetros são:
& # 39; use: Boolean, True se você quiser que o algo use este teste.
Suporte para Freqüência Intradiária.
(Deixe-me saber se você se deparar com problemas com isso, como eu não fiz tanto testes com ele como eu tenho com apenas diariamente freq)
Você pode configurar este algoritmo para ser executado em dados intraday minuciosamente também. Por exemplo. construa um spread par usando preços de fechamento de 15 minutos.
Primeiro, altere a variável context. trade_freq & # 39; do diário & # 39; para "intraday"
context. trade_freq = & # 39; diariamente & # 39; # & # 39; diariamente & # 39; ou intradiário & # 39;
Em seguida, procure este bloco de código abaixo na função inicializar () e especifique o & # 39; intraday_freq & # 39; valor para a frequência de preços de fechamento a serem usados ​​(por exemplo, barras de 15 minutos). Em seguida, defina & # 39; run_trading_logic & # 39; para ser com que frequência você deseja que a lógica seja aplicada aos dados de mercado. Eu escolhi 60, o que significa, execute essa lógica a cada 60 minutos, mas se desejar, mude para 1, e a lógica será executada a cada minuto (cuidado, pois isso resultará em tempos de backtest realmente longos).
A variável "check_exit_every_minute & # 39; pode ser definido como True se você quiser que a lógica seja executada a cada minuto se e somente se você estiver atualmente em um comércio. Por exemplo. ele verifica se você precisa sair da negociação a cada minuto, em vez de esperar pelos próximos N períodos (por exemplo, 60 minutos, conforme especificado na variável "run_trading_logic_freq" #)
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
O mesmo algoritmo acabou de começar 9 meses antes.
Obrigado pela parte. Eu notei que há uma função coint em statsmodels. tsa. stattools. Existe uma diferença significativa entre a função coint e o teste ADF? Algum sentido em usar ambos?
Eu anexei um backtest abaixo que tenta encontrar o pvalue de ambos os testes para cada par, todos os dias. Disclaimer: o que muitas vezes acho que está acontecendo em python na verdade não é.
Eu ainda não tentei a função coint em stattools, embora eu imagine que seja muito semelhante. Eu apenas dei uma rápida olhada no código, e está efetivamente executando uma regressão da versão defasada das timeseries de entrada versus a versão não corrigida que é bastante semelhante ao ADF. A diferença pode estar em como os valores críticos são computados.
O teste de Engle-Granger também é usado às vezes para testar a co-integração, mas eu ainda não procurei essa implementação.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Grande Algo. É incrível. Muito útil.
Olá Justin / Tudo.
Você poderia sugerir como posso executar esse algoritmo em vários pares, em vez de apenas um par?
Tente fazer uma classe de negociação de pares que acompanhe toda a contabilidade de cada par. Veja o algoritmo de negociação de par de filtros Kalman generalizado de David para um ótimo exemplo de negociação de pares baseada em classes.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Obrigado por compartilhar informações.
Eu clonei o algoritmo de Justin, no entanto, quando executo o backtest, o desempenho permanece em 0% para a totalidade da janela do backtest.
Eu não fiz alterações no código-fonte original.
Alguma idéia de por que isso estaria ocorrendo?
Você provavelmente executa algo no modo diário e só funciona no modo minuto.
Aqui está o meu último backtest do original da Justin, Lent algo, começou apenas 9 meses antes.
Vale a pena notar que, quando eu passo backtests, códigos e cadernos de pesquisa, a intenção é ilustrar uma metodologia e fornecer alguns modelos de código para estimular o processo de pensamento criativo da comunidade e salvar as pessoas a algum tempo fornecendo e cole fragmentos de código que podem ser integrados em seu próprio código. De maneira alguma estou postando algo que tenha sido totalmente aprovado, e imediatamente investível em sua forma exata, por qualquer extensão da imaginação. Muitas vezes sugiro exemplos simples, em vez de excessivamente complexos, de modo a beneficiar um espectro mais amplo de leitores.
Vejo que você reconheceu que o backtest que postei acima parece falhar muito mal por um período de tempo diferente. Vemos isso muito com as estratégias que observamos, muitas das quais são superadas apenas no período de 2 anos nas competições que executamos. Tentamos trabalhar com o proprietário do algo e fornecer conselhos sobre o motivo pelo qual ele pode ter desdobrado nos diferentes prazos. Talvez você possa estender sua análise para me fornecer alguns conselhos para melhorar essa estratégia? Talvez você tenha algumas recomendações sobre como incorporar um modelo de troca de regime que provavelmente ajudará uma estratégia como essa, dado o prazo que parece falhar (as crises de futuros financeiros / de commodities que ocorreram no final de 2008). Talvez um modelo de troca de regime de volatilidade estocástica possa ajudar significativamente. Se você tiver experiência nessa área, tenho certeza de que a comunidade consideraria um acréscimo sólido a incorporar em estratégias como essas para torná-las mais robustas. Eu sei que eu faria.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Por que você escolheu o par USO e GLD? Acho que uma questão mais ampla é que você pode sugerir um processo para escanear através de uma cesta de ações e determinar se existem pares negociáveis? Eu estou supondo testes para cointegração seria um método como o ADF como você usou. Seria bom se pudesse haver um algo para percorrer uma cesta de ações e determinar automaticamente o que faria "bom" pares.
Eu simplesmente escolhi USO / GLD para replicar este exemplo que usa esses mesmos tickers, a partir deste livro: amazon / Quantitative-Trading-Build-Algorithmic-Business / dp / 0470284889 /
Esse livro é realmente uma boa introdução à negociação de pares de arbitrários (assim como seus outros livros). Todo o código do livro está no Matlab, então meu algoritmo foi uma tentativa de implementá-lo em Python, em nosso backtester, e incorporar algumas das outras técnicas estatísticas descritas ao longo do livro.
Você está correto, que a seleção de um monte de pares em potencial é uma idéia razoável de pesquisa, mas você deve estar ciente de simplesmente datamining. Primeiro, você deseja determinar uma base econômica sensata para a qual os pares de ações devem ser vinculados (por exemplo, pares de ações no mesmo setor seriam pares de ações razoáveis ​​para pesquisar). Escrever um algo em nosso backtester para conseguir isso seria bastante direto: primeiro você pode usar nosso banco de dados de fundamentos da Morningstar para pegar todos os estoques no setor de energia, talvez até filtrar para ações de empresas de certa faixa de mercado (por exemplo, apenas limite de estoque de energia), em before_trading_starts (), você faz um loop sobre cada par de ações computando o valor p do ADF (ou outro status de cointegração), mantém todos os pares de ações que atendem aos seus critérios e, em handle_data (), aqueles que atendem aos critérios através de um algoritmo semelhante ao que eu compartilhei para entrar / sair das negociações.
Eu ou alguém da nossa equipe aqui na Q podemos tentar desenvolver um modelo para isso e compartilhá-lo.
Você também pode ver este post do fórum que mostra como desenvolver um único algoritmo que troca um portfólio de múltiplos pares:
É o mesmo backtest no primeiro comentário de David Edwards, aqui:
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Eu notei na seção do blog que você tem um notebook usando um otimizador bayesiano. Você saberia como posso puxá-lo para Q? está atualmente em github..thanks!
Adam, no momento não é possível usar o otimizador bayesiano da postagem do blog no ambiente Q. Era mais uma prova de idéia de implementação de conceito. Como você mencionou, o código que usei para a publicação do blog está no github e você pode se inscrever para um teste com o SigOpt para obter um nome de usuário / API para trabalhar com ele em seu próprio ambiente python / zipline localmente. Oferecer alguns desses métodos alternativos de otimização como um serviço é um conceito interessante no qual teremos que pensar à medida que desenvolvemos nossa plataforma Q no futuro. Obrigado pelo feedback!
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Obrigado Justin! Seria legal poder fazer esse tipo de otimização e / ou uma técnica de enxame de partículas em Q. :)
Eu acredito que encontrei uma lacuna na lógica de negociação. Na seção de filtragem de estatísticas (linhas.
155-176) o algoritmo sai imediatamente se um teste falhar. Isso impede que novos negócios sejam abertos, mas não faz nada para lidar com negociações existentes. Os negócios abertos permanecem abertos até que todos os testes estatísticos passem novamente e o algoritmo atinja sua lógica de saída padrão.
Por projeto, também devemos ter uma alta probabilidade de estar em uma negociação quando isso acontece, então o impacto pode ser bastante alto. O problema na detecção disso é que se o relacionamento restabelece rapidamente, o desempenho não sofreu. Mas se incluímos um período de tempo em que a relação não retorna rapidamente, como Vladimir fez, os resultados são notáveis.
Eu adicionei algumas linhas para fechar todas as posições que estão abertas quando os testes estatísticos são quebrados. Provavelmente há melhores maneiras de lidar com a lógica de saída, mas essa mudança simples mostra o benefício de tê-lo lá. O algoritmo não faz também durante o período de teste original, mas o desempenho melhora durante o período prolongado.
(Eu também fiz pequenas alterações nas linhas 20 e 21 para usar a função sid () para definir os ativos xey em vez de símbolo (). O restante do algoritmo não foi modificado.)
Par comercializar usando métodos Copula em vez de cointegração é a nova moda. Alguém tentou isso?
Par trading usando métodos Copula em vez de cointegração é o novo.
raiva. Alguém tentou isso?
Este artigo oferece uma comparação sistemática de métodos de cópula e métodos de cointegração quando aplicado a estoques de mina de ouro dos EUA. Além disso, o papel contrasta os critérios de seleção de pares com base na estatística ADF, na tau de Kendall, na medida de rho e distância de Spearman. Uma nota: eu não sou o autor.
Obrigado Julian. Eu tive uma chance e os resultados estão muito bons.
Qualquer coisa que você possa compartilhar Aqua, para brincar?
Coloco muitos recursos (tempo e dinheiro) para que as copulas funcionem em Q. Mas você pode usar isso para começar:
Obrigado, eu estava mais procurando o código Q para jogar. o espírito de compartilhar;)
Coloquei muito tempo (e dinheiro) em zipline-live e os algos & # 39; s que desenvolvi e ainda compartilho. Um dia, o karma virá e pagará graciosamente.
Peter, vou tentar colocar algo e postar sem divulgar o meu molho secreto :)
Aqui está a aula de Cópula Gaussiana. Você pode usá-lo para trocar um par ou uma cesta. Deixe-me saber se você tem alguma dúvida:
Caderno anexado ao uso.
Existem várias maneiras de implementar um algoritmo.
Par de negociação. Calcule uma soma progressiva de 0,5 - CDF condicional. Isso deve significar reverter. Veja aqui.
São ideias suficientes para tentar por um tempo. Peter, onde estão minhas bênçãos?
Desculpe, algo deu errado. Tente novamente ou contate-nos enviando comentários.
Você enviou um ticket de suporte com sucesso.
Nossa equipe de suporte estará em contato em breve.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian.
Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian.
Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.

Par Estratégia de Negociação [MODELO EXCEL]
Par Trading.
A negociação de par é uma estratégia de negociação que corresponde a uma posição longa em um estoque / ativo com uma posição de compensação em outro estoque / ativo que está relacionado estatisticamente. O intercâmbio de pares é uma estratégia de reversão média onde apostamos que os preços reverterão para suas tendências históricas.
Quem pode usar este modelo Excel?
Pessoas interessadas em negociação algorítmica e Quant, aqueles que querem aprender sobre arbitragem estatística.
Como isso ajuda?
Este modelo de excel irá ajudá-lo a:
Aprenda a aplicação da reversão média Compreender o comércio de pares Otimizar os parâmetros de negociação Compreender os retornos significativos da arbitragem estatística.
Por que você deve baixar o modelo de negociação?
Como a lógica de negociação é codificada nas células da folha, você pode melhorar a compreensão, baixando e analisando os arquivos em sua própria conveniência. Não só isso, você pode brincar com os números para obter melhores resultados. Você pode encontrar parâmetros adequados que proporcionem maiores lucros do que o especificado no artigo.
Explicação do modelo.
Neste exemplo, consideramos os pares MSCI e Nifty, pois ambos são índices do mercado de ações. Implementamos estratégia de reversão média nesse par. A reversão média é uma propriedade de séries temporais estacionárias. Uma vez que afirmamos que o par que escolhemos significa reverter, devemos testar se segue a estacionança. O diagrama a seguir mostra o gráfico da relação logarítmica de Nifty para MSCI. No início, isso parece ser significante reverter com um valor médio de 2.088, mas usamos Dicky Fuller Test para testar se ele é estacionário com uma significância estatística. Os resultados da tabela de resultados da Cointegração mostram que a série de preços é estacionária e, portanto, significa reverter. A estatística do teste de Dicky Fuller e um valor de p significativamente baixo (& lt; 0,05) confirmam nossa suposição. Tendo determinado que a reversão média é válida para o par escolhido, procedemos com a especificação de suposições e parâmetros de entrada.
Premissas.
Para fins de simplificação, ignoramos os spreads de oferta. Os preços estão disponíveis no intervalo de 5 minutos e nós negociamos somente no preço de fechamento de 5 minutos. Uma vez que este é um dado discreto, o desligamento da posição acontece no final da vela, isto é, ao preço disponível no final de 5 minutos. Apenas a sessão regular (T) é negociada. Os custos de transação são de US $ 0,375 para Nifty e US $ 1,10 para MSCI. A margem para cada comércio é de US $ 990 (aproximado de US $ 1000).
Parâmetros de entrada.
Observe que todos os valores dos parâmetros de entrada mencionados abaixo são configuráveis.
Média de 10 velas (uma vela = a cada 5 minutos de preço) é considerada. Um "z" pontuação de +2 é considerado para compra e -2 para venda. Uma queda de $ 100 e um limite de lucro de $ 200 é definido. O tamanho da ordem para negociação MSCI é de 50 (1 lote) e para Nifty é de 6 (3 lotes).
Os dados de mercado e os parâmetros de negociação estão incluídos na folha de cálculo a partir da 12 ª fila em diante. Então, quando a referência é feita para a coluna D, deve ser óbvio que a referência começa a partir de D12 em diante.
Explicação das colunas no modelo do Excel.
A coluna C representa o preço do MSCI.
A coluna D representa o preço Nifty.
A coluna E é a relação logarítmica de Nifty para MSCI.
A coluna F calcula a média de 10 velas. Como 10 valores são necessários para os cálculos médios, não há valores de F12 a F22. A fórmula = IF (A23 & gt; $ C $ 3, MÉDIA (ÍNDICE ($ E $ 13: $ E $ 1358, A23- $ C $ 3): E22), & # 8220; & # 8221;) significa que a média só deve ser calculada se a amostra de dados disponível for superior a 10 (ou seja, o valor especificado na célula C3), caso contrário, a célula deve estar em branco. Considere a célula F22. A célula correspondente A22 tem um valor de 10. Como A22 & gt; $ C $ 3 falha, a entrada nessa célula está em branco. A próxima célula F23 tem um valor, pois A23 & gt; $ C $ 3 é verdade. O próximo bit da fórmula.
MÉDIA (ÍNDICE ($ E $ 13: $ E $ 1358, A23- $ C $ 3): E22) calcula o valor médio das últimas 10 (como mencionadas na célula C3) velas de dados da coluna E. Uma lógica semelhante é válida para a coluna G onde o desvio padrão é calculado. O resultado "z" é calculado na coluna H. A fórmula para calcular o escore "z" é z = (x -) / (σ). Aqui x é a amostra (Coluna E), é o valor médio (Coluna F) e σ é o desvio padrão (Coluna G).
A coluna I representa o sinal de negociação. Conforme mencionado nos parâmetros de entrada, se a pontuação "z" for inferior a -2 nós compramos e, se for superior a +2 nós vendemos. Quando dizemos comprar, temos uma posição longa em 3 lotes de Nifty e temos uma posição curta em 1 lote de MSCI. Da mesma forma, quando dizemos que vendemos, temos uma posição longa em 1 lote de MSCI e temos uma posição curta em 3 lotes de Nifty, colocando assim a posição. Temos uma posição aberta o tempo todo. Para entender o que isso significa, considere dois sinais comerciais "comprar" e "vender". Para o sinal de "compra", como explicado anteriormente, compramos 3 lotes de futuro Nifty e um curto 1% de MSCI futuro. Uma vez que a posição é tomada, rastreamos a posição usando a coluna Status, ou seja, a coluna M. Em cada nova fila enquanto a posição continua, verificamos se a perda de parada (como mencionado na célula C6) ou o lucro obtido (como mencionado na célula C7) é atingido. A perda de stop é dado o valor de USD -100, ou seja, a perda de US $ 100 e o lucro obtido recebe o valor de USD 200 nas células C6 e C7, respectivamente. Enquanto a posição não atinge qualquer perda de parada ou lucro, continuamos com esse comércio e ignoramos todos os sinais que aparecem na coluna I. Uma vez que o comércio atinge a perda de parada ou o lucro, novamente começamos a olhar os sinais na coluna Eu e abrir uma nova posição comercial assim que tivermos o sinal de Compra ou Venda na coluna I.
A coluna M representa os sinais de negociação com base nos parâmetros de entrada especificados. Coluna Eu já tenho sinais de negociação e M nos fala sobre o status de nossa posição de negociação, ou seja, nós somos longos ou curtos ou reservamos os lucros ou saímos na parada de perda. Se o comércio não for encerrado, transportamos a posição para a próxima vela, repetindo o valor da coluna de status na vela anterior. Se o movimento do preço ocorrer de forma a quebrar o TP ou SL determinado, nós colocamos nossa posição, denotando-a assim por "TP" e "SL", respectivamente.
A coluna L representa Mark to Market. Especifica a posição da carteira no final do período de tempo. Conforme especificado nos parâmetros de entrada, trocamos 1 lote de MSCI e 3 lotes de Nifty. Então, quando trocamos nossa posição, a diferença de preço apropriada (dependendo da compra ou venda) é multiplicada pelo número de lotes.
A coluna N representa o status de lucro / perda do comércio. P / L é calculado apenas quando nós colocamos a nossa posição. A coluna O calcula o lucro acumulado.
A tabela de saída possui algumas métricas de desempenho tabuladas. A perda de todas as negociações de perda é de US $ 3699 e o lucro de negociações que atingiram TP é de US $ 9280. Então, o total de P / L é de US $ 9280- $ 3699 = $ 5581. Os negócios de perda são os negócios que resultaram na perda de dinheiro nas posições de negociação. Negociações rentáveis ​​são os negócios bem sucedidos que acabam por ganhar causa. O lucro médio é a proporção do lucro total para o número total de negócios. O lucro médio líquido é calculado depois de subtrair os custos de transação, que somam US $ 91,77.

Estratégia de reversão à média de negociação de pares
A negociação de pares é uma forma de reversão média que tem uma clara vantagem de estar sempre protegida contra movimentos do mercado. Geralmente, é uma estratégia alfa alta, quando apoiada por algumas estatísticas rigorosas. Este caderno é executado através dos seguintes conceitos.
O notebook destina-se a ser uma introdução ao conceito, e considerando que este portátil possui apenas um par, você provavelmente desejaria que seu algoritmo considerasse muitos pares de uma só vez.
O caderno foi originalmente criado para uma apresentação no departamento Applied CS de Harvard e desde então tem sido usado em Stanford, Cornell e em vários outros locais. Se você estiver interessado em saber mais sobre como o Quantopian está sendo usado como uma ferramenta de ensino nas melhores universidades, entre em contato comigo pelo e-mail [e-mail & # 160; protegido] an.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Veja um algoritmo muito simples com base na abordagem apresentada no caderno.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Aqui está um algoritmo mais sofisticado escrito por Ernie Chan. Esse algoritmo calcula um índice de hedge em vez de apenas manter quantidades iguais de cada título.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Coisas muito úteis.
O que o faz perder sistematicamente por quase 3 meses? A Cointegração falhou nesse período?
Basicamente, sim, eles acabaram por não se cointegrar nesse período de tempo, mas retornaram a ser conitegrated no longo prazo.
Eu acho que o rebaixamento que você aponta é um forte argumento de por que você realmente quer muitas negociações de pares ao mesmo tempo. Os pares podem ser cointegrados em diferentes escalas de tempo, e qualquer um não estará sempre em um estado comerciável (spread grande, spread pequeno). Ao aumentar o tamanho da amostra, é possível aumentar a probabilidade de que pelo menos um par seja altamente comercializável em um determinado momento e suavizar os solavancos estranhos que você vê aqui.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Obrigado por isso. Muito útil mesmo. Eu notei que você usou o teste Augmented-Dickey Fuller para o teste de cointegração. Você possui implementação semelhante usando o teste de Johansen? Não consigo encontrar o teste johansen com python.
Parece que, enquanto houve algumas tentativas de adicionar o teste de Johansen à biblioteca de statsmodels, atualmente não há implementação embutida. Aqui, por exemplo, é uma implementação de terceiros. Não tenho certeza quando será adicionado às bibliotecas do Python, existe uma maneira de você trabalhar sem ter isso?
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Obrigado. Eu vi esse link. Muito complicado de implementar e escrever tudo no IDE. Na verdade, Satya B tentou aqui tudopático / posts / trading-baskets-co-integrated-with-spy.
A beleza do teste de Johansen é que ele gera autovetores, que eu acho que você pode usar outros métodos para calcular, embora eu não consiga lembrar no momento, para até 12 ativos e muitas outras coisas, que podem ser usados ​​para criar um cesta. Eu estava olhando para uma estratégia de arborescência do índice de Ernie e tentando replicá-lo na plataforma da Q para avaliar o desempenho após as taxas / comm, etc. Notei que as tarifas pareciam checar um monte de desempenho. O ABGB & amp; O par de FSLR acima possui uma proporção de 0,75 de sharpe, mas terminou com uma proporção de sharpe de -0,29. Um monte de parecendo lucrativo pares acabou por ser não rentável após o spread bid / ask, taxas, comissão etc. Portanto, eu estou olhando para 3 ou mais ações par trading e index arb. O teste de johansen tornará isso mais fácil de implementar.
Eu continuarei tentando.
O caderno é uma excelente introdução estatística para o comércio de pares, eu recomendo a qualquer pessoa interessada no tópico também olhar para algumas pesquisas financeiras. Anatomia de Pairs Trading é um bom começo, e as referências também são úteis. Mais dois artigos gerais sobre estratégias de arbitragem de risco são Características de Risco e Retorno em Arbitragem de Risco e Arbitragem Limitada em Mercados de Ações. Há algumas lições caras que as pessoas aprenderam sobre a execução desses tipos de estratégias, e vale a pena conhecer as lições com antecedência. O forewarned é forearmed.
Anthony, é bom te ver aqui! Procurei uma boa implementação do teste de Johansen por um tempo, mas não consegui encontrar um. Há uma discussão (mas obsoleta) bem longa e solicitação de pull no github sobre incluí-la em statsmodels: github / statsmodels / statsmodels / issues / 448 e github / josef-pkt / statsmodels / commit / bf79e8ecb12d946f1113213692db6dac5df2b6e9 É realmente muito ruim Como definitivamente no financiamento quantitativo, isso é bastante utilizado.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Aaron Obrigado pela cabeça. Apreciá-lo vindo do seu. Vou passar algum tempo com esses papéis.
Thomas. Obrigado pelo link. Como você disse, é um pouco velho. Melhor do que nada, suponho.
Aqui está uma implementação em python para modelos de correção de erros vetoriais. Você também pode usá-lo para encontrar pesos de cointegração. econ. schreiberlin. de/software/vecmclass. py.
Aqui está uma versão do algoritmo de Ernie Chan modificado para negociar vários pares. Esta é uma boa maneira de obter múltiplos fluxos de retorno não correlacionados e reduzir o beta da estratégia geral.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Delany, Existem métodos disponíveis para a tela de pares usando testes estatísticos? Ou esses geralmente são computacionalmente caros?
Estamos trabalhando na forma de tornar os cadernos clonáveis ​​no próprio ambiente de pesquisa. Enquanto isso, os interessados ​​em brincar com o notebook do post original podem baixá-lo aqui. Após o download, envie-o para sua conta de pesquisa. Se você ainda não tiver uma conta de pesquisa, insira um algoritmo no concurso para receber acesso.
bom comerciante, o método fornecido no caderno exibirá uma lista de títulos para cointegração, a condição subjacente necessária para negociação de pares. O problema não é tanto a complexidade computacional quanto a perda de poder estatístico. Quanto mais comparações você fizer, menos peso deverá colocar em valores de p significativos. Este fenômeno é descrito aqui. Para ser estatisticamente rigoroso, você deve aplicar uma correção Bonferroni aos valores p obtidos a partir de um script de cointegração pairwise. A razão é que quanto mais valores p você gerar, maior a probabilidade de encontrar valores de p significativos que sejam espúrios e não reflitam o comportamento de cointegração real nos títulos subjacentes. Uma vez que o número de comparações feitas quando se busca a cointegração paritária em n títulos cresce a uma taxa de O (n ^ 2), mesmo olhando para 20 títulos tornaria a maioria dos testes estatísticos inúteis. Uma abordagem melhor é apresentar um pequeno conjunto de títulos candidatos usando a análise dos vínculos econômicos subjacentes. Um pequeno número de testes estatísticos pode então ser feito para determinar quais, se houver, pares são cointegrados. Deixe-me saber se é isso que você quis dizer.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Eu discordo um pouco sobre o problema com muitas comparações. A correção de Bonferroni é apropriada quando você está procurando a verdade. Por exemplo, se você tiver um questionário com 1.000 itens e você o dê para pessoas com e sem câncer, você encontrará em média 50 itens que se correlacionam com o câncer no nível de significância estatística de 5%, mesmo que nada na O questionário está relacionado ao câncer. Se você considerar combinações de dois ou mais itens, poderá gerar quantos correlatos desejar.
Mas ao projetar estratégias de negociação automatizadas, as relações coincidentes não o prejudicam muito. Eles adicionam ruídos aleatórios e custos de negociação aos seus resultados. Como poucos resultados são 100% insignificantes, a maioria das relações tem pelo menos um pequeno grau de persistência, não é crítico filtrar sua estratégia para aquelas rigorosamente validadas. Os lucros são importantes, não a verdade. Bonferroni e métricas semelhantes o empurram para as relações mais confiáveis ​​de forma estatística, que geralmente não são de utilidade econômica.
Se por & quot; análise dos links econômicos subjacentes & quot; Você quer dizer começar com pares naturais, como duas empresas semelhantes no mesmo setor, eu não achei isso útil. Basicamente, as pessoas percebem as coisas óbvias. Se você quer dizer pensar em relações menos óbvias, especialmente coisas que são invisíveis nos dados usuais que as pessoas usam, então eu concordo. Idealmente, você quer uma história econômica valestável para a dupla relação, o que explica tanto por que existe e por que não é arbitrado. Isso não apenas protege contra a mineração de dados, mas significa que você pode medir se o efeito continua a funcionar (sem isso, a única maneira de saber se a estratégia não está funcionando é quando você perde dinheiro).
Bom trabalho. Eu não leio seu caderno linha-por-linha, mas posso dizer que será um ótimo acréscimo à biblioteca de exemplos de Quantopian. E acompanhamento com algos compartilhados - bom movimento.
Você pode dar uma olhada no caderno que publiquei, quantopian / posts / analysis-of-minute-bar-trading-volumes-of-the-etfs-spy-and-sh. Para visualizar como um determinado par vai dentro e fora da cointegração, você poderia fazer uma trama similar. A aplicação do teste estatístico 390 vezes por dia de negociação ao longo de muitos anos exigiria alguma paciência.
Aaron Estou correto em ler seu argumento geralmente da seguinte maneira?
- No mundo real, Bonferroni é muito restritivo e o número de pares lucrativos que você perde através da correção supera a certeza estatística que você ganha.
Eu acho que concordamos quanto ao ponto final que você faz. Acho que muitas das pessoas que fazem a análise econômica de links são simplistas e ignoram as relações potencialmente interessantes que têm maior probabilidade de conter um alfa não arbitrário.
Obrigado. Estamos realmente planejando expandir a biblioteca de exemplo para um currículo de finanças cuidadoso completo ministrado com cadernos e algoritmos complementares. Nós vamos ter uma série de palestras de verão à medida que desenvolvemos mais tópicos, então fique atento para aqueles. Seu notebook é muito legal e eu me pergunto quão estáveis ​​são as pontuações de cointegração mesmo para pares fortemente cointegrados. Infelizmente, eu não acho que vou ter tempo para investigar isso em um futuro próximo com a produção de nossos outros cadernos de currículo. Estamos à procura de colaboradores convidados, no entanto. Se você tiver algum bloco de anotações que gostaria de ser incluído em nosso currículo com todo o crédito para o (s) autor (es), envie-o do meu jeito e veremos se ele se encaixaria em nosso conteúdo atual.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
No mundo real, Bonferroni é muito restritivo e o número de pares lucrativos que você perde através da correção supera a certeza estatística que você ganha.
Não precisamente. Sim, Bonferroni é muito restritivo no sentido de que lhe dá poucos pares, mas Bonferroni também o direciona para os pares errados.
No exemplo de um questionário com 1.000 itens fornecidos a pacientes com câncer e pacientes que não são câncer, é provável que a maioria dos itens não tenha efeito sobre o câncer ou pelo menos os efeitos fracos e complexos que ele é não vale a pena usá-los para obter um conselho médico. Então, se você quer um significado de 5%, você testa cada item no nível de 0,005% (você quer 3,9 desvios-padrão, e não apenas 1,6). Você não se importa com isso, porque qualquer efeito real forte o suficiente para importar provavelmente aparecerá com um forte significado. Se você não fez Bonferroni, você acabaria com 50 recomendações mesmo quando nenhum dos itens importasse, e um monte de conselhos inúteis.
Aliás, Bonferroni é uma correção muito conservadora, e há mais sofisticados que permitem mais itens.
Mas se você tiver 1.000 pares para testar, é provável que muitos deles tenham algum grau de previsibilidade cointegral. Mesmo se não houver previsibilidade, incluir o par extra só adiciona um pouco de ruído à sua estratégia, o que não é terrível. Além disso, você não acredita que qualquer um deles tenha uma previsibilidade tão forte que qualquer um teria percebido e descartado. Portanto, é razoável considerar todos os pares com 5% de significância ou menos e filtrá-los usando critérios econômicos ou outros não relacionados aos dados. Selecionar apenas as relações estatísticas mais fortes não é sábio.
Você pode configurá-lo em uma estrutura bayesiana se desejar consistência e precisão; ou você pode usar apenas regras ad hoc.
Apenas para os il-pair-literados que querem aprender. deve haver uma história por trás do par? Deveria haver uma explicação lógica? Brinquei com pares e descobri, por exemplo, que MorganStanley e Expedia trabalham. mas por que? Ou não queremos saber por quê?
deve haver uma história por trás do par?
Esta é realmente uma questão semântica, em vez de financeira. Se você adotou uma abordagem estatística pura sem consideração dos pares reais, você acabaria com centenas ou milhares de pares, incluindo alguns sobrepostos. Então, nós não chamaríamos de estratégia de negociação de pares, mas uma estratégia de equidade longa e curta.
A idéia de troca de pares é que você pode obter uma visão adicional, considerando razões específicas para a dependência entre os estoques; e essa percepção pode resultar em um posicionamento mais preciso, e também evitar grandes perdas quando a relação se rompe.
Relações óbvias, como duas ações de grande capitalização na mesma indústria, tendem a não ser úteis. Isso é confuso às vezes, porque alguns dos famosos pares iniciais envolviam esses pares, e eles ainda são usados ​​como exemplos na maioria dos textos. Mas muitas pessoas estão observando esses spreads muito de perto para obter os altos índices de Sharpe que você precisa para estratégias não diversificadas, como troca de pares. Deixe os Sharpes marginais para as pessoas de capital muito curto que têm muito mais posições.
Além disso, quando falamos de uma razão para a relação de pares, estamos falando tanto de um positivo - por que é difícil imaginar um mundo em que os valores dessas empresas divergir de suas proporções históricas - e um negativo - Por que essas ações respondem a diferentes notícias econômicas? Assim, para duas empresas quase idênticas, a primeira pergunta é fácil, mas a segunda é difícil. Para duas empresas aparentemente não relacionadas, como a MS e a EXPE, é o contrário. Você pode dizer algo como: "Em uma boa economia, o Morgan Stanley ganha muitos negócios e as pessoas viajam muito", & quot; mas isso é basicamente verdade em quase todas as duas empresas.
A razão dos pares clássicos foram duas empresas que responderam aos mesmos fatores econômicos básicos, como preços do petróleo ou taxas de juros ou força do dólar, mas em diferentes pontos da cadeia de fornecimento, dizem os preços do petróleo versus a receita do posto de gasolina. Um único link não é bom o suficiente, praticamente todas as empresas respondem a esses fatores. Mas você pode encontrar pares que combinem com fatores mais restritos, como a atividade de fracking no nordeste dos Estados Unidos ou a precipitação na região central da Califórnia, ou que combinem com uma série de fatores gerais. Ou você pode encontrar duas empresas que atualmente estão em empresas semelhantes, mas que, por razões históricas, estão listadas em setores diferentes. Outra situação comum é a de duas empresas envolvidas em diferentes pontos do ciclo de vida de ativos duráveis; construtores de casas e lojas de móveis com geografia similar, por exemplo.
De qualquer forma, quando você tem um motivo, você tem coisas para monitorar para ajustar sua posição; e para alertá-lo se uma grande deslocação é uma grande oportunidade comercial ou um sinal do que a relação histórica quebrou. Se você não tem um motivo, é melhor ter muita diversificação, o que significa que não pode pagar o trabalho de análise específico de cada par.
Você não admitiria que, se um par tem uma história, então essa história é conhecida e, portanto, não lucrativa para os comerciantes de varejo lentos para negociar? E se alguém pudesse extrair os dados e descobrir, através dos dados, histórias inesperadas que poderiam pelo menos competir no espaço de troca de pares? Eu vejo seu ponto em manter um grande grupo de pares se as histórias que conectam os participantes são fracas ou inexploradas, mas ainda assim, se nós subordinados desejamos participar, por que não usaríamos tal técnica? Ou você sustenta que os comerciantes de varejo podem capturar e lucrar com spreads de pares anômalos de casais bem conhecidos?
Você não admitiria que, se um par tem uma história, então essa história é conhecida e, portanto, não lucrativa para os comerciantes de varejo lentos para negociar?
Não, eu não concordaria com essa opinião. O comércio de pares tende a ser de baixa capacidade, especialmente em estoques de menor capital, e requer muito trabalho. Não é atraente para os gerentes de ativos porque os valores de investimento e as características de risco são erráticas. É principalmente prosseguido por comerciantes profissionais individuais a tempo inteiro, que podem seguir uma dúzia de pares, além de algumas dúzias de outras estratégias, e comerciantes semi-profissionais que estão dispostos a levar o que o mercado lhes dá e ficar em dinheiro quando nenhuma das suas estratégias é atraente. Há mais pares bons do que comerciantes competentes que os persigam.
Em princípio, você pode encontrar bons pares usando um filtro automatizado inteligente, ou lendo e pensando. Meu sentimento geral é o primeiro é mais difícil, e se você vai fazê-lo, você vai querer fazê-lo para identificar um grande número de bons pares, em vez de dois ou três grandes pares. Nesse caso, eu digo simplesmente mudar para equidade longa e curto e esquecer pares. A coisa boa sobre ler e pensar é que os mais bons são preguiçosos e preferem deixar o computador fazer o trabalho. Então você está competindo com os não-quants, alguns dos quais são muito bons em ler e pensar, mas estão em uma grande desvantagem para alguém com um computador que sabe um pouco de matemática.
Eu não quero parecer dogmático, qualquer um que faça o que as outras pessoas dizem não é susceptível de encontrar grande sucesso em qualquer tipo de negociação. Se você acha que pode projetar um algoritmo para identificar bons pares, não há danos na tentativa. Isso simplesmente não me parece a abordagem mais promissora.
. Demora muito trabalho.
Sim. Os pares fáceis de trocar dinheiro foram feitos há muito tempo. Histórias lucrativas em ações de menor capital, embora expõe um par para as aberrações da menor volatilidade da empresa não? & quot; Opa, esse estoque solar acabou de perder seu contrato principal. Ou, uau, aquele perfurador acabou de receber um contrato estatal inesperado. & Quot; E então a história é reescrita, ou você ou quatro páginas são arrancadas. Pode-se captar tais prelúdios para as mudanças de histórias, se alguém só assiste a uma dúzia de histórias. Mas aqui, quando procuramos evitar a exibição de histórias - sendo totalmente automatizadas, ficamos cravados por essas falhas narrativas em relacionamentos com apenas alguns pares.
Quando você diz mudar para equações longas / curtas, você parece defender o abandono da busca estatística por histórias obscuras (talvez caprichosas) em vez de uma reversão à média mais ampla - isso é verdade? Mas, se alguém tem as ferramentas, por que não criar dezenas e dezenas de negócios de dupla estranhos. Certo, as histórias podem não existir. Mas, novamente, talvez você descubra 10 ou 20 que são únicos. E através de um processo de eliminar os parceiros mal pareados, você acaba com um conjunto gerenciável que é capaz de dançar com as estrelas? Este site não é nada, senão um experimento massivo na mineração de dados, não?
Again, I'm not trying to law down laws here, but the two straightforward approaches are (a) try to find a few pairs you can understand or (b) forget about pairs and just try to build a large portfolio of longs and shorts without worrying about pairing up stocks or doing unautomated research. In other words (a) niche clever research or (b) massive data mining.
Trying to split the difference by finding dozens of pairs but not doing the tailored research necessary to understand each one seems suboptimal.
try to find a few pairs you can understand.
If I'm reading things correctly, by "understand" you mean that there should be some underlying intuitive story behind the relationship, I suppose so that there is less risk that the relationship will suddenly disappear? Are you talking about a kind of narrative, "The reason we think this is happening, but can't really explain with a model, is. & quot; or an explanatory quantitative model that provides the story behind the relationship? Say I find a pairs trade based on the idea that when consumers buy lots of eggs, bacon sales drop off, and vice versa. I could make up a story that people can only eat so much for breakfast, and leave it at that. I have a warm, fuzzy feeling, and if I'm a professional trader, hopefully my management will feel warm and fuzzy, too. But is the risk really any different without the story? Unless I actually find a relevant study on breakfast eating, or conduct one myself, then I could just be deluded. And if the underlying cause can't be coded into a set of rules, then it is not really automated quantitative trading, right? As a Quantopian user who doesn't do this sort of thing for a living, I need to get an algo in the Quantopian hedge fund, let it run, and collect a check. No time for doing lots of offline analyses.
There are more good pairs than there are competent traders chasing them.
sounds like the land of milk and honey for us inhabitants of Quantopia. This would say that the Quantopian team should think about churning out candidate pairs for their 35,000+ users to examine like a bunch of ants, trying to come up with stories for a subset of them ("I'll take XYZ & PDQ, do some research, and see if I can find a 'story' to support the relationship.").
I'm just trying to sort out if any of this can be reduced to practice for Joe Schmo Quantopian user, or if it is a hopeless endeavor. Is there a path for Quantopian to get hundreds of lucrative, scalable pairs trading algos for their $10B hedge fund (keep in mind that by my estimation, they need several thousand distinct algos in the fund)? Or is this all a bunch of blah, blah, blah?
I've tried the automated searching of pairs/baskets, using the public knowledge techniques, and though I haven't gone through them all with my tick-level back-tester, the few that I did examine personally were largely worthless; the supposed spread mean-reversion that my grid search turned up was just spurious or due to bid-ask bounce.
However, I do know for a fact that people run decently profitable automated pairs trading portfolios. I take that to mean that it is possible, but the way that I approached it was naive. Perhaps the legwork method is the way to go, coming up with theses about drivers and then looking for portfolios that would express the theses, with the actual hedge ratio construction done "rigorously" using Kalman filters or whatever.
My take is that chatting about pairs trading is wonderful, but there should be a focus on reducing it to practice, with some sort of approachable workflow, so that a Quantopian user can sit down in his pajamas with a cup of coffee on a rainy day and actually come up with a halfway decent algo that would have a shot at getting into the crowd-sourced Q fund. For example, we have:
. try to find a few pairs you can understand.
Perhaps the legwork method is the way to go, coming up with theses about drivers.
O. K. So what's the workflow for your typical Q user? Keep in mind, this needs to be scalable. it won't do Q any good if only users with an advanced degree and 20 years of industry experience can be successful. If the answer is, "Well, there is no workflow. you just need to know" then pairs trading won't be approachable on Q. We have Aaron's "reading and thinking" recommendation above, but read what?
Also, I'd seen somewhere that there are techniques for synthesizing trading pairs, from baskets of securities. Does this work? Or does one effectively end up with the long-short equity portfolio referred to by Aaron Brown above?
The kind of warm-and-fuzzy story you mention is worthless for investing, although as you say it can reassure investors and regulators. What you're looking for is covariates to refine your strategy and, most important, warn you when it's not going to work. The quant trap is that when your relation breaks it simply looks more attractive to your model, and you spiral to doom.
The eggs-and-bacon story is actually the reverse of what you want. That says there is a fixed total consumption, so the total amount consumed of both products is fixed, meaning they are negatively cointegrated. If they were positively correlated, say because investors bid up or down all breakfast foods as a group, you would do anti-pairs trading. You're looking for things that have to be in some kind of long-term balance, but move is opposite directions in the short-term. A warm-and-fuzzy story might be residential construction and furniture sales, in the short run if people are saving for down payments they're not buying furniture, and newly house poor families are making due with old furniture and underfurnishing. But in the long run, houses will get furnished. This would never be a pairs trading story because it's relating entire sectors. To exploit this, you'd build a model tracing the full life cycle, and likely involving other factors like interest rates and family demographics and migration patterns, and trade large numbers of stocks.
To keep this practical, here is a Pairs Trading for Dummies recipe (I mean that respectfully, I'm a big fan for For Dummies books).
Run some kind of statistical screen to identify promising pairs trading targets. Don't look for extreme statistical significance, just some moderate level to screen out the noise like 5% or 1%. It can help to limit one member of each pair to companies or regions you know something about.
Clearly this is for someone who has quant skills, but also general research skills and business judgment.
Run some kind of statistical screen to identify promising pairs trading targets. Don't look for extreme statistical significance, just some moderate level to screen out the noise like 5% or 1%. It can help to limit one member of each pair to companies or regions you know something about.
it sounds like it could be productive for Quantopian to open-source some efficient tools for the screening (and maybe up their game in terms of computing resources). Let's say I'm an expert on company XYZ and maybe I could narrow down my field of candidate securities for comparison to NASDAQ-listed stocks, of which there are about 3,000. So, it is an O(N) computing problem, not O(N^2) as Delaney mentions above for the general screening problem. But, I'd like to compute the statistics on a rolling basis, every trading minute over 2 years. I'd have:
(3000 comparisons/minute)(390 minutes/day)(252 days/year)(2 years) = 589,680,000 comparisons.
Is something like this at all feasible on the Quantopian research platform? If not, how would I scale it back to something that would actually run in a reasonable amount of time (a few days at most) but still provide useful results?
I'm playing around with the algorithm by Ernie Chan that you posted.
Surprisingly, it fails entirely when I swap the pair, see the attached backtest (I've only changed the order).
Also, how to treat the negative hedge (beta from OLS). With the current implementation we go long (short) on both positions when the sign of the hedge is the same as the sign of the z-score, which you don't expect from pair trading. What economic reason can lead to such cointegrations?
Not sure exactly why it's failing when you swap the order. Seems like the math may not be robust to an 'upside-down' par. The hedge ratio comes from the formal definition of cointegration, which is that for some b and u_t = y_t - b * x_t, u_t is stationary (the mean stays the same). Therefore we try to estimate the b parameter in each trade so that we can correctly produce a stationary drift between the two securities. It can be the case that the two are negatively cointegrated, whether there's a strong economic reason for this I'm not sure. You might try putting in place restrictions to not trade when you have double long or double short positions, or employing a better estimation method for b (more data points for example).
All of the issues you bring up are very sophisticated improvements, and making these improvements to the algorithm could result in something very good. I don't have cut and dried solutions for you, as you are now dancing around the edge of what is known about algorithmic trading. A lot of it comes down to rigorously testing different signal processing methods to see which yield the best out of sample performance. Also, like you said it's important to let the economic reasoning drive the creation of your model.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Thank you for your quick reply.
This is actually a very valuable response, as I was afraid I might have missed something obvious.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Here is a temp website which has similarity of movement information, which is about the same idea as pairs. StockA is the stock you are comparing to, row is how this pair ranks to all pairs, (its row count). It only contains information for the top 5000 or so pairs.
The data is pulled from the period of Aug 2014 to Feb 2015 and is an average of each day.
(Change IYR to symbol wanted)
The idea behind the algorithm is not actually for pairs trading, but is for similarity of how a pair moves. I will leave this test site up for a few weeks.
Thanks Delaney. It's a great starting step for pair trading technique.
I am working on the missing piece of this strategy which is how to use Quantopian Research environment to find statistical cointegration stock/ETF pairs from entire universe or from the same sectors. After I construct good pairs, then I can use the Notebook you provided for further analysis and backtest.
Does anyone have any suggestion for me?
I have a question for those trading pairs.
How do you deal with the large processing requirements?
I coded some tests for co-integration and results per combination take roughly 1 second.
I can get this down with parallel processing and by storing data locally but a universe of 2000 stocks will still have 4000000 potential combinations.
Perhaps pointing out the obvious, but .
A pre-screening tool, or pre-screening done for you for a fee .
When I was researching this sort of thing a couple of years ago, the baskets of 3 and 4 of only a few hundred ETFs took months on my MacBook. And they were all mostly garbage, though I never actually went through them all. I probably should.
If I remember correctly, that was 1.6T combinations, or something like that.
The formula is R to the Sterling S, divided by S!
so, for 4000 stocks, it would be.
(4000 x3999)/2! or, about 8 million pairs made from the 4000 typical stocks. for 3 stocks considered together, there would be 4000 x 3999 x 3998 /3!
You can prune the possible tree pretty easily though. I believe most stocks behave as if they really were ETFs (at the market neutral way of looking at it only) and can be represented by a group of other stocks, that move with their same fundamentals. You only have to know what sectors they move with, and then check for pairs against this.
So, for example, with HLF, it moves with consumer, several currencies, emerging markets, and a few others. It is hard to separate out exactly as emerging markets also move with currency, so which is which becomes the question.
For two typical tech stocks that appear to be very similar, it may well be the case that their main difference is which currencies they move with. So, for most of the time, they may appear co-integrated, but then, when there is a difference in currencies that affects one a lot, and not so much the other, they then move apart.
I was working on an algorithm to determine the underlying components, (so to speak) that collectively make each stock behave with the same logic as if it was a multi-sector ETF. (where the underlying stocks are a mystery to be solved) I have most of it done, and I believe I have enough done to prove it does work this way, but I lost my real time quote stream a few months ago, and so stopped working on it.
since my algorithm would need to consider up to 15 underlying components to solve this problem, it would be 4000 x 3999 x3998 . 3985/15! So, I have to trim it. The link I posted a few messages above shows some of the results of this work, where I first determine the possible stocks to consider, for each symbol.
It is my belief that the market is essentially swamped out with pairs trading, and this is why it works so mathematically perfect for each stock to behave as if it is an ETF.
There is certainly a high computational cost to looking at all possible pairs. However, there is a tradeoff to this approach, as you put yourself at a high risk for multiple comparisons bias. Please see earlier in this thread for a fairly complete discussion of this issue. Regardless of which method you use to select pairs, you'll want to do some additional validation using the notebook and then use the algorithms in this thread to try backtesting a strategy.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Indeed, Aaron Brown's advice is gold.
What is "multiple comparisons bias"? I'm lazy and don't feel like sifting through this rather extensive discussion thread.
I find it hard to believe that pairs trading would work as a scalable hedge fund strategy (be able to pour $10's of millions into a single pair). Is there any evidence? In other words, why is Quantopian promoting this?
This is one of the best threads on the site.
It scales; you can trade hundreds of pairs.
Multiple comparisons is a core problem in all of statistics, right up there with overfitting. The general idea is that if you run 100 statistical tests on random data, you should still expect to get 5 below a 5% cutoff and 1 below a 1% cutoff based on random chance. This is true when testing various iterations of a model, or many pairs. Because the number of pairs is O(n^2) you should expect to get a lot of spurious p-values when looking for pairs. A naive strategy of just looping through pairs won't work, you need to be a bit more sophisticated.
And yes you trade many pairs with low exposure to each. That said, I think that long-short equity strategies may be a better first bet to get into the fund at this point, just based on robustness and capacity.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
There is more electricity used in the state of New Jersey doing calculations on the market than there is electricity used in that state for manufacturing. Pairs strategy likely accounts for at least 50% of this usage as even HFT likely often uses some version of deviation from the mean. It is my opinion that the market is so saturated with pairs trading that given the price of any ten tickers that had no big news, one could deduce the price of the rest of the market and be within 0.7% of the actual price, 90% of the time for the top traded 4000 stocks. (and it could probably be done with less than ten tickers. ) So, for a 30 dollar stock, the margin of error would be about a quarter. This is how precisely, compared to each other, I think they move. Until there is news.
It sounds like a corollary to the reciprocal of the law of large numbers; given enough samples you will always find something to fit.
I would reintroduce the concept I proposed in an article in S&C last spring ; the directed acyclic graph or DAG. Using thousands of correlated or cointegrated pairs I built groups from them. Those groups were essentially social graphs of securities. You can search here for DAG, but briefly, you can use the concept of pair trading, that is, fade and favor the divergences, but with a correlated group. And such a group is assembled, dynamically, from a list of pairs that are "friends of friends". It's a pairs strategy, essentially, but with lower risk and less work managing hundreds of separate strategies.
That said, I think that long-short equity strategies may be a better first bet to get into the fund at this point, just based on robustness and capacity.
Have people been coming up with good ones? If so, what proportion are using the new data sets? If not, why not, do you think that is?
I haven't been focusing on them at all, mostly because there's a problem of opportunity cost; if I spend all my time looking for equity long-short algos, not only is there a chance I don't find anything, but if I do, there's still a chance that Quantopian doesn't select it, and since I cannot trade them myself, that time is wasted (unless I pitch it to other funds I suppose). If I look for algos that I personally can trade, and I find some, then I trade them.
I realize there's an unfortunate schism wherein I am using your platform but not contributing to your business model, so if you have any ideas how I can help without wasting my time writing algos that only work high account levels, please let me know. Pairs trading/statistical arbitrage might be one solution, but I've found them very difficult to implement; anything that looks promising in Quantopian fails the backtest when using dividend-adjusted bid-ask tick data, so I might shift my focus back to building my own lower latency infrastructure for a while.
I would reintroduce the concept I proposed in an article in S&C last spring ; the directed acyclic graph or DAG. Using thousands of correlated or cointegrated pairs I built groups from them.
Legal. Yeah, pretty similar. The DAG though was used specifically to find the networked graph. Those trees might embody the same thing, not sure. But I'd guess the idea is approximate.
Why would anyone want to pairs trade when trading a Minimum Spanning Tree or correlated network graph of stocks is so much safer and easier? I've built dozens of pairs strategies and the directionality of the pair always broke the model. And all pairs I ever tested all went directional at some point -- beyond the account's ability to Martingale down.
Have people been coming up with good ones? If so, what proportion are using the new data sets? If not, why not, do you think that is?
I can't release any specific data on this. I can say that there's a lag between when we update product features/try to educate people about algorithm writing techniques (larger universe size, shorting), and when new strategies start appearing. We'd love more large universe strategies right now and I'm trying to figure out ways to make it easier for folks to develop large universe long-short strategies using pipeline.
I haven't been focusing on them at all, mostly because there's a problem of opportunity cost; if I spend all my time looking for equity long-short algos, not only is there a chance I don't find anything, but if I do, there's still a chance that Quantopian doesn't select it, and since I cannot trade them myself, that time is wasted (unless I pitch it to other funds I suppose). If I look for algos that I personally can trade, and I find some, then I trade them.
I realize there's an unfortunate schism wherein I am using your platform but not contributing to your business model, so if you have any ideas how I can help without wasting my time writing algos that only work high account levels, please let me know. Pairs trading/statistical arbitrage might be one solution, but I've found them very difficult to implement; anything that looks promising in Quantopian fails the backtest when using dividend-adjusted bid-ask tick data, so I might shift my focus back to building my own lower latency infrastructure for a while.
Totally reasonable. We don't release our product with the expectation that everybody will use it to develop strategies for the fund, we also want to support your use case of personal trading. We also understand there's a conflict between pushing people to write high capacity market neutral long-short strategies, when those will never work on their own money. What I'm trying to figure out is ways to make the workflow of producing and evaluating factors easier, because once you have a factor-based ranking system, it's pretty easy to slot that into an existing long-short algorithm using pipeline. I'm working on sharing a pipeline algorithm with the community and attaching it to the lectures page in an effort to get more cloning and tweaking going on.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
I share Simon's sentiment. I've continued to participate in the contests, but the idea of spending tens (hundreds?) of hours trying to come up with an uber algo that will compete with the big dogs sounds like a lot of work, with a very uncertain pay-off (it's not even clear that you are still working on the hedge fund. any substantive news?). The pipeline thingy has a bit of a learning curve, so I haven't taken that on yet (the fact that lots of obscure modules need to be imported is a red flag). That said, if there were good working examples that could be tweaked, I might give it a go.
What I'm trying to figure out is ways to make the workflow of producing and evaluating factors easier, because once you have a factor-based ranking system, it's pretty easy to slot that into an existing long-short algorithm using pipeline.
Why don't you get all of the Q eggheads together for 1 week and see if you can come up with a long-short algo that would be Q hedge-fundable, and publish it (and better yet, actually fund it). Not only would this provide an existence proof, but you should also gain some insight into the workflow and the person-hours to accomplish the task.
Here is a pipeline algorithm that I just published as the goto example of a long-short equity strategy. I'm sure it will go through many improvements as the public eye turns to it, but it should at least be a start. It's tricky because we do want to publish algorithms that are 95% of the way done, so that users can take the last 5% and improve the strategies in many different uncorrelated ways. With long-short equity most of the work is in choosing good factors and factor ranking techniques. Unfortunately those are the type of signals that will disappear when shared publicly, but the actual machinery to trade within the algorithm should stay pretty consistent. If you're maybe looking to learn pipeline a bit, I would recommend going through Lectures 17 and 18, then looking at the algorithm.
I can say for certain we are working on the hedge fund. Even if you have strategies that aren't consistently winning the contest, we may be interested in an algorithm that can consistently do ok. Ultimately, my job as the one overseeing the lectures is to keep trying to make it easier so people don't have to spend as much time working on algorithms that may never pay off for them, and so we get more algorithms that do pay off in the long run.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
I start to implement pair trading backtesting in research environment instead of IDE. The main reason is to automatic run multiple pairs performance analysis before I jump into IDE for full backtest. Another reason for this work is to do further analysis for returns from many pairs.
I am wondering where I can find the example of backtesting in research environment to start with. Any comment is very appreciated.
In your research environment there should be a 'Tutorials and Documentation' pasta. Inside the folder should be a notebook with the title 'Tutorial (Advanced) - Backtesting with Zipline'. Make a copy of that and let me know if that's enough to get you started.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
May 28 algo falls below benchmark if extended to date and -43% PvR with default slippage and commissions, tanking thru 2015.
Hope it can be rescued b/c it shows good potential.
The example strategies cheat and run on the same timeframe over which we did research and found the securities to be cointegrated. In a real strategy you'd want to find pairs that were cointegrated into the future and not just historically cointegrated. The template should stay largely the same, so it's an issue of swapping in new securities that you have statistical evidence will stay cointegrated.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Could you post a tutorial on calibrating an Ornstein Uhlenbeck process for mean reverting series residuals?
We've added a lecture on this to our queue. No idea when we might currently get to it, but it's on there.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Ages ago I posted, perhaps as anonymole, that a "pair" needn't be made of only two securities. In fact, the whole "we only allow low beta strats" mantra is pretty much an argument that all strategies should be a variation of a pairs strat. That is, over all, a market neutral position is best.
Taking this further however, and applying a more formal model to the pairs strategy (that the security set have a "story" attached to it) I wonder if the two halves of the pair would do better as independent baskets of securities. That if one approached a pairs strategy with the mind to match up two behaviorally opposed baskets of securities that instead of trying to search all pair combinations looking for all the super-great-marvelous attributes a pair should have, that instead, one determine the two sides of the pair coin and fill each side with the most appropriately identified securities -- for each side.
A simplistic model might be described thusly:
Equities which cycle up in the spring/summer and down in the fall/winter would be bundled together and set against equities which cycle oppositely (down in the summer, up in the winter).
No doubt there are more interesting or undiscovered cycles that exist. My point is that rather than identify securities that yin and yang, one discover technical, or macro, or fundamental classifications which zig when the other zags. Then find securities which fit each of those baskets of behavior.
This is a very interesting idea and definitely something that professional quants do. At the core we just want two assets on either side of a pair, and a portfolio of assets will do just as well as a single equity. There are probably pros and cons of each method, but the idea of using a basket of things rather than a single thing can greatly reduce your position concentration risk and lead to a better algorithm. I'd say it's worth research. You'd still likely want a few different pairs of baskets as each would smooth out the return curve of the other and produce a lower volatility algorithm.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
I have to run an errand, so I only have five minutes, but hopefully I can be clear in that time.
To demonstrate the chops of an AI system, I created an algorithm that can represent the small changes in stocks price, as the sum of a set of ETFs. For example, with MSFT one might have XLK, XLY, FXE, FXI, and some others.
I can show that the typical price movements during a day can be represented in this way. However, when there is specific news, then it is no longer true, if the news is strong.
What I believe this shows is that instead of things "returning to the mean" they are in fact not moving arbitrarily and so, if they return to the mean, it is because one of the underlying components in fact moved. (Of all the underlying components, usually only one or two have news, and the rest are balancing each other out, once the price has adjusted.)
How might one design a trading platform for this as even if you do know it is the sum of other waveforms that are causing one waveform, one still doesn't know what causes them to move until after the fact.
(the reduction in influence is 1/1.6 when looking at the components, so after a couple of feedback loops, the influence is not measurable. Thanks, and sorry for the hurried note,
Have you read Algorithmic Trading written by Ernie Chan? For sure you read it, I have a question: in fact I am not good in programming and working with Matlab, I am really interested in Currency cross rate part of the book and I want to implement the positions in live trading but I don't know how to do that in fact I can't understand what the numbers as positions mean! If somebody can guide me I'm really appreciated.
Not entirely sure I'm understanding your thesis but it seems that you've created an expression that models the returns of a specific stock from it's sector exposures. This is actually a common risk modeling tactic, check out my notebook here. To build a trading strategy off of this I would take your hypothesis about changing news and use that to alter the coefficients of your model. A cool place to start would be to check out the lectures on factor modeling and then maybe look at some news/sentiment data sets to see if you can find any anomalies.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
That is close. It models the returns to within a few cents usually, at any moment in time, depending on the stock and its volatility as a sum of its sectors. (except when it has specific news.) What I envision behind it is a large set of funds using NLP to invest by sector based on news. Because they are so large, then they tend to swamp out the market during normal times.
I can also show that stock prices changes are directly proportional to the sum of the underlying sectors information, for most time periods. For example, the price changes for three months show this and also for three weeks, which is a bit chaos like, as it would seem they wouldnt be so perfectly in tune. Anyway, with this I can sort stocks by their overall market efficiency (the more efficient you are, the more you sync with the relationship stated above).
I also believe that there are huge funds that are interested in doing nothing more than treading water (as one possible explanation) and they move their money around the world, just trying to stay even, and so the result is that at any given time, the sum of everything stays near zero. (when one thing goes up somewhere, something else somewhere else goes down.)
These relationships also break down during periods of very high volatility such as fall 2015.
There are other things I am able to quantify, but again have no idea how to use. When information about a specific stock or sector hits the market, it is my observation that the more objective the information, the faster the market responds, and the more subjective it is, the slower the market responds.
For example, when Ackman says that HLF is a pyramid scheme, then it can sometimes be hours, and sometimes even days before that news is no longer affecting the price of the stock, but when an analyst upgrades or downgrades a stock, that is more objective and the entire price adjustment is over in fifteen minutes. (If you subtract out market movements then an analysts announcement looks like a log curve, with most of the action in the beginning and a bit of a ringing at the last.)
Again, this all happens too fast to be of use, and it is after the fact that I can say, "That was subjective."
I don't think I am able to alter the coefficients as you suggest. I am using a hard coded take on a system of recursive polynomials for my modeling, so there are billions of coefficients.
Hi, I have a quick and possibly dumb question. Why did you use the ratio instead of the difference between S1 and S2 in the Quantopain pairs trading lecture? In the co-integration lecture, you use the difference instead. In other sources, they use the difference as well.
There's an updated notebook, algorithm, and video available on the lecture series page.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
And as a response to pandasaurus' question, which I unfortunately just saw, we have removed the ratio as it was a typo in the lecture.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Greetings Quantopian Community,
I was at the NYC Event on Pairs Trading, and the current example algorithm is deprecated, such that one cannot deploy it in live trading. With this fix, users can now deploy the algorithm in live trading. The fix is hosted as a pull request on github--thanks.
Muito obrigado. Could you please submit your PR to the following repo? It's where we store lectures and examples. Doesn't quite fit in the current form of zipline.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Thanks, Delaney. I submitted the PR to the specified branch.
Obrigado! Delaney. I am finishing my graduation thesis these days, Your work may help me a lot.
That's great to hear, Dzi. Hope it goes well!
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
I have question in regards to high frequency pairs trading using bid/ask price. One thing that I noticed is during an entry signal if I'm supposed to go long in one and short the other, the Long position that I enter would be using the ask price and this ask price normally is higher than the bid price, so when my exit signals to exit, my bid price that I close my position at will often cause me to loose than make money. What are some of the ways to prevent this from happening or what are some strategies that goes hand in hand with trading high frequently with pairs strategy. Further, how are limit orders used with the bid/ask price.
If you need to make the spread in order for the strategy to be profitable, then you are squarely competing with high-frequency market makers, and it's a whole different ball game. You are unlikely to win. If you have control over the specific order types you send, you could attempt to use mid-point pegs or something, but as soon as you admit any sort of limit orders where execution is not immediate, you now need to be concerned about being exposed unhedged, which is something that you'll need to backtest. (not easy either). What some people do is try and rest or peg an order for the less liquid leg, and attempt to save some of the cost of the wider spread (though again, these days, you'll probably just get adversely selected for no net gain), and then as soon as that fills, you aggressively execute the hedge leg across the narrower spread.
How does one use both bid and ask z score in high frequency trading? For simplicity, I can understand using z score, but when it comes to using both bid and ask price z score, I have trouble picturing how it is used.
Simon's right, mid-frequency strategies generally should be fairly robust to bid-ask spreads. If they're not the edge is probably too small to be consistently profitable. For high frequency trading you do have to consider the bid and ask in many different ways, as your trading will be very sensitive to movements in both. How exactly you use the data would depend on your model.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
You can imagine that the spread is a synthetic asset. For instance, X = 1L -1S so a single unit of X is long one unit of L and short one unit of S. If you need to buy one unit of X immediately, you will buy at the ask of L and sell at the bid of S. If you need to sell one unit of X, you will sell at the bid of L and buy at the ask of S.
You can then easily calculate the bid and ask for X, you have just two "z-scores" to deal with. Then, if you like, you can delay buying until the X_ask_zscore < threshold, and delay selling until the X_bid_zscore > exit_threshold.
Espero que isto ajude.
I had a chance to see this notebook before and I would recommend it to everyone here. Lots of amazing info can be found inside.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian. Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
Hey Simon. thanks for that last post. I've been thinking through the logic behind that, but I do have some questions. Hope you don't mind explaining or expanding on it a little. 1) If I understood you correctly you mean X being the spread between a pair? in other words one unit of X immediately to be traded immediately, I would think that you will buy at the ask of X rather than L to be immediate wouldn't you? One problem that I would encounter by buying one unit of X at the ask price of L would be that the ask price of L may not be the lowest ask price of X and therefore may cause me to still queue to purchase the unit of X or not even fill. Can you say a little more in regards to this?
2) Further, there is one concept that I'm having a hard time to understand. Let's say that my Z score > entry threshold of +2. I would short L by one unit by selling one unit of L at the bid price of L and go long one unit of Y at the ask price of Y. Assuming hedge ratio is 1 and all. When my Z score < exit threshold of say 0.2. I would then exit my short and long position of the pair. The issue that I would encounter assuming no fees and all is that I would loose money during these trades. I'm having a hard time understanding why that would be if my Z score returned to or close to mean. Is the reason behind this due to the fact that the volatility of the bid/ask price may not be high enough to allow the difference in the entry and exit bid/ask spread price at the start and end of the transaction to pull far enough to earn money?
Please take a look at the last part of the page for this link that shows the true correlations, which are arrived at by saying "from the point of view of a pairs trader, how correlated are these tickers."
If you know how to subtract out the part of the market that floats all boats, to be left only with the information pertaining to neutral, there are extreme correlations. XLK is the ticker used in the example, but there are a thousand I could have used. When you know how to subtract out all but the neutral information, the market becomes completely different in how it appears.
Scroll to the very bottom of the article and look at the two tables with correlation information. These numbers are this way because there is so much interest in pairs trading that it tends to swamp things out. It is even more pronounced in Europe.
1) I think you are getting a bit confused; X is not a real thing, it's a synthetic asset formed by the basket of L and S. X has a price to buy and a price to sell which you calculate from the bids and asks of the components. If you cross the spread, generally, you trade immediately in small enough size. You only have uncertainty about fills if you try to earn the spread. That gets much more difficult.
2) Maybe. If your trades are not making money, I mean, that's a big problem. I can't answer why they are not making money. It could be transaction costs like the bid/ask spreads, you should analyze the volatility of your baskets as a function of the bid/ask spreads you have to pay. If you have to cross four 5-cent spreads to try and capture a spread mean-reversion of 2 cents, well yeah you are going to have problems. A bigger problem I found was that mean reversion happens one of two ways; either the asset reverts to the mean, or the mean converges with the asset (assuming you are constantly recomputing the mean, which seems to be common practice). In both cases your z-score goes back to zero, but only in the first case do you make any money.
daniel I read your article, the correlations at the end, are those of prices, or returns ?
Thanks for clearing that up for me. The idea of using synthetic assets is relatively new to me. I went and researched it a little and noticed that it is often used to capture streams of cash flow. I'm currently trying to perform residual pairs trading with Chinese Future Contracts. As I research it for the use of Futures, I don’t really find much articles or explanations. Is it applicable to Futures?
At the same time, I'm relatively new at this and trying to go through the lectures and stuff to learn. When you say I should analyze the volatility of my baskets as a function of the bid/ask spreads. Do you know where I can find a lecture that discuss this further? Sorry to ask some fundamental questions. One thing I notice in my data is that the bid/ask spread is really small and by small the it is just a spread of one tick of the futures contract; while the Volume for that tick is also small just around 80 or less contracts for either bid or ask.
The correlations are about prices, but just a subset.
(I have edited this down, as compared to what you probably have in email. Please don't copy anything from the email onto the board.)
James - maybe? You need pairs/baskets with enough variance to profitably trade the mean reversion. There tends to be a spectrum; structurally correlated assets (like ETF vs their component baskets) are perfect to trade, so perfect, that everyone does it and therefore the deviations are probably less than the spread. Then there's really shitty pairs which you find doing brute force analysis of the stock market. These have lots of variance, but they probably don't converge, and/or the relationship is totally spurious. Read closely Aaron Brown's posts on this thread. You want something in the middle.
Danial - I am not sure how useful correlations of prices of any kind are ? They are bound to be super high.
By itself I don't believe there is any one thing that is useful for a neutral strategy.
My approach is to look at the market as being represented by several hundred core waveform, and similar to the idea of Fourier Transform, you can use these fundamental waveform to create the 4000 heaviest played stocks. So, basically everything I believe about the market is based on the idea of correlations, as this is what I used as one of the first steps to find those wave forms. (which are not easy to find.)
Consider if you have Tickers AAA and BBB, and they are two similar stocks.
AAA might have as its composite the waves A, B, C, D, E, F, G, H, I, J, and BBB may have D, E, F, G, H, I, J, K, L.
During the times that there is little to no activity in the components A, B, C, K, L then the two tickers would be nearly perfectly correlated. But if suddenly component A had news (for example), then the perfect correlations would no longer hold, since stock BBB does not have an A component waveform..
If you apply the above to the idea of mean reversion, then you can see what I believe the mean reversion strategy is actually about.
In my opinion the best way to play a neutral strategy would be to devise a portfolio that is about the underlying fundamental wave components..
And in the interest of completeness, I will mention that in the above examples, waves A, B, C, etc are also made of composite waves, (and those composites . ) as the market is self referencing. The several hundred are at the bottom of the self referencing, and are something that exists in theory, that I believe I could "easily" find, but have not spent the time and energy to do so as of this date.
I also believe that if I had data for all the major markets of the world and was able to deduce the underlying component waves for those instruments that are heavily played by the collectively speaking, multi-trillion dollar funds, that the sum of these waves would (except for inflation) most of these times sum to be zero.
Some researchers generate the log price series of two equities with the daily close. Then the spread series is estimated using regression analysis based on log price series data. For equities X and Y, they run linear regression over the log price series and get the coefficient β.
Any reason they use log price series instead?
Desculpe, algo deu errado. Tente novamente ou contate-nos enviando comentários.
Você enviou um ticket de suporte com sucesso.
Nossa equipe de suporte estará em contato em breve.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian.
Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.
O material deste site é fornecido apenas para fins informativos e não constitui uma oferta de venda, uma solicitação de compra ou uma recomendação ou endosso para qualquer segurança ou estratégia, nem constitui uma oferta de prestação de serviços de consultoria de investimento pela Quantopian.
Além disso, o material não oferece nenhuma opinião em relação à adequação de qualquer segurança ou investimento específico. Nenhuma informação contida neste documento deve ser considerada como uma sugestão para se envolver ou abster-se de qualquer curso de ação relacionado ao investimento, já que nenhuma das empresas atacadas ou nenhuma das suas afiliadas está a comprometer-se a fornecer conselhos de investimento, atuar como conselheiro de qualquer plano ou entidade sujeito a A Lei de Segurança de Renda de Aposentadoria do Empregado de 1974, conforme alterada, conta de aposentadoria individual ou anuidade de aposentadoria individual, ou dar conselhos em capacidade fiduciária em relação aos materiais aqui apresentados. Se você é um aposentadorio individual ou outro investidor, entre em contato com seu consultor financeiro ou outro fiduciário não relacionado a Quantopian sobre se qualquer idéia, estratégia, produto ou serviço de investimento descrito aqui pode ser apropriado para suas circunstâncias. Todos os investimentos envolvem risco, incluindo perda de principal. A Quantopian não oferece garantias sobre a precisão ou integridade das opiniões expressas no site. Os pontos de vista estão sujeitos a alterações e podem ter se tornado pouco confiáveis ​​por vários motivos, incluindo mudanças nas condições do mercado ou nas circunstâncias econômicas.

Riqueza do robô.
Postado em 2 de janeiro de 2016 por Kris Longmore.
Na primeira publicação desta série, explorei a reversão média das séries temporais financeiras individuais usando técnicas como o teste Aumentado de Dickey-Fuller, o expoente de Hurst e a equação de Ornstein-Uhlenbeck para um processo estocástico reverso médio. Eu também apresentava uma estratégia de reversão média linear simples como prova de conceito. Nesta publicação, explorarei séries temporais estacionárias artificiais e apresentarei uma estratégia comercial mais prática para explorar a reversão média. Again this work is based on Ernie Chan’s Algorithmic Trading , which I highly recommend and have used as inspiration for a great deal of my own research.
Ao apresentar meus resultados, mostrei com facilidade as curvas de equidade de estratégias de reversão médias que passam por períodos de desempenho estelar, bem como períodos tão ruins que eles enviariam a maioria dos comerciantes quebraram. Ao invés de cereja escolher o bom desempenho, eu quero demonstrar o que penso que é de extrema importância neste tipo de negociação, a saber, que a natureza da reversão média para qualquer série de tempo financeiro está em constante mudança. Às vezes, esse dinamismo pode ser explicado pela atualização dos índices de cobertura ou de outros parâmetros estratégicos. Outra vez, a única solução é abandonar totalmente a abordagem de reversão média, talvez em favor de uma tendência após a abordagem. Como esta postagem irá demonstrar, encontrar ou construir séries de preços de reversão média é uma questão relativamente simples. A verdadeira chave para explorar de forma vantajosa essas séries é a questão muito mais difícil de entender, em tempo real, se deve continuar uma estratégia como está, atualizar seus parâmetros ou colocá-lo no gelo temporariamente ou permanentemente.
Cointegração.
Uma coleção de variáveis ​​de séries temporais não estacionárias é dito ser cointegrada se houver uma combinação linear dessas variáveis ​​que crie uma série temporal estacionária. Isso implica que podemos construir artificialmente uma série de tempo de reversão média através da combinação apropriada de séries temporais não estacionárias. Por exemplo, podemos construir um portfólio de ativos cujo valor de mercado é uma série de tempo estacionária e, portanto, passível de exploração lucrativa através de técnicas de reversão média, mesmo através da série de preços dos ativos constituintes não são eles mesmos significativos para reverter. A pairs trading strategy, where we buy one asset and short another with an appropriate allocation of capital to each, is an example of this method for exploiting the concept of cointegration, but we can also create more complex portfolios of three or more assets.
We can test whether a given combination of assets forms a stationary process using the stationarity tests described in the previous post. No entanto, é impossível conhecer a priori os coeficientes (ou os coeficientes de cobertura) que formam um portfólio estacionário. Como, então, um teste para cointegração? I’ll explore two approaches: the Cointegrated Augmented Dickey-Fuller test and the Johansen test.
Cointegrated Augmented Dickey-Fuller Test.
O teste Cointegrated Augmented Dickey-Fuller (teste CADF) envolve, em primeiro lugar, realizar uma regressão linear entre duas séries de preços para determinar a relação de hedge ideal da carteira e, em seguida, realizar um teste de estacionaria na série de preços da carteira. O exemplo abaixo ilustra esse conceito usando as moedas da Austrália e da Nova Zelândia, uma vez que parecem ser capazes de cointegrar, dado que as economias de ambos os países são baseadas em commodities e são afetadas por forças geopolíticas similares. Isso amplia o exemplo na primeira publicação, que explorou as tendências de reversão médias do par de câmbio AUD / NZD. Nesse exemplo, a relação de hedge é sempre uma, pois quantidades iguais de AUD e NZD estão sempre sendo compradas e vendidas. Neste exemplo, nós permitimos uma relação hedge flexível e tentamos sua otimização. Para conseguir isso, precisamos introduzir uma moeda de cotação comum, quanto mais líquido, melhor. Faz sentido escolher o dólar dos EUA. Portanto, o exemplo abaixo procura explorar uma carteira estacionária de AUD / USD e NZD / USD.
Em primeiro lugar, a série de preços das duas taxas de câmbio para o período de 2009 a meados de 2015, que parecem cointegrar:
Um gráfico de dispersão sugere ainda que a série de preços pode se cointegrar à medida que os pares de preços caem em uma linha aproximadamente reta:
Podemos usar a regressão dos mínimos quadrados para encontrar a relação hedge ideal e traçar o resíduo de AUD / USD-beta * NZD / USD, o que, de jeito que não, parece excessivamente estacionário:
NZDUSD. Fechar, data = fecha)
Em seguida, aplicamos o teste ADF à propagação (veja a publicação anterior para uma breve descrição do pacote urca e por que a implementação do teste ADF é adequada para esta aplicação):
z. Lag. 1 + 1 + z. Dif. atraso)
Neste caso, a estatística de teste em que nos interessamos é -0,94, que é superior ao valor crítico de 10% de -2,57. Therefore, we unfortunately can’t reject the null hypothesis that the portfolio is not mean reverting. No entanto, o valor negativo da estatística de teste indica que o portfólio não está em tendência.
Uma lacuna da abordagem dos mínimos quadrados comuns é que é assymetrc: mudar as variáveis ​​dependentes e independentes nos resultados de regressão em uma relação de hedge diferente. A boa prática determinaria que ambas as opções fossem testadas e o arranjo que resultasse na estatística de teste mais negativa fosse selecionado. Outra abordagem é usar a regressão dos mínimos quadrados, o que pode ser usado para derivar uma relação de cobertura simétrica. No sentido geométrico, os mínimos quadrados totais minimizam a distância ortogonal à linha de regressão (em oposição à distância vertical no caso dos mínimos quadrados comuns) e, portanto, leva em consideração a variância das variáveis ​​dependentes e independentes. A solução total de mínimos quadrados é facilmente calculada em R usando a análise de componentes principais e não se limita a um portfólio de dois ativos:
AUDUSD. Fechar + NZDUSD. Fechar, data = fecha)
z. Lag. 1 + 1 + z. Dif. atraso)
Isso resulta em uma estatística de teste mais negativa e um spread visualmente mais estacionário (pelo menos para o período de 2009 e # 8211; 2012, veja a figura abaixo), mas ainda somos incapazes de rejeitar a hipótese nula de que o spread obteve pelo menos o total A regressão dos quadrados é significante reverter.
Teste de Johansen.
O teste de Johansen nos permite testar a cointegração de mais de duas variáveis. Lembre-se da publicação anterior, usando um modelo linear de mudanças de preços:
Δy (t) = λy (t - 1) + β t + μ + α1Δy (t - 1) + ... + αkΔy (t - k) + εt.
que se λ ≠ 0, então Δy (t) depende do nível atual y (t - 1) e, portanto, não é uma caminhada aleatória. Podemos generalizar esta equação para o caso multivariado usando vetores de preços y (t) e coeficientes λ e α, denotados Y (t), Λ e Α respectivamente. O teste de Johansen calcula o número de carteiras estacionárias independentes que podem ser formadas por várias combinações lineares da série de preços com base na decomposição do eelevector de Λ. O pacote urca contém uma implementação do teste de Johansen que fornece valores críticos que podemos usar para testar se podemos rejeitar a hipótese nula de que existem relações de cointegração 0, 1, 2, # 8230 ;, n-1, onde n é o número de séries cronológicas constituintes. Convenientemente, os eigenvectors podem ser usados ​​como os ratios de hedge de séries de preços individuais para formar um portfólio estacionário. Este processo está ilustrado abaixo para o portfólio AUD / USD-NZD / USD. Um terceiro par de moedas e # 8211; USD / CAD & # 8211; é adicionado na próxima seção para tentar criar uma carteira estacionária de três moedas.
Nesse caso, não podemos rejeitar qualquer hipótese nula de que r (o número de carteiras de co-integração) é zero ou um, uma vez que a estatística de teste em ambos os casos é inferior ao valor crítico de 10%. Ou seja, é improvável que possamos formar um portfólio estacionário a partir do histórico de preços usado neste exemplo. No entanto, ainda pode valer a pena prosseguir uma estratégia de reversão média se a meia-vida da reversão média for suficientemente baixa (veja a publicação anterior para mais detalhes).
Conforme mencionado acima, os e-cevectores formam a relação hedge ideal. Eles são convenientemente ordenados pela máxima verossimilhança, então, neste caso, selecionaríamos um portfólio de 1 lote de AUD / USD longo ou curto e 3.41 lotes de NZD / USD na direção oposta. Neste caso, infelizmente, a carteira resultante não parece mais estacionária do que a construída usando as abordagens de mínimos quadrados ordinários e regressões de mínimos quadrados.
Reversão média de um portfólio de mais de dois instrumentos.
Podemos adicionar um terceiro ativo e usar o teste de Johansen para determinar a probabilidade de existir um portfólio de reversão médio junto com os índices de hedge de tal carteira. Neste caso, adicionarei USD / CAD e tomarei o preço recíproco para que as moedas das cotações sejam consistentes (note que, ao criar uma estratégia de negociação a partir deste triplete, que as direções sinalizadas para USD / CAD precisariam ser revertidas):
Novamente, infelizmente não encontramos uma relação de cointegração significativa. No entanto, como discutido na primeira publicação, às vezes não precisamos manter nossos resultados com significância estatística cientificamente rigorosa para ganhar dinheiro, particularmente se a meia-vida da reversão média for suficientemente curta. Portanto, manteremos o primeiro eigenvector para formar uma carteira dos três instrumentos para uma investigação mais aprofundada. Primeiro, vamos dar uma olhada em um gráfico de séries temporais do valor do portfólio:
A meia-vida da reversão média da carteira é de 53,2 dias. Isso é calculado da mesma forma que para uma única série de tempo de reversão média no post anterior, ou seja, regressando o valor do portfólio contra seu valor remanescido por um período de tempo:
y. lag, data = df)
Lembre-se que, na publicação anterior, conseguimos construir uma estratégia de reversão de média linear teoricamente rentável a partir de uma única série de tempo com uma meia vida de reversão média de mais de 300 dias, então, à primeira vista, esse resultado é promissor.
Reversão média linear em uma série de tempo cointegrada.
Abaixo está a curva de equidade da estratégia de reversão média linear da postagem anterior na carteira de três instrumentos com o valor da carteira sobreposta na curva patrimonial:
A estratégia sofre uma redução considerável e apenas retorna um fator de lucro de 1,04 e uma razão Sharpe de 0,29.
Obviamente, a estratégia de reversão média linear apresentada acima e detalhada na publicação anterior não seria adequada para negociação ao vivo, mesmo que o exemplo mostrado aqui gerasse um backtest impressionante. Aplicado às ações, seria necessário comprar e vender um número infinitesimal de ações quando o preço se mover uma quantidade infinitesimal. Isso é menos um problema quando aplicado às moedas, já que podemos comprar e vender em unidades tão pequenas como um centésimo de um lote. No entanto, o verdadeiro assassino de tal estratégia é o custo de negociação associado ao reequilíbrio do portfólio bar-by-bar, bem como o fato de não podermos conhecer o capital necessário no início. Having said that, there is still much value in testing a mean reversion idea with this linear strategy as it shows whether we can extract profits without any data snooping bias as there are no parameters to optimize. Além disso, uma conseqüência do reequilíbrio de portfólio bar-by-bar é que os resultados do backtest de estratégia linear provavelmente terão significância estatística maior que outros backtests que incorporam regras de entrada e saída mais complexas. Essencialmente, a estratégia linear simples aqui apresentada pode ser usada como prova de conceito para determinar rapidamente se um portfólio pode ser explorado usando técnicas de reversão média.
Abordagem prática à reversão média linear.
Se a estratégia linear simples não é prática para negociação, como podemos explorar as carteiras de reversão significativas? Na negociação algorítmica, Ernie Chan sugere uma abordagem de banda de Bollinger onde os negócios são inseridos quando o preço se desvia em mais de x desvios padrão da média, onde x é um parâmetro a ser otimizado. O período de lookback para a média de rolamento e desvio padrão pode ser otimizado ou ajustado para a meia-vida da reversão média. O comércio seria encerrado quando o preço reverter para desvios padrão da média em que novamente y é um parâmetro de otimização. Para y = 0, o comércio é encerrado quando o preço reverte para a média. Para y = - x o comércio é revertido em x desvios padrão da média. A vantagem óbvia dessa abordagem é que podemos controlar facilmente a alocação de capital e o risco. Também podemos controlar o período de espera e a frequência comercial. For example, setting x and y to smaller values will result in shorter holding periods and more round-trip trades.
Explorar o portfólio AUD-NZD-CAD usando esta implementação simples com x = 2 e y = 1 retorna a seguinte curva de equivalência patrimonial, com os custos de transação incluídos:
A curva de equidade da estratégia de Bollinger é de forma semelhante à estratégia linear de reversão média, mas ela é muito menos e permite um controle mais simples de risco e exposição.
Pensamentos finais.
Esta publicação estendeu o artigo anterior sobre a exploração de séries temporais de reversão média individual explorando a construção de carteiras cujo valor de mercado é significante reverter. Além da estratégia de reversão média linear simples, também apresentava uma abordagem mais prática que poderia constituir a base de uma estratégia comercial real.
Conforme indicado nos parágrafos introdutórios, queria mostrar o bom e o mau da negociação de reversão média. As curvas de equidade apresentadas mostram períodos de desempenho excepcional, bem como períodos do oposto polar. Claramente, há momentos em que a reversão média é altamente rentável, e outras vezes quando simplesmente não funciona (talvez a tendência seguinte seja mais adequada nestes tempos). Mas como é que se determina, em tempo real, qual regime seguir? Como se determina quando mudar? Explorou várias opções, incluindo um filtro simples com base em um indicador de tendência e um filtro baseado no desempenho real da estratégia em tempo real. No entanto, devido ao atraso associado aos valores do filtro, essas abordagens são de pouco ou nenhum valor. A diversificação é outra opção, isto é, negociar continuamente tanto a reversão média quanto a tendência seguindo as estratégias ao mesmo tempo na crença de que o lucro do regime dominante irá mais do que compensar as perdas do outro.
Se você tiver uma idéia sobre como resolver esse problema, informe-me nos comentários. Eu adoraria ouvir de você.
Baixe arquivos e dados usados ​​nesta análise.
Here you can download the price data and scripts (Zorro and R) used in this post: Mean reversion 2.
Ilya Kipnis.
Saber quando reverter e quando a tendência seguir sem o atraso do sinal é a questão do dólar. Das minhas conversas com o meu mentor, você quer um modelo de mudança de regime para isso.
Afinal, se você tem um instrumento de alcance, escolha o seu indicador de reversão médio favorito e fique nojento. Se você tem um mercado de tendências, basta comprar e manter a tendência. Mas para saber qual é o quê? Eu adoraria ver algumas idéias postadas em outro lugar. Eu tentei as configurações padrão do depmix & # 8217; e me deu lixo.
Kris Longmore.
Os modelos de mudança de regime são uma nova área de pesquisa para mim. Algo que eu já quis dizer há algum tempo, mas ainda não conseguiu chegar. Esta é uma boa motivação para superar a lista de tarefas. Eu passarei algum tempo aprendendo os primeiros princípios e depois darei uma olhada no pacote depmix que você mencionou. Apesar de sua experiência, parece que a solução não é simples.
Sua última sugestão deve funcionar bem. Troque uma cesta de sistemas não correlacionados com uma variedade de parâmetros. Você obterá a soma dos retornos com reduções reduzidas. Algum código Zorro está aqui: financial-hacker / build-better-strategies-part-2-model-based-systems /
Kris Longmore.
Obrigado pela sugestão de Kevin. Eu acho que o termo-chave em seu comentário é # 8216; não correto e # 8217 ;. Eu tive um sucesso misto com a diversificação da estratégia no passado, graças principalmente à correlação entre as estratégias que mudaram ao longo do tempo. Mas isso não é realmente uma falha na diversificação, e sim um fracasso do comerciante para gerenciá-lo adequadamente.
ótima análise. Eu fiz muitas coisas lá e trocou (meu site está baixo), então aqui estão algumas coisas que descobri.
Não é necessário diversificar a reversão e a negociação média, basta encontrar uma relação de co-integração 5-10 e sua relação Sharpe será 2+, pois os resíduos são todos não correlacionados. Você também precisará fazer um teste WFO ou IS / OOS, já que ninguém vai levar a sério se você tiver um viés favorável. (há uma degradação de desempenho de 50% em testes de amostra de minha própria experiência depois de fazer na otimização de amostra) Eu sugiro fortemente WFO para cada parâmetro, pois ele se adaptará a modos de mercado em mudança. Também tente outros carregamentos a partir do PCA, pois o primeiro possui a maior variação, mas também o mais provável de conter tendências.
Quanto ao regime de mudar algum filtro para filtrar as tendências é uma opção se você puder encontrar uma. Não há necessidade de perder tempo, já que o campo de mudança de regime é enorme.
Adicionalmente, um algoritmo de execução que utiliza EMA vs SMA foi uma opção melhor para mim (provavelmente devido a grandes fundos que usam também e mercados de movimentos de tamanho), mais você pode usar o 2º dev para entrar, mas sair após n dias pode ser um melhor como um regra.
De qualquer forma, espero que ajude. Se você quiser falar, não hesite em contactar-me.
Kris Longmore.
Oi D, obrigado por compartilhar suas descobertas! Algumas coisas maravilhosas lá que não me ocorreram. Definitivamente, vou persegui-los. Totalmente concorda em relação ao teste avançado; É uma parte essencial da fase de avaliação do desenvolvimento da estratégia na minha opinião.
Eu não tinha considerado usar as outras cargas da análise de componentes principais, mas eu também examinarei isso. Eu também gosto da idéia de saída do n-dia. É atraente em sua simplicidade e eu achei isso útil no passado.
Eduardo Gonzatti.
Você tentou usar algum tipo de análise de dominantePhase do Zorro na propagação cointegrada e depois comercializá-la (propagação) quando a fase indicada assim?
Ps: Eu negociei pares de equidade cointegrada por cerca de 4 anos, e não tenho idéia sobre os pares de fx cointegrados =), mas eles ficam muito melhores e mais robustos para fazer isso.
Kris Longmore.
Hi Eduardo, no I hadn’t considered extracting phase information from the cointegrated spread. Minha primeira reação à idéia é que essa abordagem seria aplicável se algum tipo de comportamento cíclico estivesse presente na propagação. Atualmente, não sei se esse é o caso ou não, mas certamente vou olhar para ele. Na sua experiência, você encontrou ciclos exploráveis ​​nos spreads que você trocou?
Eduardo Gonzatti.
Na verdade, eu tive essa ideia quando mexendo com o manual do Zorro há alguns dias atrás. Eu estava estudando sobre análise espectral dos retornos das séries temporais financeiras e tropeçoi com os indicadores de ciclo / fase da Zorro com base em Hilbert Transforms, então isso ocorreu para mim, se você assumir que um spread (digamos, um resíduo de duas ações cointegrado de duas ações) é uma reversão média (co-incorporada e baixa vida média baixa com equação de OU), você provavelmente poderia usar o mesmo tipo de transformação / análise de ciclo que Zorro (eu acho que é baseado nos livros de John Ehlers) nesses spreads, para obter & # 8220; otimizado & # 8221; pontos de entrada, assumindo que aqueles preveriam pontos de viragem no próprio spread.
Não consiga saber se minha suposição é matematicamente sólida, mas é um palpite ...
Pessoalmente, nunca tentei algo além dos desvios N * sigmas para comercializar spreads cointegrados, devido ao pressuposto de que eles são estocásticos.
Desculpe por qualquer erro de ortografia,
Hi Robot Master,
Obrigado pela análise. Uma questão é manter a moeda de cotação constante também necessária para CADF e OU, ou é apenas necessária para Johansen?
Kris Longmore.
Se você pensa sobre o que os testes estão fazendo, a resposta para isso se torna bastante óbvia. Os testes mencionados procuram uma raiz unitária e / ou estacionária das séries temporais em questão. Nesse caso, a série temporal é um spread criado pela combinação linear dos pares de moeda constituintes. Teria muito sentido testar uma propagação que consiste, por exemplo:
Quais seriam as unidades da propagação?
Obrigado por responder.
Com dois pares com a mesma moeda de cotação, uma unidade move tem os mesmos valores em dólares. Então, o que você diz é que, a menos que possamos isso, as provas não terão sentido. Então, por exemplo, para sgdchf vs zarjpy, os pares a testar são sgdusd e zarusd, invando as citações ou os sinais comerciais quando necessário.
Estou correto com minha interpretação.
Kris Longmore.
Supondo que você deseja trocar um spread de reversão médio que consiste em SGD e ZAR, sim, o que você descreveu é como eu abordaria isso.
E quanto ao uso de 10 ativos e combiná-los em grupos de 3 com um loop e, em seguida, calcular os autovalores de todas essas combinações para obter como resultado o melhor portfólio de cointegração?
Apenas um heads up:
Você está perdendo um negativo aqui:
Deve ser, "log" (2) / lambda & # 039;
E cuidado com a função de atraso; Tenho certeza de qual pacote foi usado, mas você pode estar mudando erroneamente o atraso para y (t + 1) usando o & # 039; -1 & # 039; se você estiver usando a base. função de atraso. Eu gosto de quantmod. Lag (y, k = 1).
Kris Longmore.
Obrigado por apontar isso # 8211; você está absolutamente correto em ambos os aspectos. Eu atualizei o código de acordo e descobriu que a vida média real deveria ser aproximadamente 53 dias, um aumento nos 40 dias calculados erroneamente. Algum dia vou dar uma volta para atualizar os resultados afetados (ou seja, as curvas de equidade das estratégias de negociação que usaram a meia-vida errônea)!
Você pode me iluminar quanto ao significado, quando ambos os autovalores de um par são o mesmo sinal? Eles são normalmente opostos e # 8230; então eu estou vendendo um e comprando o outro. O mesmo sinal parece implicar ir longo (ou curto) em ambos # 8230; which seems at odds with the pair trading methodology.
Riskmaverick.
Apenas encontrei sua postagem no blog enquanto procurava o conceito em torno da meia-vida em reversão média. Eu estaria interessado em saber seus pensamentos usando o filtro de Kalman para estimar a relação de cobertura. Seria ainda melhor se você tiver um exemplo de implementação em R.
Kris Longmore.
Eu acho que a filtragem de Kalman é uma ótima maneira de estimar os índices de hedge. A relação hedge ótima raramente é estática, e a filtragem Kalman fornece uma maneira sensata de atualizá-la em tempo real, levando em consideração a incerteza inerente em seu cálculo.
Existe uma maneira fácil de garantir que a relação de cointegração esteja prestes a expirar?
Kris Longmore.
Não tenho certeza de qualquer maneira fácil, mas uma razão por que esses relacionamentos se decompõem é uma mudança estrutural no relacionamento subjacente, por exemplo, seguindo um anúncio de ganhos que causa uma reavaliação súbita em uma segurança. Nesse caso, um relacionamento de cointegração diferente provavelmente surgirá, uma vez que o salto ou declínio no preço se estabeleceu até seu novo nível. Outro exemplo que se relaciona com a co-integração de ETFs que rastreiam as economias de dois países: um relacionamento pode desmoronar quando a economia de um país muda de maneira fundamental, por exemplo, de uma indústria de manufatura para uma base de serviços. Os dois ETF acabam sendo expostos a diferentes fatores e, portanto, a relação de cointegração quebra. Neste caso, isso aconteceria mais devagar.

No comments:

Post a Comment