четверг, 14 июня 2018 г.

Estratégia de negociação de pares cointegrated


Tutoriais.
Consulte também documentação, vídeos e bate-papo.
Jing é um desenvolvedor quantitativo na QuantConnect. Ela tem um mestrado em Matemática Financeira por John Hopkins e a anterior trabalhou no Northeast Securities fazendo pesquisas quantitativas.
Artigos recentes.
Pairs Trading & # 8211; Copula vs Cointegration.
Em Tutoriais de Estratégia, publicado em 13 de junho de 2017.
Nós investigamos dois métodos de troca de pares e comparamos os resultados. O intercâmbio de pares envolve investigar a estrutura de dependência entre dois ativos altamente correlacionados. Com o pressuposto de que a reversão média ocorrerá, posições longas ou curtas são inseridas na direção oposta quando há uma divergência de preço. Normalmente, a distribuição de preços dos ativos é modelada por uma distribuição Gaussiana de séries de retorno, mas a distribuição normal das juntas pode deixar de capturar algumas características-chave da dependência do preço dos pares de ações, como a dependência da cauda. Nós investigamos o uso da teoria da copula para identificar essas oportunidades comerciais.
Neste tutorial, vamos discutir o quadro básico de copula a partir da perspectiva matemática e explicar como aplicar a abordagem na negociação de pares. A implementação do algoritmo baseia-se no papel Estratégias de negociação com copulas [1] Stander Y, Marais D, Botha I. Estratégias comerciais com copulas [J]. Revista de Ciências Econômicas e Financeiras, 2018, 6 (1): 83-107. Cópia online de Stander Y, Marais D, Botha I (2018). Comparamos o desempenho da estratégia de negociação de pares de cópula com o método de negociação de pares de co-integração com base no papel das estratégias de negociação de arbitragem estatística e negociação de alta freqüência de Hanson TA, Hall J R. (2018) [2] Hanson TA, Hall J R. Estratégias de negociação de arbitragem estatística e negociação de alta freqüência [J]. 2018.. A técnica de co-integração assume uma relação de co-integração entre as ações emparelhadas para identificar oportunidades comerciais lucrativas. Os resultados empíricos sugerem que a estratégia baseada em cópula é mais rentável do que as técnicas tradicionais de negociação de pares.
Estrutura da Copula.
1. Definição.
Dado um vetor aleatório, suas funções marginais de distribuição cumulativa (CDFs) são. Ao aplicar a transformada integral de probabilidade a cada componente, as distribuições marginais são uniformes (da Wikipédia).
Então a copula de é definida como a função de distribuição cumulativa conjunta de, para a qual a distribuição marginal de cada variável U é uniforme como.
A função Copulas contém todas as características de dependência das distribuições marginais e descreve melhor a relação linear e não linear entre as variáveis, usando a probabilidade. Eles permitem que as distribuições marginais sejam modeladas independentemente uma da outra, e não é necessária nenhuma suposição no comportamento das juntas dos marginais. [3] Rad H, Low R K Y, Faff R. A rentabilidade das estratégias de negociação de pares: distância, cointegração e métodos de cópula [J]. Finanças quantitativas, 2018, 16 (10): 1541-1558.aplica on-line.
2. Copulas Bivariadas.
Uma vez que esta pesquisa se concentra em copulas bivariadas (para troca de pares, temos 2 variáveis ​​aleatórias), algumas propriedades probabilísticas são especificadas.
Seja X e Y duas variáveis ​​aleatórias com função de probabilidade cumulativa e. que são uniformemente distribuídos. Então a função copula é. Tomar a derivada parcial da função da copula sobre U e V daria a função de distribuição condicional da seguinte maneira:
3. Arquimedes Copulas.
Existem muitas funções de copula que nos permitem descrever estruturas de dependência entre variáveis, além da suposição Gaussiana. Aqui vamos concentrar três desses; as fórmulas Clayton, Gumbel e Frank Copula da classe Archimedean.
Copulas de Arquimedes [4] Mahfoud M, Michael M. Bivariate Copas de Arquimedes: uma aplicação para dois índices do mercado de ações [J]. BMI Paper, 2018. A cópia on-line é baseada nas transformações de Laplace φ das funções de distribuição univariada. Eles são construídos por uma função de gerador particular [5] LANDGRAF N, SCHOLTUS K, DIRIS D R B. Casos baseados em copula de alta freqüência negociando em estoques Goldmine dos EUA [J]. 2018..
A função de densidade de probabilidade é:
Onde é o inverso da segunda derivada da função do gerador.
Genest e MacKay (1986) [6] Genest, C. e MacKay, J., 1986, The Joy of Copulas: Distribuições Bivariadas com Margenes Uniformes, o Statistician Americano, 40, 280-283, provaram que a relação entre a função geradora de cópula e a correlação de classificação de Kendall no caso bivariante pode ser dada por:
Então, podemos calcular facilmente o parâmetro nas copulas de Archimedean se conhecemos a medida de classificação de tau de Kendall e a função de gerador. Consulte o passo 3 para ver as fórmulas.
Parte I: Método Copula.
Os ETFs têm vários setores de ações e classes de ativos que nos fornecem uma ampla gama de pares de candidatos comerciais. Nosso conjunto de dados consiste em dados diários dos ETFs negociados no NASDAQ ou NYSE.
Utilizamos os primeiros 3 anos de dados para escolher o copula e o par de ativos mais adequados ("período de treinamento formação"). Em seguida, usamos um período de 5 anos a partir de 2018 até 2017 ("período de negociação"), para executar a estratégia. Durante o período de negociação, usamos uma janela de 12 meses para obter os parâmetros da copula ("período de formação contínua").
Passo 1: Selecionando os estoques emparelhados.
O método geral de seleção de pares é baseado em análise tanto fundamental como estatística. [7] Jean Folger. Pairs Trading Example Online Copy.
1) Montar uma lista de pares potencialmente relacionados.
Todos os pares aleatórios podem ser correlacionados. É possível que essas variáveis ​​não sejam causalmente relacionadas entre si, mas por causa de uma relação espúria devido a coincidência ou a presença de um certo terceiro fator não visto. Assim, é importante para nós começar com uma lista de títulos que têm algo em comum. Para esta demonstração, escolhemos alguns dos ETFs mais líquidos negociados no Nasdaq ou na NYSE. O relacionamento para esses pares potencialmente relacionados pode ser devido a uma sobreposição de índice, setor ou classe de ativos. por exemplo. QQQ e XLK são dois ETFs que acompanham os índices líderes no mercado.
2) Filtre o par de negociação com correlação estatística.
Para determinar quais pares de ações incluir na análise, as correlações entre os pares ETF pré-selecionados são analisadas. Abaixo estão três tipos de medidas de correlação que geralmente usamos em estatísticas:
= número de concordantes.
= número de discordantes.
= a diferença entre as classificações dos valores correspondentes e.
Podemos obter esses coeficientes em Python usando funções da biblioteca de estatísticas no SciPy. As correlações foram calculadas usando retornos diários do preço do estoque de registro durante o período de formação. Encontramos as 3 técnicas de correlação que dão aos ETFs pareados a mesma classificação de coeficientes de correlação. A correlação de Pearson pressupõe que ambas as variáveis ​​devem ser normalmente distribuídas. Assim, aqui usamos a classificação de Kendall como a medida de correlação e escolhemos os pares com a maior correlação de classificação de Kendall para implementar a negociação de pares.
Recebemos o preço de fechamento histórico diário do nosso par ETF usando a função História e convertendo os preços em uma série de retorno de registro. Deixe e denote as séries históricas dos preços das ações para estoque x e estoque y. Os retornos de log para o par ETFs são fornecidos por:
t = 1,2. n onde n é o número de dados de preços.
Passo 2: Estimativa de distribuições marginais de log-return.
Para construir a copula, precisamos transformar a série log-return e dois valores uniformemente distribuídos u e v. Isso pode ser feito estimando as funções de distribuição marginal e conectando os valores de retorno em uma função de distribuição. Como não fazemos suposições sobre a distribuição das duas séries log-return, aqui utilizamos a função de distribuição empírica para abordar a distribuição marginal e. A função Python ECDF da biblioteca statsmodel nos dá o CDF empírico como uma função de etapa.
Passo 3: Estimando Parâmetros Copula.
Conforme discutido acima, estimamos o parâmetro de copula theta pela relação entre a copula e a medida de dependência do tau de Kendall, para cada uma das copulas de Arquimedes.
Passo 4: Seleção da melhor copula de montagem.
Uma vez que obtemos a estimativa de parâmetros para as funções copula, usamos os critérios AIC para selecionar a copula que fornece o melhor ajuste na inicialização do algoritmo.
onde é a função log-verossimilhança e k é o número de parâmetros, aqui k = 1.
As funções de densidade de cada função de copula são as seguintes:
A copula que fornece o melhor ajuste é aquela que corresponde ao menor valor do critério AIC. O par escolhido é "QQQ" e amp; "XLK".
Etapa 5: Gerando os Sinais de Negociação.
As funções de copula incluem todas as informações sobre as estruturas de dependência de duas séries de retorno. De acordo com Stander Y, Marais D, Botha I (2018) [8] Stander Y, Marais D, Botha I. Estratégias comerciais com copulas [J]. Revista de Ciências Econômicas e Financeiras, 2018, 6 (1): 83-107. Copia on-line, a copula ajustada é usada para derivar as bandas de confiança para a função de distribuição marginal condicional e, isto é, os índices de preços errados. Quando as observações do mercado ficam fora da faixa de confiança, é uma indicação de que a oportunidade de negociação de pares está disponível. Aqui escolhemos 95% como a banda de confiança superior, 5% como a menor banda de confiança como indicado no documento. O nível de confiança foi selecionado com base em uma análise de back-test no documento que mostra que o uso de 95% parece levar a oportunidades comerciais apropriadas para serem identificadas.
Dado o retorno atual do estoque X e estoque Y, nós definimos os "índices de preços errados" são:
Para mais provas matemáticas, consulte Xie W, Wu Y (2018) [9] Xie W, Wu Y. Copula com base em estratégia de negociação de pares [C] // Asian Finance Association (AsFA) Conferência 2018. doi. 2018, 10.
As fórmulas de probabilidade condicional de copulas bivariadas podem ser derivadas tomando derivadas parciais das funções copula mostradas na Tabela 1. Os resultados são os seguintes:
Após a seleção dos pares de negociação e das copas mais adequadas, seguimos as seguintes etapas para a negociação. Note-se que implementamos os Passos 1, 2, 3 e 4 no primeiro dia de cada mês usando os dados diários dos últimos 12 meses, o que significa que nossas funções de distribuição empírica e os parâmetros da copula são estimados a uma vez por mês. Em resumo a cada mês:
Durante o período de formação contínua de 12 meses, os preços de fechamento diário são usados ​​para calcular os retornos de log diários para o par de ETF e, em seguida, calcular a correlação de classificação de Kendall. Estimar as funções de distribuição marginal dos retornos de log de X e Y, que são ecdf_x e ecdf_y separadamente. Conecte o tau de Kendall nas funções de estimação de parâmetros da copula para obter o valor de theta. Execute uma regressão linear sobre as duas séries de preços. O coeficiente é usado para determinar quantas ações do estoque X e Y para comprar e vender. Por exemplo, se o coeficiente for 2, para cada compartilhamento X que seja comprado ou vendido, 2 unidades de Y são vendidas ou compradas.
Finalmente durante o período de troca, cada dia convertem os retornos de hoje para você e v usando funções de distribuição empírica ecdf_x e ecdf_y. Depois disso, dois índices de preços errados são calculados a cada dia de negociação usando a copula estimada C. O algoritmo constrói posições curtas em X e posições longas em Y nos dias que e. Ele constrói uma posição curta em Y e posições longas em X nos dias que e.
Parte II: Método de Cointegração.
Para o método de negociação de pares de cointegração, escolhemos o mesmo par de ETF "GLD" e amp; "DGL". Não há necessidade de escolher uma função de copula por isso há apenas um período de formação contínua de 12 meses. O período de negociação é de 5 anos de janeiro de 2018 a maio de 2017.
Etapa 1: Gerar a Spread Series.
No início de cada mês, geramos a série de preços de registro de dois ETFs com o fechamento diário. Em seguida, a série de propagação é estimada usando análise de regressão com base em dados da série de preços de registro.
Para as ações X e Y, corremos regressão linear sobre a série de preços de registro e obtemos o coeficiente β.
Passo 2: Calcule o Limiar.
Usando o desvio padrão de propagação durante o período de formação do rolamento, um limite de dois desvios padrão é configurado para a estratégia de negociação, conforme indicado no documento.
Etapa 3: configure os sinais de negociação.
Em cada dia de negociação, entramos em um comércio sempre que o spread move mais de dois desvios padrão para fora do seu significado. Em outras palavras, nós construímos posições curtas em X e posições longas em Y no dia que se espalhou & gt; significa + 2 * std. Nós construímos posições curtas em Y e posições longas em X no dia que se espalhou & lt; mean-2 * std. O comércio é encerrado se o spread reverte para o seu equilíbrio (definido como menos da metade de um desvio padrão do spread zero).
O valor de média e desvio padrão é calculado a partir do período de formação contínua e será atualizado uma vez por mês.
Conclusão.
Em última análise, a negociação de pares pretende capturar a divergência de preços de dois ativos correlacionados por reversão média. Nossos resultados demonstram que a abordagem de cópula para negociação de pares é superior ao método de cointegração convencional, porque se baseia na probabilidade da estrutura de dependência, versus cointegração que depende da variação de regressão linear simples do preço normal. Encontramos através do teste do desempenho do método de cópula menos sensível aos parâmetros iniciais. Como o método de cointegração depende da distribuição padrão e os pares ETF apresentaram baixa volatilidade, houve poucas oportunidades comerciais.
Geralmente, os ETFs não são muito voláteis e, portanto, a reversão média não proporcionou muitas oportunidades comerciais. Existem apenas 39 trades durante 5 anos para o método de cointegração.
Observa-se que o uso de copula em troca de pares oferece mais oportunidades de negociação, uma vez que não exige quaisquer pressupostos rígidos [10] Liew R Q, Wu Y. Pairs trading: A copula approach [J]. Journal of Derivatives & amp; Hedge Funds, 2018, 19 (1): 12-30. .
Backtest para método de copula.
Colaboradores.
Referências.
Olá Jing Wu. Obrigado por um excelente artigo. Eu tenho uma pergunta, mas pode ser porque estou incompreendendo o seu código Python (meu plano de fundo está em C #). A teoria afirma que a série de retorno de registro é dada por ln (P_x, t / P_x, t-1), no entanto, em seu código, parece que você está retornando apenas ln (P_x, t), na seguinte linha de código: np. log ([float (z) para z em close_price]). Por favor, deixe-me saber o que estou faltando. Obrigado.
Você está falando sobre a co-integração? Teoricamente, ln (Pt) deve ser usado em vez disso se o log retornar.
Desculpe, um erro de digitação para a minha última resposta:
Ignore meu comentário / pergunta anterior, percebo o & # 8220; diff & # 8221; A função cuida deste & # 8211; Matemática 101.
Oi Jing Wu, testei sua estratégia no período de 2018-01-01 a 2017-09-11. No entanto, em torno de setembro de 2018 em diante, beta, as participações líquidas e alavancagem parecem ser constantes. Existe alguma intuição para isso? Eu não acho que o código está quebrado, mas estou curioso para ver o que a intuição seria causar esse resultado.
Isso pode porque não existe um novo comércio naquele momento. Para negociação de pares, isso significa que a condição de negociação não é desencadeada.
Muito obrigado por esta publicação muito interessante. É muito útil ter todo o raciocínio e fórmula tão claramente explicados e sintetizados.
Eu tenho 2 observações sobre o algo embora:
+ o ajuste de Gumbel feito no conjunto de calibração [2006 - 2009] não funciona. Isso não pára o problema e o último escolhe a copula Frank no final, mas só decide usar AIC para Frank e Clayton. A razão pela qual o ajuste em Gumbel não funciona vem de 2 divisões por 0, devido aos valores u ou v.
+ uma publicação acima menciona o beta muito alto do algo e eu concordo que é surpreendente para uma estratégia de par. Esta beta alta é particularmente estridente quando simplesmente compara os resultados do algoritmo e o S & amp; P. As correções locais das unidades populacionais dos EUA em Q3-2018 e Q1-2018 são visíveis na estratégia de copula como se essa última fosse simplesmente ações longas. Eu tomei a liberdade de calcular a posição líquida do dia a dia em cada componente do par selecionado [i. e. XLK e QQQ]. Parece que, desde o final de 2018 até o final, o algo é LONG BOTH ETFs e mal muda a posição. Eu posso estar totalmente errado, mas acho que isso explica o beta, as participações líquidas e o tamanho repentino das negociações.
Oi Jing Wu, testei sua estratégia, mas eu não parece entender como exatamente as posições são feitas. De acordo com a guia Comércio, apenas pequenas quantidades de ativos subjacentes são negociadas.
Meu raciocínio é esse. Suponha que eu tenho $ 100 000 e há um sinal das copulas para comprar A (atualmente preços em US $ 10) e B curto (atualmente no valor de US $ 20). Compreendo 10 000 ações da A e 5 000 ações curtas de B?
Quanto tempo eu estarei nesta posição? Até o final do dia / dia seguinte ou até que outro sinal ocorra? Obrigado.
Oi Fraty, sim, eu atribuo 40% de capital em cada estoque. Mas a proporção das ações A e B baseia-se no coeficiente de regressão do preço histórico de dois ativos, não apenas no preço no dia de negociação. A posição é alterada até ocorrer outro sinal.
Olá Jing, muito obrigado por seu excelente artigo e pela apresentação do método de aplicação da Copula para troca de pares 🙂
Quanto aos sinais de negociação, você mencionou que nós construímos posições curtas em X e posições longas em Y no dia que se espalhou & gt; significa + 2 * std. Construímos posições curtas em Y e posições longas em X no dia em que se espalham & lt; mean-2 * std. & Quot;
Uma vez que estamos regredindo Y em X, então, se a propagação "normalizada", (spread-mean) / sd, for maior do que dois desvios padrão, isso significa que Y está executando X e, portanto, queremos curtir a propagação , o que significa que ficamos curtos em Y (que é o estoque superativo) e Long X (que é o estoque de baixo desempenho).
Olá, eu sou um estudante que estuda negociação, e eu só sou iniciante,
Eu quero executar seu código e entender a lógica, mas eu não posso ver.
todo o seu código ... se você quiser pedir-lhe envie-me o código completo.
Eu não sou tão bom em inglês porque eu / coreano Desculpe por isso!
Espero que a sua resposta. obrigado.
O código está no final da página. Basta clicar no & # 8216; código & # 8217; guia do backtest anexado ou clone o algoritmo, você verá o código.
Bom trabalho. Às vezes, podemos estar interessados ​​em quando e por que a suposição de reversão média se depara. Seria tentador introduzir novas idéias para confirmar a propriedade de reversão média aos tempos de negociação. Seu trabalho é incrível, espero que seja melhor.
Ótimo post. Eu não sou um programador de python, então estou puxando meu cabelo convertendo isso para MATLAB. Mas, nas seguintes linhas de código, parece-me que a ordem de cálculo dos retornos de log é diferente:
1. logreturn [self. ticker [j]] = np. diff (np. log ([float (z) para z em close]))
2. return_x = np. log (float (self. price_list [self. syl [0]] [- 1] /self. price_list [self. syl [0]] [- 2]))
Em (1) o registro do preço é diferente, mas em (2) a diferença é registrada?
(1) e (2) são iguais porque log (A / B) = log (A) & # 8211; log (B)
Você pode explicar o que as seguintes linhas fazem?
% Converta os dois retornos para valores uniformes u e v usando as funções de distribuição empírica.
Presumivelmente não é simplesmente: ecdf_x, ecdf_y = ECDF (x), ECDF (y)?
Por que o coupla algo só troca QQQ / XLK? Eu corri um backtest a partir de 01/01/2006 e só esse par negocia.
Levando a discussão para os usos de Copula em outras áreas (I & # 8217; m um comerciante de opções) & # 8230;.wikipedia diz: & # 8220; Enquanto a aplicação de cópulas em crédito passou por popularidade, além de infortúnio durante a crise financeira global de 2008-2009, [29] é indiscutivelmente um modelo padrão da indústria para preços de CDOs. As copulas também foram aplicadas a outras classes de ativos como uma ferramenta flexível na análise de produtos derivados de vários ativos. A primeira dessas aplicações fora do crédito era usar uma copula para construir uma superfície implícita de volatilidade da cesta, [30] levando em consideração o sorriso de volatilidade dos componentes da cesta. Desde então, a Copulas ganhou popularidade nos preços e gerenciamento de riscos [31] das opções em ativos múltiplos na presença de volatilidade sorriso / desvio, & # 8221; Isso significa construir um sorriso de volatilidade para dizer as opções SPX usando os sorrisos de volatilidade de seus componentes? Este é um problema que eu enfrentei várias vezes como gerente de posição. Obrigado.
Esta abordagem de cópula pode ser o trabalho de troca de pares em um período de tempo muito menor & # 8230; .. diga gráfico de 3-5 minutos onde você está procurando uma freqüência muito maior de negócios?

Estratégia de negociação de pares Cointegrated
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 elevada quando respaldada por algumas estatísticas rigorosas. Este caderno é executado através dos seguintes conceitos.
O caderno pretende ser uma introdução ao conceito, e que este notebook possui apenas um par, você provavelmente quer que seu algoritmo considere muitos pares ao mesmo tempo.
O caderno foi originalmente criado para uma apresentação no departamento de Applied CS da Harvard e desde então já foi usado em Stanford, Cornell e vários outros locais. Se você estiver interessado em aprender mais sobre como o uso da Pratipia como ferramenta de ensino nas melhores universidades, entre em contato comigo em [email & # 160; protected]
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 muito simples baseado 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. Este algoritmo calcula uma relação de hedge ao invés de apenas manter quantidades iguais de cada segurança.
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 abaixamento que você ressalta é um argumento forte para o porquê você realmente querria muitas negociações de pares ao mesmo tempo. Os pares podem ser cointegrados em diferentes escalas de tempo, e qualquer dado não será sempre em um estado comercializável (grande propagação, pequena propagação). Ao aumentar o tamanho da amostra, você pode tornar muito mais provável que pelo menos um par seja fortemente negociável em um determinado momento, e suavizar os estranhos solavancos 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. 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? Eu não consigo encontrar o teste johansen com python.
Parece que, embora tenha havido algumas tentativas de adicionar o teste de Johansen à biblioteca statsmodels, atualmente não existe uma 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 isso aqui https: // quantopian / posts / trading-baskets-co-integrated-with-spy.
A beleza do teste de Johansen é que ele gera autovetores, o 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 usadas 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. Muitos pares aparentemente lucrativos acabaram por não ser lucrativos depois do lance / pedido espalhar, taxas, comissão, etc. Por isso, eu estou olhando para 3 ou mais negociação de pares de ações, e indexar 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 do Risco e Retorno no Arbitragem de Riscos e Arbitragem Limitada em Mercados de Patrimônio Líquido. 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 muito longa (mas obsoleta) e solicitação de envio no github sobre como incluí-lo em statsmodels: https: // github / statsmodels / statsmodels / issues / 448 e https: // github / josef-pkt / statsmodels / commit / bf79e8ecb12d946f1113213692db6dac5df2b6e9 É realmente muito ruim, como definitivamente em financiamento quantitativo, isso é bastante usado.
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. Devo passar algum tempo com esses documentos.
@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 co-integração. econ. schreiberlin. de/software/vecmclass. py.
Aqui está uma versão do algoritmo de Ernie Chan modificado para trocar 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 tela para 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 caderno da publicação original podem fazer o download aqui. Depois de fazer o download, faça o upload para sua conta de pesquisa. Se você ainda não possui uma conta de pesquisa, insira um algoritmo no concurso para receber acesso.
@ comerciante bom, 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ê faz, menos peso você deve colocar em p-valores 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. Com o argumento de que quanto mais valores p você gerar, mais provável é que você encontre valores p significativos que sejam falsos e não refletem o comportamento real de cointegração nos títulos subjacentes. Uma vez que o número de comparações feitas ao procurar a cointegração em dois títulos em n cresce a uma taxa de O (n ^ 2), mesmo olhando para 20 títulos tornaria a maioria dos testes estatísticos inúteis. Uma melhor abordagem é criar um pequeno conjunto de títulos candidatos usando a análise dos links 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, você pode gerar quantos correlatos você gosta.
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. Uma vez que poucos resultados são 100% sem sentido, a maioria das relações tem pelo menos um pequeno grau de persistência, não é crítico para filtrar a sua estratégia para os mais rigorosamente validados. Os lucros são importantes, não a verdade. Bonferroni e métricas semelhantes o empurram para as relações mais estatisticamente confiáveis, que geralmente não são economicamente úteis.
Se por "análise dos links econômicos subjacentes" Você quer dizer começar com pares naturais como duas empresas similares na mesma indústria, não encontrou 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. Não só isso protege contra a mineração de dados, mas isso significa que você pode medir se o efeito continua funcionando (sem isso, a única maneira de saber que a estratégia não funciona é quando você perde dinheiro).
Bom trabalho. Eu não leio seu caderno por linha, mas eu posso dizer que será uma ótima adição à biblioteca de exemplo de Quantopian. E acompanhamento com algos compartilhados - bom movimento.
Você pode dar uma olhada no caderno que postei, https: // 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 o seu argumento, geralmente, da seguinte forma?
- No mundo real, Bonferroni é muito restritivo e o número de pares rentáveis ​​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. Eu acho que muitas pessoas da análise de links econômicos fazem são simplistas e ignoram as relações potencialmente interessantes que são mais propensas a conter alfa não arbitralizada.
@ Obrigado 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 caderno é muito legal e eu me pergunto o quão estável os índices de cointegração são mesmo para pares fortemente cointegrados. Infelizmente, eu não acho que eu tenha tempo de analisar isso em um futuro próximo o que com a produção de nossos outros cadernos curriculares. No entanto, estamos à procura de contribuidores convidados. Se você tiver cadernos, você gostaria de ser apresentado em nosso currículo com crédito total para o (s) autor (es), envie-os para o meu caminho e eu verifico se eles se encaixam 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, o Bonferroni é muito restritivo e o número de pares rentáveis ​​que você perde através da correção supera a certeza estatística que você ganha.
Não precisamente. Sim, Bonferroni é muito restritiva no sentido de que lhe dá poucos pares, mas Bonferroni também o dirige 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 a matéria provavelmente aparecerá com um forte significado. If you didn't do Bonferroni, you'd end up with 50 recommendations even when none of the items mattered, and a lot of useless advice.
Incidentally, Bonferroni is a very conservative correction, and there are more sophisticated ones that allow more items.
But if you have 1,000 pairs to test, it's likely that many of them have some degree of cointegral predictability. Even if there is no predictability, including the extra pair only adds a little noise to your strategy, which is not terrible. Also you don't believe that any of them have predictability so strong that anyone would have noticed it and arbitraged it away. So it's reasonable to consider all the pairs with 5% significance or less, and filter them out using economic or other criteria unrelated to the data. Selecting only the strongest statistical relations is not wise.
You can set this up in a Bayesian framework if you like consistency and precision; or you can just use ad hoc rules of thumb.
Just for the il-pair-literated who want to learn. must there be a story behind the pair? Should there be a logical explanation? I played around with pairs and found for example that MorganStanley and Expedia work. mas por que? Or doesn't one want to know why.
must there be a story behind the pair?
This is actually a semantic question rather than a financial one. If you adopted a pure statistical approach with no consideration of the actual pairs, you would end up with hundreds or thousands of pairs, including some overlapping ones. Then we wouldn't call it a pairs-trading strategy but a long-short equity strategy.
The idea of pairs trading is you can get additional insight by considering specific reasons for the dependence between the stocks; and that insight can result in more accurate positioning, and also avoidance of big losses when the relation breaks.
Obvious relations, like two large-cap stocks in the same industry, tend not to be useful. That's confusing sometimes, because some of the famous early pairs trades involved such pairs, and they're still used for examples in most texts. But too many people are watching those spreads too closely to get the high Sharpe ratios you need for undiversified strategies like pairs trading. Leave those marginal Sharpes to the long-short equity people who have a lot more positions.
Also, when we talk about a reason for the pairs relation, we're talking about both a positive--why is it hard to imagine a world in which the values of these companies diverge from their historical proportions--and a negative--why do these stocks respond to different economic news? So for two near-identical companies the first question is easy, but the second is hard. For two seemingly unrelated companies like MS and EXPE it's the reverse. You might say something like, "In a good economy Morgan Stanley gets a lot of business and people travel a lot," but that's basically true of almost any two companies.
The classic pairs reason was two companies that responded to the same basic economic factors, say oil prices or interest rates or US dollar strength, but at different points in the supply chain, say crude oil prices versus gas station revenues. A single link is not good enough, virtually all companies respond to these factors. But you can find pairs that are matched on narrower factors, say fracking activity in the Northeast US or precipitation in central California, or that match direction on a number of broad factors. Or you can find two companies that are actually in similar businesses today, but that for historical reasons are listed in different sectors. Another common situation is two companies involved at different points of the lifecycle of durable assets; homebuilders and furniture stores with similar geography for example.
Anyway, when you have a reason, you have things to monitor to fine-tune your position; and to alert you if a big dislocation is a great trading opportunity or a sign than the historical relation has broken. If you don't have a reason, you'd better have a lot of diversification, meaning you can't afford the specific analysis work for each pair.
Wouldn't you admit though that if a pair has a story then that story is known and therefore unprofitable by the likes of slow to trade retail traders? And if one could mine the data and discover, through the data, stories that were unexpected that one could at least compete in the pairs trading space? I see your point on maintaining a large pool of pairs if the stories that connect the participants are weak or unexplored, but still, if we underlings wish to participate why wouldn't we use such a technique? Or do you maintain that retail traders can capture and profit from anomalous pair spreads of well known couples?
Wouldn't you admit though that if a pair has a story then that story is known and therefore unprofitable by the likes of slow to trade retail traders?
No, I wouldn't agree with that view. Pairs trading tends to be low capacity, especially in lower-cap stocks, and takes a lot of work. It's not attractive for asset managers because the investment amounts and risk characteristics are erratic. It's mostly pursued by individual full-time professional traders, who might follow a dozen pairs in addition to a few dozen other strategies, and semi-pro traders who are willing to take what the market gives them and stay in cash when none of their strategies are attractive. There are more good pairs than there are competent traders chasing them.
In principle, you could find good pairs using a clever automated filter, or by reading and thinking. My general feeling is the first is harder, and if you're going to do it, you'll want to do it to identify large numbers of pretty good pairs rather than two or three great pairs. In that case, I'd say just switch to long-short equity and forget pairs. The good thing about reading and thinking is most good quants are lazy, and would rather let the computer do the work. So you're competing with non-quants, some of whom are pretty good at reading and thinking, but are at a huge disadvantage to someone with a computer who knows a little math.
I don't want to come across as dogmatic, anyone who does what other people tell them is not likely to find great success in any sort of trading. If you think you can design an algorithm to identify good pairs, there's no harm in trying. It just doesn't strike me as the most promising approach.
. takes a lot of work.
Sim. The easy pairs trade money was made long ago. Lucrative stories in lower-cap stocks though exposes a pair to the aberrations of smaller company volatility no? "Whoops, that solar stock just lost its major contract. Or, wow, that driller just got a windfall state contract." And then the story gets rewritten, or thee or four pages get torn out. One might catch such preludes to story changes if one only watches a dozen or so stories. But here, where we're looking to avoid story watching -- going fully automated, we would get nailed by such narrative breakdowns in just a few pair relationships.
When you say switch to long/short equities you would seem to advocate abandoning the statistical search for obscure (perhaps whimsical) stories in lieu of broader mean reversion -- is this true? But, if one has the tools, why not create dozens and dozens of strange storied pair trades. Sure the stories may not actually exist. But then again, maybe you discover 10 or 20 that are unique. And through a process of eliminating the poorly paired partners, you end up with a manageable set that are capable of dancing with the stars? This site is nothing if not a massive experiment in data mining no?
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.
ESTÁ BEM. 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' pair. 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 2018 to Feb 2018 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 2018.
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 2018.
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.

Gekko Quant – Quantitative Trading.
Quantitative Trading, Statistical Arbitrage, Machine Learning and Binary Options.
Pós-navegação.
Statistical Arbitrage – Trading a cointegrated pair.
In my last post gekkoquant/2018/12/17/statistical-arbitrage-testing-for-cointegration-augmented-dicky-fuller/ I demonstrated cointegration, a mathematical test to identify stationary pairs where the spread by definition must be mean reverting.
In this post I intend to show how to trade a cointegrated pair and will continue analysing Royal Dutch Shell A vs B shares (we know they’re cointegrated from my last post). Trading a cointegrated pair is straight forward, we know the mean and variance of the spread, we know that those values are constant. The entry point for a stat arb is to simply look for a large deviation away from the mean.
A basic strategy is:
If spread(t) >= Mean Spread + 2*Standard Deviation then go Short If spread(t) <= Mean Spread – 2*Standard Deviation then go Long.
If spread(t) >= nDay Moving Average + 2*nDay Rolling Standard deviation then go Short If spread(t) <= nDay Moving Average – 2*nDay Rolling Standard deviation then go long.
If spread(t) <= Mean Spread + 2*Std AND spread(t-1)> Mean Spread + 2*Std If spread(t) >= Mean Spread – 2*Std AND spread(t-1)< Mean Spread – 2*Std Advantage is that we only trade when we see the mean reversion, where as the other models are hoping for mean reversion on a large deviation from the mean (is the spread blowing up?)
This post will look at the moving average and rolling standard deviation model for Royal Dutch Shell A vs B shares, it will use the hedge ratio found in the last post.
Sharpe Ratio Shell A & B Stat Arb Shell A.
Annualized Sharpe Ratio (Rf=0%):
Shell A&B Stat Arb 0.8224211.
Shell A 0.166307.
The stat arb has a Superior Sharpe ratio over simply investing in Shell A. At a first glance the sharpe ratio of 0.8 looks disappointing, however since the strategy spends most of it’s time out of the market it will have a low annualized sharpe ratio. To increase the sharpe ratio one can look at trading higher frequencies or have a portfolio pairs so that more time is spent in the market.
22 thoughts on “ Statistical Arbitrage – Trading a cointegrated pair ”
it also means that when identified the maximum divergence i can take position in derivatives like options?
-selling ATM Call option on first stock.
-buy Call option on the second one.
or with a BacKSpreadCall on the first and a BackSpreadPut on the second so I can set the protections and I can roll them if they go out control…
The short positions should be moneyness ATM or lightly OTM in my opinion.
What do yo think about?
Did you tried using Johansen’s testing approach in order to perform a more rigorous testing of cointegration? What do you think about combining Engle-Granger with Johansen?
The spread in the above does not oscillate around it mean, ideally, a cointegrated pair should trade sideways not in a trending manner as shown above….your write-up was perfect on proper cointegration you demonstrated. but this spread is not a perfect spread.
I 100% agree with you.
However for practical purposes as long as the mean reversion happens faster than the mean changes then you’ll do well.
I guess that’s something I’ve missed, how to quantify the half life/reversion speed.
Please note that in the above demo the look back period is 90days. This is fairly short. Choosing 200 days will result in a mean that is less responsive / changes direction. It will most likely increase the size of the standard deviation bands and result in less trades per year. This usually results in a lower Sharpe ratio.
Very interesting post. Would love to see the implementation on a basket of pairs.
I do some changes in your programme to calculate the bollinger bands and I wanna know why you’re put the Standard deviation to the right? (movingStd = rollapply(spread, lookback, sd, align=”right”, na. pad=TRUE))
OK thank you for answering!
Your blog give me the chance to implement and build more quickly my stat arb strategy.
I am going to test different models for statistical arbitrage. I keep all the visitors in the loop!
In your program, the martingale effect is not here. How can I add this effect?
I am running my iwn backtests with differents programs (Excel, R et ProRealTime (a french platform)) and in order to do some comparison, I need to add the martingale effect.
Thanks for the clarification. By the same argument, rollmean has to have the same: rollmean(spread, lookback, na. pad=TRUE, align=’right’)
With this new modification the Sharpe ratio drops dramatically ..
Great stuff!! I think there are two bugs in your code, though. First one is in calculation of moving average. You forgot to set align parameter to “right” (like you do for standard deviation). Function uses default “center” and your data – spread and moving average are not aligned. You can see this from the plot as well. Moving average ends 45 days before the spread. Second bug is in calculation of trading returns. I think you should take return from the next day as we enter the position at the closing price.
Thanks for your elegant code. I noticed that your line of code:
is meant to apply the function shortPositionFunc to (-1*aboveUpperBand+belowMAvg).
However, the function shortPositionFunc takes two arguments x and y.
Is there any typo in the code?
Thank you for your clarification!
Thanks Gekko for the backtesting code. It is very useful. Couple of comments below:
1) Another reader has already commented about this above. movingAvg needs to be amended by adding align=”right” in order to have the first moving avg number on day 90:
movingAvg = rollmean(spread, lookback, align=”right”, na. pad=TRUE)
2) since we enter trades at end of day, the return on trade date shouldn’t count. we can simply shift every element in the “positions” vector down by using the “shift” function in the taRifx library.
Also, I don’t believe daily return is (aRet – stockPair$hedgeRatio*bRet). Imagine if you had a large hedge ratio, i. e. if stock A is priced at $100 and stock B is priced at $10, then the hedgeRatio would be in the neighborhood of 10. Since aRet and bRet are in % terms, the formula won’t work. Daily return should be aRet – bRet * (ratio between dollar neutral ratio vs hedge ratio).
#Calculate spread daily ret.
dailyRet <- aRet – bRet*hedgeRatioOVERdollarNeutralRatio.
tradingRet <- dailyRet * shift(positions,-1)
I am looking for new strategies in equity pair trading that improve the standard cointegration approach (for instance I started looking into the pair trading with copulas, which still seems an “unstable” alternative to cointegration). Do you have any new paper to suggest me? Thank you very much and congrats for the great blog.
The second half of the book goes through lots of more advanced techniques for hedging a portfolio / finding stationary pairs.
i am a bit confused in this step.
when i plotted the longPositions and ShortPositions along with the spread, bands and moving average lines found then there are consecutive long signals and short signals. According to my understanding.
longPostions <- if spread is below lowerband.
longExit <- if spread is above movAvg while long.
shortPostions <- if spread is above upperband.
shortExit <- if spread is below movAvg while short.
is this same thing your code is doing. Please help me understand this part.
Hi Gekko, I read the books of EP Chan that talks about this topic and I a little bit confused about mean reservion. When two assets ara cointegrated we are supposing that they will come back to their mean, but their moving average or their total mean in a fixed period? I’m giving better results using static parameters than using bollinger bands. I will show you an image with my doubt. prntscr/51jofw Could you write another article of mean reversion! Thanks for all.
Hi Gekko. Great Code. Could you closer explain an idea behind this cappedCumSum function ? I do not understand the moment when you are specifing two input variables, but in Reduce() function is only one parameter, – is it because of 0?
There is a mistake. Your algorithm looks in the future, the problem in rollmean function. Algorithm using moving average from future days to close position.

Cointegrated pairs trading strategy


A related paper has been added to:
#12 - Pairs Trading with Stocks.
Title: Cointegration and Relative Value Arbitrage.
Notable quotations from the academic research paper:
"In the pairs trading literature, the most common type of relative value arbitrage, substitutes for individual stocks are identified by minimizing the Euclidean distance in the daily price space over a historical period.5 Matching stocks over the price space instead of the return space is consistent with short-term relative value trading strategies, while removing the need to specify factors. Although the matching method is simple to perform, by design, it guarantees the existence of a counterpart for every stock, which is counterintuitive. More importantly, stocks that exhibit little variation in the price pattern over the formation period (possibly due to lack of news flow) would end up being labelled close substitutes, although they are not fundamentally related.
In this paper, we propose a simple method of identifying close economic substitutes using cointegration. When a pair of stock prices is cointegrated, one series co-moves with a scaled version of the other. We show that close economic substitutes can be represented by a system of cointegrated prices where the scaling factor, or the cointegration coefficient, is close to one.
We find that from 1962 to 2018, NonParity, a positive-valued metric of closeness that measures the distance of the cointegration coefficient from unity, strongly predicts both the probability that relative mispricing will subsequently be corrected as well as the profitability of the arbitrage trade. A one standard deviation increase in the variable reduces the convergence probability by seven percentage points and pairs trade payoffs by 2.78 percentage points. Further, predictability through NonParity also presents profitable trading opportunities. At the portfolio level, the pairs trading of cointegrated stocks is generally unprofitable. However, when trading is confined to pairs of stocks with NonParity close to zero, the strategy is profitable after reasonable estimates of brokerage, slippage, and short selling costs. Specifically, over the sample period, the average after-cost risk-adjusted return to trading a portfolio of cointegrated pairs with NonParity less than 0.5 (0.2) is 0.43% per month, with a t-statistic of 5.29 (0.58% per month, with a t-statistic of 4.77)."

Dynamic cointegrated pairs trading: Mean–variance time-consistent strategies.
Cointegration is a useful econometric tool for identifying assets which share a common equilibrium. Cointegrated pairs trading is a trading strategy which attempts to take a profit when cointegrated assets depart from their equilibrium. This paper investigates the optimal dynamic trading of cointegrated assets using the classical mean–variance portfolio selection criterion. To ensure rational economic decisions, the optimal strategy is obtained over the set of time-consistent policies from which the optimization problem is enforced to obey the dynamic programming principle. We solve the optimal dynamic trading strategy in a closed-form explicit solution from a nonlinear Hamilton–Jacobi–Bellman partial differential equation. This analytical tractability enables us to prove rigorously that cointegration ensures the existence of statistical arbitrage using a dynamic time-consistent mean–variance strategy via asymptotic analysis. This provides the theoretical grounds for the market belief in cointegrated pairs trading. Comparison between time-consistent and precommitment trading strategies for cointegrated assets shows the former to be a persistent approach, whereas the latter makes it possible to generate infinite leverage once a cointegrating factor of the assets has a high mean reversion rate.
Escolha uma opção para localizar / acessar este artigo:
Verifique se você tem acesso através de suas credenciais de login ou sua instituição.

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

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