вторник, 12 июня 2018 г.

Exemplo de estratégia de negociação em pares


Exemplo de comércio de pares.
Como em quase todos os investimentos, fazer um comércio de pares envolve mais do que apenas apertar o botão de compra e venda. Aqui examinamos, em termos muito amplos, os passos necessários para entrar e sair de um comércio de pares.
Reúna uma lista de pares potencialmente relacionados.
Da mesma forma que os corretores de ações de longo prazo vasculham os mercados por títulos adequados, um trader de pares deve começar com uma lista de pares potencialmente relacionados. Isto implica a realização de pesquisas para encontrar títulos que tenham algo em comum - se o relacionamento é devido ao setor (como o setor automotivo) ou ao ativo (por exemplo, títulos). Embora qualquer par aleatório possa, teoricamente, ser correlacionado, é mais provável que você encontre correlação em valores mobiliários com algo em comum para começar.
Determine o nível de correlação.
O próximo passo age como um filtro, ou um meio pelo qual podemos reduzir o número de pares potenciais em nosso quiver. Uma maneira é usar um coeficiente de correlação para determinar quão próximos dois instrumentos estão relacionados. O gráfico a seguir mostra um gráfico diário do contrato do e-mini S & P 500 (em verde) e do contrato e-mini Dow (em rosa). Abaixo do gráfico de preços, há um indicador que mostra o coeficiente de correlação (em amarelo). Podemos ver no gráfico que, durante esse período de tempo específico, o ES e o YM são altamente correlacionados, com valores que pairam bem acima de 0,9. Manteremos o par ES / YM na nossa lista de potenciais candidatos em pares.
O ES (em verde) e o YM (em rosa) mostram potencial como troca de pares. A confirmação visual do preço, apoiada por resultados quantitativos do coeficiente de correlação (em amarelo), mostra que os dois instrumentos são altamente correlacionados. Imagem criada com a TradeStation.
Este gráfico diário de JNJ (em verde) e PG (em rosa) mostra que este não é um par ideal. Uma revisão visual dos preços, confirmada pelos resultados do coeficiente de correlação (em amarelo) indica uma falta de correlação entre os dois estoques. Imagem criada com a TradeStation.
Também deve ser observado que os pares podem mostrar correlação negativa - uma relação entre dois instrumentos em que o preço aumenta, enquanto o outro diminui. Isso cria um tipo de “imagem espelhada”, como pode ser visto no gráfico a seguir.
Este gráfico diário da GE e Walmart mostra correlação negativa. Os preços dessas duas ações tendem a se mover em direções opostas.
Use modelagem para determinar regras específicas.
Um componente contínuo do processo é pesquisar e testar idéias de negociação e determinar métodos absolutos de avaliação de pares e definição de divergência. Os comerciantes têm de responder a perguntas como O que constitui divergência “suficiente” da tendência de iniciar um negócio? e como isso será avaliado? - por exemplo, usando dados de um indicador de taxa de preço com sobreposições de desvio padrão. Em geral, é uma boa ideia concentrar-se em dados quantificáveis, como "Eu entrarei em uma negociação de pares quando a relação de preço exceder dois desvios padrão".
A tabela a seguir mostra o e-mini S & P 500 (ES) e o e-mini Dow (YM) em um gráfico diário. Abaixo do gráfico de preços está um indicador de taxa de spread (em amarelo), com uma sobreposição de +/- um e dois desvios padrão (linhas pontilhadas). A média aparece em rosa.
Um gráfico diário dos contratos de futuros ES e YM e-mini. Um indicador de taxa de spread aparece abaixo do gráfico de preços, junto com uma sobreposição de desvio padrão. Imagem criada com a TradeStation.
Determine o tamanho da posição.
Os traders podem dimensionar as suas posições de pares de maneira diferente, como share-for-share e desvio padrão ponderado. Muitos traders usam uma abordagem neutra em relação ao dólar para posicionar o tamanho ao negociar pares. Usando esse método, os lados longos e curtos da negociação são entrados com valores iguais em dólar. Por exemplo, um trader quer entrar em uma negociação de pares com ações A, negociadas a $ 100 por ação e ações B, negociadas a $ 50 por ação. Para alcançar uma posição neutra em relação ao dólar, o trader terá que comprar duas ações da ação B para cada uma ação da ação A. Por exemplo: (Veja também: O tamanho ideal da posição reduz o risco.)
Long 100 ações A = US $ 10.000 Curto 200 ações B = US $ 10.000.
Compre o underperformer e venda o overperformer.
Uma vez que as regras de negociação são cumpridas, o comerciante compra a segurança de baixo desempenho e, simultaneamente, vende a segurança de alto desempenho. No gráfico a seguir, a taxa de spread excedeu dois desvios padrão e uma configuração de negociação ocorreu no par ES / YM. Aqui, vamos longo o ES e curto o YM.
Uma negociação é aberta no par ES / YM. As linhas vermelhas e verdes horizontais no topo mostram o P / L em tempo real para cada posição. Imagem criada com a TradeStation.
Use princípios de gerenciamento de dinheiro sólidos para sair do comércio.
Tal como acontece com a maioria dos investimentos, o momento da saída é fundamental para o sucesso do comércio. É importante aplicar os princípios de gerenciamento de dinheiro aos negócios de pares (como qualquer outro negócio), incluindo o uso de ordens de perda de proteção e metas de lucro. Os níveis ótimos são tipicamente determinados por meio de modelagem histórica extensa. O gráfico a seguir mostra o comércio de ES / YM, saiu usando um nível de lucro líquido conservador.
O comércio de ES / YM é encerrado com um pequeno lucro líquido. Imagem criada com a TradeStation.

Pares de Negociação usando Técnicas Orientadas a Dados: Estratégias Simples de Negociação Parte 3.
A negociação de pares é um bom exemplo de uma estratégia baseada em análise matemática. Demonstraremos como aproveitar os dados para criar e automatizar uma estratégia de negociação de pares.
Princípio Subjacente.
Digamos que você tenha um par de títulos X e Y que tenham algum elo econômico subjacente, por exemplo, duas empresas que fabricam o mesmo produto, como a Pepsi e a Coca-Cola. Você espera que a relação ou diferença nos preços (também chamada de spread) desses dois permaneça constante com o tempo. No entanto, de tempos em tempos, pode haver uma divergência no spread entre esses dois pares causada por mudanças temporárias de oferta / demanda, grandes ordens de compra / venda de um título, reação a notícias importantes sobre uma das empresas, etc. , um estoque sobe enquanto o outro se move para baixo um em relação ao outro. Se você espera que essa divergência volte ao normal com o tempo, você pode fazer uma troca de pares.
Quando há uma divergência temporária, os pares negociariam a venda do estoque de melhor desempenho (o estoque que subia) e comprariam o estoque de baixo desempenho (o estoque que descia). Você está apostando que o spread entre os dois estoques acabaria por convergir tanto pelo estoque de alto desempenho que recuou quanto pelo estoque de baixo desempenho, ou ambos - seu negócio vai ganhar dinheiro em todos esses cenários. Se ambas as ações subirem ou descem juntas sem alterar o spread entre elas, você não ganha nem perde dinheiro.
Assim, a negociação de pares é uma estratégia de negociação neutra de mercado que permite aos comerciantes lucrar com praticamente qualquer condição de mercado: tendência de alta, tendência de baixa ou movimento lateral.
Explicando o Conceito: Começamos gerando dois títulos falsos.
Vamos gerar uma segurança falsa X e modelar os retornos diários, desenhando a partir de uma distribuição normal. Em seguida, realizamos uma soma cumulativa para obter o valor de X em cada dia.
Agora nós geramos Y, que tem um link econômico profundo para X, então o preço de Y deve variar de maneira muito semelhante a X. Modelamos isso pegando X, deslocando-o e adicionando algum ruído aleatório extraído de uma distribuição normal.
Cointegração
Cointegração, muito semelhante à correlação, significa que a relação entre duas séries irá variar em torno de uma média. As duas séries, Y e X seguem o seguinte:
onde ⍺ é a relação constante e e é ruído branco. Leia mais aqui.
Para pares negociando para trabalhar entre duas séries temporais, o valor esperado da relação ao longo do tempo deve convergir para a média, ou seja, eles devem ser cointegrados.
As séries temporais que construímos acima são cointegradas. Vamos traçar a relação entre os dois agora para que possamos ver como isso se parece.
Testes para cointegração.
Existe um teste conveniente que mora em statsmodels. tsa. stattools. Devemos ver um valor p muito baixo, pois criamos artificialmente duas séries que são tão cointegradas quanto fisicamente possíveis.
Nota: Correlação vs. Cointegração.
Correlação e cointegração, embora teoricamente semelhantes, não são as mesmas. Vejamos exemplos de séries correlacionadas, mas não cointegradas, e vice-versa. Primeiro, vamos verificar a correlação das séries que acabamos de gerar.
Isso é muito alto, como seria de esperar. Mas como duas séries correlacionadas, mas não cointegradas, se parecem? Um exemplo simples são duas séries que apenas divergem.
Valor de p do teste de cointegração: 0,258.
Um exemplo simples de cointegração sem correlação é uma série normalmente distribuída e uma onda quadrada.
Valor de p do teste de cointegração: 0.0.
A correlação é incrivelmente baixa, mas o valor p mostra uma perfeita cointegração!
Como fazer um comércio de pares?
Como duas séries temporais cointegradas (como X e Y acima) se movem na direção e afastam-se uma da outra, haverá momentos em que a propagação será alta e quando a propagação estiver baixa. Fazemos um comércio de pares comprando um título e vendendo outro. Desta forma, se ambos os valores mobiliários forem juntos ou juntos, não faremos nem perderemos dinheiro - somos neutros em relação ao mercado.
Voltando para X e Y acima que seguem Y = ⍺ X + e, tal que a razão (Y / X) se move em torno do valor médio ⍺, ganhamos dinheiro na proporção dos dois revertendo para a média. Para fazer isso, observaremos quando X e Y estão distantes, ou seja, é muito alto ou muito baixo:
Indo Longo na Relação Isto é quando a relação ⍺ é menor do que o usual e esperamos que aumente. No exemplo acima, apostamos nisso comprando Y e vendendo X. Reduzindo a taxa É quando a proporção ⍺ é grande e esperamos que ela se torne menor. No exemplo acima, apostamos nisso vendendo Y e comprando X.
Tenha em atenção que temos sempre uma "posição coberta": uma posição curta ganha dinheiro se a segurança vendida perder valor e uma posição longa ganhará dinheiro se uma segurança ganhar valor, pelo que estamos imunes ao movimento geral do mercado. Nós só ganhamos ou perdemos dinheiro se os títulos X e Y se movem em relação um ao outro.
Usando dados para encontrar valores mobiliários que se comportam assim.
A melhor maneira de fazer isso é começar com títulos que você suspeita serem cointegrados e realizar um teste estatístico. Se você acabou de executar testes estatísticos sobre todos os pares, será vítima de viés de várias comparações.
O viés de múltiplas comparações é simplesmente o fato de que há uma chance maior de gerar incorretamente um valor p significativo quando muitos testes são executados, porque estamos executando muitos testes. Se 100 testes forem executados em dados aleatórios, devemos esperar ver 5 valores de p abaixo de 0,05. Se você estiver comparando n títulos para co-integração, você realizará n (n-1) / 2 comparações, e você deve esperar ver muitos valores p incorretamente significativos, que aumentarão conforme você aumenta. Para evitar isso, escolha um pequeno número de pares que você tenha motivos para suspeitar que possam ser cointegrados e teste cada um individualmente. Isso resultará em menos exposição a viés de múltiplas comparações.
Então, vamos tentar encontrar algumas ações que exibam cointegração. Vamos trabalhar com uma cesta de ações da US cap tech de grande porte - no S & P 500. Essas ações operam em um segmento semelhante e poderiam ter preços cointegrados. Examinamos uma lista de títulos e testamos a cointegração entre todos os pares. Ele retorna uma matriz de pontuação do teste de cointegração, uma matriz de valor p e quaisquer pares para os quais o valor de p é menor que 0,05. Este método é propenso a viés de comparação múltipla e, na prática, os títulos devem estar sujeitos a uma segunda etapa de verificação. Vamos ignorar isso por causa deste exemplo.
Nota: Incluímos o benchmark de mercado (SPX) em nossos dados - o mercado impulsiona o movimento de tantos títulos que muitas vezes você pode encontrar dois títulos aparentemente cointegrados; mas na realidade eles não estão cointegrados um com o outro, mas ambos conintegrados com o mercado. Isso é conhecido como uma variável de confusão e é importante verificar o envolvimento do mercado em qualquer relacionamento que você encontrar.
Agora vamos tentar encontrar pares cointegrados usando nosso método.
Parece que o "ADBE" e o "MSFT" estão cointegrados. Vamos dar uma olhada nos preços para garantir que isso realmente faça sentido.
A proporção parece que se deslocou em torno de uma média estável. A taxa absoluta não é muito útil em termos estatísticos. É mais útil normalizar nosso sinal tratando-o como um escore z. A pontuação Z é definida como:
Pontuação Z (Valor) = (Valor - Média) / Desvio Padrão.
Na prática, isso geralmente é feito para tentar dar alguma escala aos dados, mas isso pressupõe uma distribuição subjacente. Normalmente normal. No entanto, muitos dados financeiros normalmente não são distribuídos, e devemos ter muito cuidado para não simplesmente assumir a normalidade ou qualquer distribuição específica ao gerar estatísticas. A verdadeira distribuição das proporções poderia ser muito fatigada e propensa a valores extremos atrapalhando nosso modelo e resultando em grandes perdas.
É mais fácil observar agora que a proporção agora se move em torno da média, mas às vezes é propensa a grandes divergências da média, das quais podemos tirar vantagens.
Como falamos sobre os fundamentos da estratégia de negociação em pares e identificamos títulos co-integrados com base no preço histórico, vamos tentar desenvolver um sinal de negociação. Primeiro, vamos recapitular os passos no desenvolvimento de um sinal de negociação usando técnicas de dados:
Colete dados confiáveis ​​e limpe os recursos de criação de dados dos dados para identificar um sinal de negociação / lógica Os recursos podem ser médias móveis ou taxas de dados de preços, correlações ou sinais mais complexos - combine-os para criar novos recursos Gerar um sinal de negociação usando esses recursos, ou seja, instrumentos são uma compra, uma venda ou neutra.
Etapa 1: configure seu problema.
Aqui estamos tentando criar um sinal que nos diz se a proporção é uma compra ou uma venda no próximo instante, ou seja, nossa variável de previsão Y:
Y = Razão é comprar (1) ou vender (-1) Y (t) = Sinal (Proporção (t + 1) - Razão (t))
Note que não precisamos prever os preços reais das ações, ou mesmo o valor real da proporção (embora possamos), apenas a direção do próximo movimento na proporção.
Etapa 2: colete dados confiáveis ​​e precisos.
A Auquan Toolbox é sua amiga aqui! Você só precisa especificar o estoque que deseja negociar e usar a fonte de dados, e extrai os dados necessários e os limpa para dividendos e desdobramentos. Então nossos dados aqui já estão limpos.
Estamos usando os seguintes dados do Yahoo em intervalos diários para os dias de negociação nos últimos 10 anos (
2500 pontos de dados): Aberto, Fechado, Alto, Baixo e Volume de Negociação.
Etapa 3: dividir dados.
Não se esqueça deste passo super importante para testar a precisão dos seus modelos. Estamos usando o seguinte Treinamento / validação / teste dividido.
Idealmente, devemos também fazer um conjunto de validação, mas vamos ignorar isso por enquanto.
Etapa 4: engenharia de recursos.
Quais poderiam ser as características relevantes? Queremos prever a direção do movimento da razão. Vimos que nossos dois títulos estão cointegrados, então a proporção tende a se mover e voltar à média. Parece que nossas características devem ser determinadas medidas para a média da razão, a divergência do valor atual da média para gerar nosso sinal de negociação.
Vamos usar os seguintes recursos:
Média Móvel de 60 Dias de Proporção: Medida de média móvel de 5 dias Média Móvel de Proporção: Medida do valor atual da média de 60 dias Desvio Padrão z pontuação: (5d MA - 60d MA) / 60d SD.
O Z Score do rolamento realmente destaca a natureza de reversão da razão!
Etapa 5: Seleção do Modelo.
Vamos começar com um modelo realmente simples. Observando o gráfico de pontuação z, podemos ver que sempre que o recurso z-score fica muito alto ou muito baixo, ele tende a reverter. Vamos usar + 1 / -1 como nossos limites para muito alto e muito baixo, então podemos usar o modelo a seguir para gerar um sinal de negociação:
Proporção é comprar (1) sempre que o escore z for inferior a -1,0 porque esperamos que o escore z volte até 0, portanto, o rácio para aumentar Rácio é vender (-1) quando o escore z é superior a 1,0 porque esperamos z pontuação para voltar a 0, daí relação para diminuir.
Etapa 6: Treine, valide e otimize.
Por fim, vamos ver como nosso modelo realmente funciona com dados reais? Vamos ver como esse sinal se parece nas proporções reais.
O sinal parece razoável, parece que nós vendemos a proporção (pontos vermelhos) quando está alto ou aumentando e compramos de volta quando está baixo (pontos verdes) e diminuindo. O que isso significa para as ações reais que estamos negociando? Vamos dar uma olhada.
Observe como às vezes ganhamos dinheiro com a perna curta e às vezes com a perna longa e às vezes com as duas.
Estamos felizes com nosso sinal nos dados de treinamento. Vamos ver que tipo de lucros esse sinal pode gerar. Podemos fazer um backtester simples que compra 1 rácio (comprar 1 stock de ADBE e rácio de venda x stock de MSFT) quando o rácio é baixo, vender 1 rácio (vender 1 stock de ADBE e rácio de compra x stock de MSFT) quando é alto e calcular PnL destes comércios.
Então essa estratégia parece lucrativa! Agora podemos otimizar ainda mais, alterando as janelas de média móvel, alterando os limites para as posições de compra / venda e saída, etc. e verifique se há melhorias de desempenho nos dados de validação.
Poderíamos também tentar modelos mais sofisticados como Regressão Logística, SVM, etc. para fazer nossas previsões de 1 / -1.
Por enquanto, digamos que decidimos seguir adiante com esse modelo, isso nos leva a.
Etapa 7: Backtest nos dados de teste.
O backtesting é simples, podemos apenas usar nossa função acima para ver o PnL nos dados de teste.
O modelo faz muito bem! Isso torna o nosso primeiro modelo de negociação de pares simples.
Evite Overfitting.
Antes de terminar a discussão, gostaríamos de mencionar o superajuste. Overfitting é a armadilha mais perigosa de uma estratégia de negociação. Um algoritmo overfit pode funcionar maravilhosamente em um backtest, mas falha miseravelmente em novos dados invisíveis - isso significa que realmente não descobriu qualquer tendência nos dados e nenhum poder preditivo real. Vamos dar um exemplo simples.
Em nosso modelo, usamos estimativas de parâmetros de rolamento e podemos desejar otimizar o tamanho da janela. Podemos decidir simplesmente fazer uma iteração em toda a extensão de janela razoável e possível e escolher o tamanho com base no desempenho do nosso modelo. Abaixo, escrevemos um loop simples para marcar os comprimentos das janelas com base no pnl de dados de treinamento e encontrar o melhor.
Agora, verificamos o desempenho do nosso modelo nos dados de teste e descobrimos que esse tamanho de janela está longe de ser ideal! Isso ocorre porque nossa escolha original foi claramente ajustada aos dados da amostra.
Claramente adequado aos nossos dados de amostra, não dá sempre bons resultados no futuro. Apenas por diversão, vamos mapear as pontuações de comprimento calculadas a partir dos dois conjuntos de dados.
Podemos ver que qualquer coisa entre 20 e 50 seria uma boa escolha para a janela.
Para evitar o overfitting, podemos usar o raciocínio econômico ou a natureza do nosso algoritmo para escolher o tamanho da nossa janela. Também podemos usar filtros de Kalman, que não nos obrigam a especificar um tamanho; esse método será abordado em outro caderno posteriormente.
Próximos passos.
Neste post, apresentamos algumas abordagens introdutórias simples para demonstrar o processo de desenvolvimento de uma estratégia de negociação de pares. Na prática, deve-se usar estatísticas mais sofisticadas, algumas das quais estão listadas aqui.
Expoente de Hurst Meia-vida de reversão à média inferida de um processo de Ornstein-Uhlenbeck de filtros de Kalman.

Exemplo de estratégia de negociação em par
O objetivo desta estratégia é demonstrar as capacidades do AlgoTrader. Não o use com uma Conta de Negociação ao Vivo e dinheiro real! A estratégia pode levar a grandes perdas. Mesmo quando modificar ou estender a estratégia, tenha cuidado antes de negociar o Live.
A estratégia de negociação de pares usa o serviço de web pairtradinglab para trocar pares de ações dos EUA.
C.1.1. O que é negociação de pares?
A negociação de pares é uma estratégia de negociação neutra de mercado bem conhecida, que dá aos operadores a capacidade de lucrar com praticamente todas as condições de mercado. Se as condições refletem uma tendência de alta, tendência de baixa ou movimento lateral, os traders podem aproveitar o mercado atual usando a negociação de pares. Este tipo de estratégia é tipicamente categorizado como uma estratégia de negociação de arbitragem estatística.
A estratégia funciona monitorando o desempenho de dois títulos historicamente correlacionados. Quando a correlação entre esses dois títulos demonstra uma fraqueza temporária, uma negociação de pares pode ser conduzida pela redução do estoque de alto desempenho e pelo longo prazo do estoque com baixo desempenho. Basicamente, alguém está apostando que o spread entre os dois convergirá eventualmente.
C.1.2.Em Pair Trading Lab.
O Pair Trading Lab oferece ferramentas para auxiliar na configuração e backtesting de um portfólio de negociação de pares. Juntamente com um banco de dados de mais de 10 milhões de pares pré-analisados, o Pair Trading Lab oferece o seguinte:
Testador avançado online.
Analisador de co-integração online.
Repositório privado de backtests, estudos e pares.
Organizador de portfólio e backtester de portfólio.
C.1.3. AlgoTrader - Par Integração Lab Laboratório.
Com a integração entre o AlgoTrader e o Pair Trading Lab, é possível aproveitar as capacidades dos dois sistemas em combinação:
O Pair Trading Lab será usado para:
Crie backtests de pares.
Verifique uma ideia de negociação em par e inspecione o comportamento e a robustez dos pares.
Pares de teste para co-integração.
Pesquise no banco de dados PTL de mais de 10 milhões de pares de mercado pré-analisados ​​nos EUA usando filtros complexos.
Crie e mantenha listas de pares interessantes, classifique-os e marque-os.
Criar, manter e fazer backtest de portfólios de estratégias de pares.
Em seguida, a integração do AlgoTrader - Pair Trading Lab pode ser usada para baixar pares selecionados e / ou portfólio de pares do Pair Trading Lab para o AlgoTrader, onde eles podem ser negociados automaticamente.
A implementação da estratégia de negociação de pares baseada no AlgoTrader é baseada no Modelo de Proporção.
C.2. Implementação.
Os principais artefatos necessários para a implementação de uma nova estratégia estão descritos no capítulo Capítulo 5, Desenvolvimento da Estratégia.
A lista a seguir dará uma visão geral dos artefatos específicos implementados pela Estratégia de negociação de pares (Nota: a maior parte da funcionalidade é documentada via comentários JavaDoc ou Esper):
A classe de serviço de estratégia que fornece a lógica de negociação principal.
Utilitário de importação para baixar pares do Pair Trading Lab e configurá-los no AlgoTrader.
Contém todos os itens de configuração de estratégia.
Contém a lógica do modelo de proporção.
Módulo Esper contendo todas as declarações para esta estratégia:
PAIR_WINDOW: contém todas as definições de pares atuais.
SIGNAL_WINDOW: Contém sinais atuais (serão atualizados em cada tick)
LAST_TICK, INSERT_LATEST_TICK, UPDATE_LATEST_TICK_1 & amp; UPDATE_LATEST_TICK_2: acompanhe os preços atuais de todos os pares.
UPDATE_HISTORICAL_BARS & amp; DAILY_RECALC: disparos diários para baixar dados históricos e atualizar limites de entrada.
INSERT_ZSCORE: calcula a pontuação z para cada nova atualização de preço.
INSERT_INTO_SIGNAL_EVENT & amp; ON_SIGNAL: crie e propague SignalEvents caso um acionador de entrada ou saída seja atingido.
Contém parâmetros padrão usados ​​pela estratégia.
Contém definições de tipos de eventos (por exemplo, PairEvent e SignalEvent)
Contém paresTradingParams, paresTradingConfig, paresTradingEngine, pairsTradingService assim como os beans específicos da estratégia csvImporter, orderSubmissionService e pairsTradingLabNavigator.
Contém os registros do banco de dados H2 necessários para simular a estratégia com o banco de dados embutido na memória H2.
Contém os registros do banco de dados MySql. Precisa ser importado para o banco de dados antes de executar a estratégia com o banco de dados MySql.
Arquivos HTML5 e JavaScript necessários para a interface da Web personalizada de estratégia.
Para iniciar a Estratégia, consulte as explicações no capítulo Capítulo 4, Iniciando o AlgoTrader.
C.3.Instalação & amp; Comece.
Antes de usar a estratégia, por favor, execute os seguintes passos:
Inscreva-se para uma conta gratuita no Pair Trading Lab.
Crie um portfólio de pares.
crie um portfólio de pares e adicione alguns pares.
Extrair ID do portfólio.
O csvImportPortfolio precisa ser extraído do URL ao clicar em par no PTL Trader / Portfolio Manager.
Figura C.1.Emparelhar carteira de negociação ID.
Para iniciar a estratégia no modo de negociação ao vivo em uma estação de trabalho de desenvolvimento, execute as seguintes etapas:
Execute um clone do Git na linha de comando:
Importe os pares de projetos para o eclipse por meio dos projetos File / Import / Maven / Existing Maven:
Implemente dados do MySql.
Carregue o arquivo /src/main/resources/db/mysql/mysql-data. sql no MySql.
Configurar credenciais de laboratório de troca de par.
Dentro do arquivo /src/main/resources/conf-pairstrading. properties os seguintes itens precisam ser configurados:
csvImportPortfolio precisa ser extraído do Pair Trading Lab (veja acima)
Comece a estratégia no modo de negociação ao vivo.
Ative a Configuração de Lançamento do Eclipse: EmbeddedStarter-pairstrading.
Para iniciar a estratégia no modo de negociação ao vivo em um servidor produtivo, execute as seguintes etapas:
Copie o seguinte arquivo para o servidor e faça as alterações necessárias:
Configurar credenciais de laboratório de troca de par.
dentro do arquivo docker-compose. yml atualize a variável de ambiente VM_ARGUMENTS e defina os valores corretos para csvImportPortfolio, csvImportUser & amp; csvImportPassword:
csvImportPortfolio precisa ser extraído do Pair Trading Lab (veja acima)
Executar o docker compor.
Invoque o seguinte comando dentro do diretório em que o arquivo docker-compose. yml está localizado:
C.4.Estratégia de Monitoramento.
A estratégia de negociação de pares está equipada com uma página de gerenciamento HTML5 separada. A página está disponível através do caminho /pairstrading. html, por exemplo:
Figura C.2.Pairs Trading HTML5 Custom Widget Example.
Pode ser necessário recarregar totalmente o navegador na primeira inicialização para mostrar o widget personalizado usando Ctrl + Shift + R.
A página de gerenciamento de HTML5 fornece os seguintes controles:
PairInfo & amp; Pares: definições de pares atuais baixados do Pair Trading Lab. movingAvg e standardDev são calculados diariamente (pela declaração Esper UPDATE_HISTORICAL_BARS) usando os preços de fechamento históricos.
Sinais: valores de par intradiário baseados em dados ativos. ratio mostra a relação de preço atual entre os instrumentos individuais de um par. O zScore mostra a relação atual em relação à banda de bollinger em torno da série temporal da relação. Quando o zScore atinge o limite zScoreEntry, uma posição é inserida e, quando o zScore atinge o limite zScoreExit, a posição é fechada. Se o zScore estiver acima de zScoreMax (por exemplo, após um grande intervalo durante a noite), nenhuma nova posição será aberta. O campo de sinal mostra o estado atual de um par (ou seja, LONG, SHORT, EXIT & amp; HOLD)
A ação Importar Barras Históricas é usada para importar os preços de fechamento históricos de todos os instrumentos para o período de referência relevante. Esta ação é executada automaticamente uma vez por dia. Além disso, pode ser chamado manualmente a qualquer momento.
A ação Limites de entrada do Re-Calc é usada para atualizar o movingAvg e o standardDev com base nos dados históricos do banco de dados. Esta ação é executada automaticamente uma vez por dia. Além disso, pode ser chamado manualmente a qualquer momento.
A ação Import Pairs importa e / ou atualiza pares do Pair Trading Lab.

Guia para negociação de pares.
A negociação de pares é uma estratégia de negociação neutra de mercado que corresponde a uma posição comprada com uma posição vendida em um par de instrumentos altamente correlacionados, como duas ações, fundos negociados em bolsa (ETFs), moedas, commodities ou opções. Os operadores de pares aguardam a fraqueza na correlação e, em seguida, perdem tempo com o sub-performer, ao mesmo tempo que vendem em curto, o super-performer, fechando as posições à medida que o relacionamento retorna às normas estatísticas.
O lucro da estratégia é derivado da diferença na mudança de preço entre os dois instrumentos, e não da direção que cada um move. Portanto, um lucro pode ser realizado se a posição longa subir mais do que a curta, ou a posição curta cair mais do que a longa (em uma situação perfeita, a posição longa sobe e a posição curta cai, mas isso não é um requisito para fazendo um lucro). É possível que os comerciantes de pares lucrem durante uma variedade de condições de mercado, incluindo períodos em que o mercado sobe, desce ou de lado - e durante períodos de baixa ou alta volatilidade. (Veja também: 4 fatores que moldam as tendências do mercado.)
A origem da negociação de pares.
A origem da troca de pares é geralmente creditada a um grupo de cientistas da computação, matemáticos e físicos reunidos pelo Morgan Stanley & Wall Street de Wall Street. Co. no início a meados da década de 1980. A equipe, que incluiu os cientistas de computação Gerry Bamberger e David Shaw, e o comerciante de quantum Nunzio Tartaglia, foi reunida para estudar oportunidades de arbitragem nos mercados de ações, empregando modelagem estatística avançada e desenvolvendo um programa de negociação automatizado para explorar desequilíbrios de mercado.

US Search Desktop.
Agradecemos seus comentários sobre como melhorar a Pesquisa do Yahoo. Este fórum é para você fazer sugestões de produtos e fornecer feedback atencioso. Estamos sempre tentando melhorar nossos produtos e podemos usar o feedback mais popular para fazer uma mudança positiva!
Se você precisar de assistência de qualquer tipo, visite nosso fórum de suporte à comunidade ou encontre ajuda individualizada em nosso site de ajuda. Este fórum não é monitorado por nenhum problema relacionado a suporte.
O fórum de comentários do produto do Yahoo agora exige um ID e uma senha válidos do Yahoo para participar.
Agora você precisa fazer login usando sua conta de e-mail do Yahoo para nos fornecer feedback e enviar votos e comentários para as ideias existentes. Se você não tiver um ID do Yahoo ou a senha do seu ID do Yahoo, inscreva-se para obter uma nova conta.
Se você tiver um ID e uma senha do Yahoo válidos, siga estas etapas se quiser remover suas postagens, comentários, votos e / ou perfil do fórum de comentários do produto do Yahoo.
Vote em uma ideia existente () ou publique uma nova ideia…
Idéias quentes Idéias superiores Novas ideias Categoria Status Meu feedback.
Xnxx vedios.
Trazer de volta o layout antigo com pesquisa de imagens.
sim: a única possibilidade (eu acho) enviar todas as informações para (alienvault.
Desinformação na ordem DVD.
Eu pedi DVD / Blueray "AL. A confidencial" tudo que eu consegui foi Blue ray & amp; um contato # para obter o DVD que não funcionou. Eu encomendo minha semana com Marilyn ____DVD / blue ray & amp; Eu peguei os dois - tolamente, assumi que o mesmo se aplicaria a L. A. ___ETC não. Eu não tenho uma máquina de raio azul ----- Eu não quero uma máquina de raio azul Eu não quero filmes blueray. Como obtenho minha cópia de DVD de L. A. Confidential?
yahoo, pare de bloquear email.
Passados ​​vários meses agora, o Yahoo tem bloqueado um servidor que pára nosso e-mail.
O Yahoo foi contatado pelo dono do servidor e o Yahoo alegou que ele não bloquearia o servidor, mas ainda está sendo bloqueado. CEASE & amp; DESISTIR.
Não consigo usar os idiomas ingleses no e-mail do Yahoo.
Por favor, me dê a sugestão sobre isso.
Motor de busca no Yahoo Finance.
Um conteúdo que está no Yahoo Finance não aparece nos resultados de pesquisa do Yahoo ao pesquisar por título / título da matéria.
Existe uma razão para isso, ou uma maneira de reindexar?
Procure por "turkey ******" imagens sem ser avisado de conteúdo adulto ou que o mostre.
O Yahoo está tão empenhado em atender os gostos lascivos das pessoas que nem posso procurar imagens de uma marca de "peitos de peru" sem ser avisado sobre conteúdo adulto? Apenas usando a palavra "******" em QUALQUER contexto significa que eu vou pegar seios humanos em toda a página e ter que ser avisado - e passar por etapas para evitá-lo?
Aqui está minha sugestão Yahoo:
Invente um programa de computador que reconheça palavras como 'câncer' ou 'peru' ou 'galinha' em uma frase que inclua a palavra '******' e não assuma automaticamente que a digitação "***** * "significa que estou procurando por ***********.
Descobrir uma maneira de fazer com que as pessoas que ESTÃO procurando *********** busquem ativamente por si mesmas, sem assumir que o resto de nós deve querer *********** se digitarmos uma palavra comum - ****** - que qualquer um pode ver qualquer dia em qualquer seção de carne em qualquer supermercado em todo o país. :(
O Yahoo está tão empenhado em atender os gostos lascivos das pessoas que nem posso procurar imagens de uma marca de "peitos de peru" sem ser avisado sobre conteúdo adulto? Apenas usando a palavra "******" em QUALQUER contexto significa que eu vou pegar seios humanos em toda a página e ter que ser avisado - e passar por etapas para evitá-lo?
Aqui está minha sugestão Yahoo:
Invente um programa de computador que reconheça palavras como "câncer" ou "peru" ou "galinha" em uma frase que inclua a palavra "******" e não assuma automaticamente a digitação "***** * "significa que estou procurando por mais ...
Por que, quando eu faço login no YahooGroups, todos os grupos aparecem em francês ?!
Quando entro no YahooGroups e ligo para um grupo, de repente tudo começa a aparecer em francês? O que diabos está acontecendo lá ?! Por alguma razão, o sistema está automaticamente me transferindo para o fr. groups. yahoo. Alguma ideia?
consertar o que está quebrado.
Eu não deveria ter que concordar com coisas que eu não concordo com a fim de dizer o que eu acho - eu não tive nenhum problema resolvido desde que comecei a usar o Yahoo - fui forçado a jogar meu antigo mensageiro, trocar senhas, obter novas messenger, disse para usar o meu número de telefone para alertar as pessoas que era o meu código de segurança, receber mensagens diárias sobre o bloqueio de yahoo tentativas de uso (por mim) para quem sabe por que como ele não faz e agora eu obter a nova política aparecer em cada turno - as empresas costumam pagar muito caro pela demografia que os usuários fornecem para você, sem custo, pois não sabem o que você está fazendo - está lá, mas não está bem escrito - e ninguém pode responder a menos que concordem com a política. Já é ruim o suficiente você empilhar o baralho, mas depois não fornece nenhuma opção de lidar com ele - o velho era bom o suficiente - todas essas mudanças para o pod de maré comendo mofos não corta - vou relutantemente estar ativamente olhando - estou cansado do mudanças em cada turno e mesmo aqueles que não funcionam direito, eu posso apreciar o seu negócio, mas o Ameri O homem de negócios pode vender-nos ao licitante mais alto por muito tempo - desejo-lhe boa sorte com sua nova safra de guppies - tente fazer algo realmente construtivo para aqueles a quem você serve - a cauda está abanando o cachorro novamente - isso é como um replay de Washington d c
Eu não deveria ter que concordar com coisas que eu não concordo com a fim de dizer o que eu acho - eu não tive nenhum problema resolvido desde que comecei a usar o Yahoo - fui forçado a jogar meu antigo mensageiro, trocar senhas, obter novas messenger, disse para usar o meu número de telefone para alertar as pessoas que era o meu código de segurança, receber mensagens diárias sobre o bloqueio de yahoo tentativas de uso (por mim) para quem sabe por que isso acontece e agora eu recebo a nova política em cada turno - as empresas costumam pagar muito pela demografia que os usuários fornecem para você ... mais.

Estratégia de negociação em pares [EXCEL MODEL]
Introdução.
Pair trading é uma estratégia de negociação que corresponde a uma posição longa em uma ação / ativo com uma posição de compensação em outra ação / ativo que é estatisticamente relacionada. Pair trading é uma estratégia de reversão à média, em que apostamos que os preços reverterão para suas tendências históricas.
Quem pode usar este modelo do Excel?
Pessoas interessadas em algorítmica e negociação Quant, aqueles que querem aprender sobre arbitragem estatística.
Como isso ajuda?
Este modelo de excel irá ajudá-lo a:
Aprenda a aplicação da reversão à média Compreensão da negociação em pares Otimize os parâmetros de negociação Entenda os retornos significativos da arbitragem estatística.
Por que você deve baixar o modelo de negociação?
Como a lógica de negociação é codificada nas células da planilha, você pode entender melhor baixando e analisando os arquivos conforme sua conveniência. Não apenas isso, você pode brincar com os números para obter melhores resultados. Você pode encontrar parâmetros adequados que proporcionem lucros maiores do que o especificado no artigo.
Explicação do modelo.
Neste exemplo, consideramos o par MSCI e Nifty como ambos são índices do mercado de ações. Nós implementamos a estratégia de reversão da média neste par. A reversão à média é uma propriedade de séries temporais estacionárias. Como afirmamos que o par que escolhemos é a reversão, devemos testar se ele segue a estacionariedade.
O diagrama a seguir mostra a plotagem da proporção logarítmica de Nifty para MSCI. No início, isso parece ser revertendo com um valor médio de 2.088, mas usamos o Teste Dicky Fuller para testar se ele é estacionário com significância estatística. Os resultados da tabela de saída Cointegration mostram que a série de preços é estacionária e, portanto, significa reversão. A estatística de Teste de Dicky Fuller e um valor de p significativamente baixo (& lt; 0,05) confirma nossa suposição. Tendo determinado que a reversão à média é válida para o par escolhido, procedemos com a especificação de suposições e parâmetros de entrada.
Premissas.
Para fins de simplificação, ignoramos os spreads bid-ask. Os preços estão disponíveis em intervalos de 5 minutos e nós negociamos apenas com o preço de fechamento de 5 minutos. Uma vez que isto é um dado discreto, a quadratura da posição acontece no final da vela, isto é, ao preço disponível no final de 5 minutos. Apenas a sessão regular (T) é negociada. Os custos de transação são de US $ 0,375 para Nifty e US $ 1,10 para MSCI. A margem para cada negociação é de $ 990 (aproximada de $ 1000).
Parâmetros de entrada.
Por favor, note que todos os valores para os parâmetros de entrada mencionados abaixo são configuráveis.
Média de 10 velas (uma vela = a cada 5 minutos) é considerada Uma pontuação “z” de +2 é considerada para compra e -2 para venda Um stop loss de $ 100 e limite de lucro de $ 200 é definido O tamanho do pedido para negociação MSCI é 50 (1 lote) e para Nifty é 6 (3 lotes)
Os dados de mercado e parâmetros de negociação são incluídos na planilha a partir da 12ª linha. Portanto, quando a referência é feita à coluna D, deve ficar óbvio que a referência começa de D12 em diante.
Explicação das colunas no Modelo do Excel.
A coluna C representa o preço do MSCI.
A coluna D representa o preço Nifty.
A coluna E é a razão logarítmica de Nifty para MSCI.
A coluna F calcula a média de 10 velas. Como 10 valores são necessários para cálculos médios, não há valores de F12 a F22. A fórmula = SE (A23 & gt; $ C $ 3, MÉDIA (ÍNDICE ($ E $ 13: $ E $ 1358, A23- $ C $ 3): E22), & # 8220; & # 8221;) significa que a média deve ser calculada apenas se a amostra de dados disponível for maior que 10 (ou seja, o valor especificado na célula C3), caso contrário, a célula deve ficar em branco. Considere a célula F22. Sua célula correspondente A22 tem um valor de 10. Como A22 & gt; $ C $ 3 falha, a entrada nessa célula está em branco. A próxima célula F23 tem um valor desde A23 & gt; $ C $ 3 é verdadeira. O próximo pedaço da fórmula.
MÉDIA (ÍNDICE ($ E $ 13: $ E $ 1358, A23 - $ C $ 3): E22) calcula o valor médio das últimas 10 (como mencionado na célula C3) das velas dos dados da coluna E. Lógica semelhante é válida para a coluna G, onde o desvio padrão é calculado. A pontuação “z” é calculada na coluna H. A fórmula para calcular a pontuação “z” é z = (x -) / (σ). Aqui x é a amostra (coluna E), é o valor médio (coluna F) e σ é o desvio padrão (coluna G).
Coluna I representa o sinal de negociação. Como mencionado nos parâmetros de entrada, se a pontuação de "z" for inferior a -2, compramos e se ultrapassar +2, vendemos. Quando dizemos comprar, temos uma posição longa em 3 lotes de Nifty e temos uma posição curta em 1 lote de MSCI. Da mesma forma, quando dizemos vender, temos uma posição comprada em 1 lote de MSCI e temos uma posição vendida em 3 lotes de Nifty, assim alinhando a posição. Nós temos uma posição aberta o tempo todo.
Para entender o que isso significa, considere dois sinais de negociação "comprar" e "vender". Para o sinal de “compra”, como explicado anteriormente, compramos 3 lotes de futuro Nifty e um lote de 1 MSCI futuro. Uma vez que a posição é tomada, rastreamos a posição usando a coluna Status, ou seja, a coluna M. Em cada nova linha enquanto a posição continua, verificamos se o stop loss (como mencionado na célula C6) ou take profit (como mencionado na célula) C7) é atingido. O stop loss é dado o valor de USD -100, ou seja, a perda de USD 100 e o lucro é dado o valor de USD 200 nas células C6 e C7, respectivamente. Embora a posição não atinja o stop loss nem o lucro, continuamos com essa negociação e ignoramos todos os sinais que aparecem na coluna I. Quando a negociação atinge o stop loss ou o take profit, voltamos a analisar os sinais na coluna Eu e abrir uma nova posição de negociação assim que tivermos um sinal Comprar ou Vender na coluna I.
A coluna M representa os sinais de negociação com base nos parâmetros de entrada especificados. A coluna I já tem sinais de negociação e M informa-nos sobre o estado da nossa posição de negociação, ou seja, somos comprados ou baixos ou contabilizamos os lucros ou saímos com o stop loss. Se a negociação não for concluída, transportamos a posição para a próxima vela repetindo o valor da coluna de status na vela anterior. Se o movimento do preço ocorrer de tal forma que ele viole o TP ou SL dado, então nós ajustamos a nossa posição, denotando-a por “TP” e “SL”, respectivamente.
Coluna L representa Mark to Market. Especifica a posição da carteira no final do período de tempo. Conforme especificado nos parâmetros de entrada, trocamos 1 lote de MSCI e 3 lotes de Nifty. Portanto, quando negociamos nossa posição, é a diferença de preço apropriada (dependendo se somos comprados ou vendidos) multiplicada pelo número de lotes.
A coluna N representa o status de lucro / perda do negócio. P / L é calculado apenas quando tivermos quadrados nossa posição. A coluna O calcula o lucro acumulado.
A tabela de saída tem algumas métricas de desempenho tabuladas. A perda de todos os negócios deficitários é de $ 3699 e o lucro de negócios que atingem o TP é $ 9280. Assim, o total de P / L é $ 9280- $ 3699 = $ 5581. Negociações com prejuízo são as negociações que resultaram na perda de dinheiro nas posições de negociação. Comércios rentáveis ​​são os comércios de sucesso que terminam em ganhar causa. O lucro médio é a razão entre o lucro total e o número total de negócios. O lucro médio líquido é calculado após a subtração dos custos de transação, que equivalem a US $ 91,77.

Par Estratégia de Negociação e Backtesting usando Quantstrat.
Um recente Webinar Apresentação de Marco Nicolas Dibo.
Este webinar perspicaz sobre negociação de pares e dados de sourcing abrange os fundamentos da estratégia de negociação de pares, seguidos de dois exemplos. No primeiro exemplo, Marco cobre a estratégia de negociação de pares para diferentes ações negociadas na mesma bolsa, e no segundo exemplo, Marco ilustrou a estratégia de pares para diferentes futuros de commodities negociados em diferentes bolsas. Marco também detalha as diferentes fontes de dados, incluindo o Quandl, que pode ser usado para criar estratégias de negociação.
Este artigo é o projeto final submetido pelo autor como parte de seu curso no Executive Program em Algorithmic Trading (EPAT) da QuantInsti. Confira nossa página de projetos e veja o que nossos alunos estão construindo.
Marco passou sua carreira como comerciante e gerente de portfólio, com um foco particular nos mercados de ações e derivativos. Ele é especialista em finanças quantitativas e trading algorítmico e atualmente atua como chefe da Quantitative Trading Desk e vice-presidente da Argentina Valores SA Marco também é co-fundador e CEO da Quanticko Trading SA, uma empresa dedicada ao desenvolvimento de estratégias de negociação de alta frequência e software de negociação. Marco é bacharel em Economia e mestre em Finanças pela Universidade de San Andrés.
Introdução.
Uma das minhas aulas favoritas durante a EPAT foi a arbitragem estatística, então a estratégia de negociação em pares pareceu uma boa ideia para mim. Minha estratégia desencadeia novas ordens quando a relação par dos preços das ações diverge da média. Mas, para trabalhar, primeiro temos que testar o par a ser cointegrado. Se o coeficiente par é cointegrado, a razão é reversão-média e quanto maior a dispersão de sua média, maior a probabilidade de reversão, o que torna o comércio mais atraente. Eu escolhi o seguinte par de ações:
The idea is the following: If we find two stocks that are correlated (they correspond to the same sector), and the pair ratio diverges from a certain threshold, we short the stock that is expensive and buy the one that is cheap. Once they converge to the mean, we close the positions and profit from the reversal.
Trading Strategy Logic.
The logic is simple. The algorithm calculates the daily Z-score for every pair of stocks. The Z-score is the number of standard deviations that the pair ratio has diverged from its mean:
Where R is the price ratio of both stocks, μ is the mean of the ratio and σ is the standard deviation of the price ratio.
Once the Z-score is outside of a certain threshold, we fulfill the first condition required for sending an order.
But the algorithm must also meet a second condition : It calculates the rolling Augmented Dickey Fuller test for the pair of stocks. More specifically, it gets the p-value from the test. Then it compares it with a defined significance level (alpha) and if the p-value is less than the alpha, it means that the price ratio series are stationary and the second condition is met. If both conditions are met, then the algorithm buys the loser and sells the winner. The exit rules apply at a certain Z-score threshold. For the optimization of the strategy the variables that I used were the following:
Z-Score entry thresholds Z-Score exit thresholds Second condition (cointegration) True or False.
Code details and In-Sample Backtest:
The in-sample period for backtesting was 01-01-2009 till 31-12-2012. The Z-score was calculated using the following parameters:
Moving average of the price ratio: 20 days Standard Deviation of the price ratio: 20 days ADF test window: 60 days Initial Equity = 100.000 USD Buy/Sell quantities of spread = 3000.
When we short the spread we are selling “C” and buying “BAC” and when we buy the spread we are doing the opposite. I used quantstrat library [1] for backtesting the strategy. Let us dive into the code:
As mentioned earlier, I will use the quantstrat library for the optimization of my strategy. In order to use quantstrat we first have to define and initialize instruments, strategy, portfolio, account and orders:
Then we calculate and add to the strategy our two indicators to the strategy:
& # 8211; ADF Test (True or False)
In the following chart we can see the evolution of the Z-score during the period and the possible values for the threshold where the ratio reverts to the mean and the extreme values. I set some lines in the +/-2 Z-score threshold, where it seems to be a reversal of the pair ratio. This value of the z-score means that the pair ratio is +/- standard deviations from its mean.
Now we set our optimization variables:
As we can see from our summary there are 2 indicators, 7 signals and 3 rules defined in our strategy. Now we can run the backtest, check the transactions and the performance of our strategy.
The optimization was done with the following values for the variables:
From the in-sample backtest we got the following results:
From this table we can get the values for the variables that optimize the strategy. At first sight it seems that there are 3 candidates (case 4, case 6 and case 8). If we compare between cases 6 and 8 we arrive to the conclusion that case 8 is the best one as it has a greater annualized Sharpe ratio and profit to max drawdown, a higher percentage of positive trades, a greater end equity and with the same number of trades. So now we are left with only 2 candidates: 4 and 8. If we would only be checking for the one with the greatest annualized Sharpe ratio, we would prefer case 4. Case 8 also doesn’t take into account that the series must be cointegrated, and case 4 does, so this would be another plus for case 4. But if we take into account the number of transactions, the profit to max drawdown, the end equity, the percentage of positive trades and the fact that the difference in the Sharpe ratio is not a big difference we would definitely select case 8 as our best candidate.
Out of Sample Backtest:
Now that we have optimized the strategy and obtained the optimal values for the parameters, we can run an out of sample blacktest and see how the strategy performs. The out of sample period for the back test goes from the 01-01-2013 to the 31-12-2015 and the optimized values for the thresholds and rules were the following:
Z-Score Buy Threshold = -2 Z-Score Sell Threshold = 2 Z-Score Long Exit Threshold = -1 Z-Score Short Exit Threshold = 1 ADF Test = False.
The following chart show us the different transactions, the end equity and the drawdown results for our strategy:
From the table below we can see that the results from the out of sample backtest are not as good as the ones we got from the in sample backtest.
The annualized Sharpe ratio is still positive but smaller than the 3.52 that we got before. The profit to max drawdown is quite worse than the 4.23 but the max drawdown decreased from 16327 to 8641. Our strategy delivers a cumulative return of 16.04% and annualized return of 5.08% during the three years that it was deployed.
Conclusão.
The idea when I started the Executive Program in Algorithmic trading was to learn how to model a quantitative trading strategy, backtest it and then optimize it. Thanks to my professors and QuantInsti staff I feel that the objective was accomplished. Everything in the course was excellent and would recommend it to everyone interested in learning algorithmic trading.
Próximos passos.
For understanding the statistics behind Pair Trading, Correlation and Cointegration, have a look at our post here. Learn the application of mean reversion and optimising trading parameters using this Excel Downloadable model.
If you are a coder or a tech professional looking to start your own automated trading desk. Learn automated trading from live Interactive lectures by daily-practitioners. Executive Programme in Algorithmic Trading covers training modules like Statistics & Econometria, Computação Financeira & amp; Tecnologia e Algoritmica & amp; Negociação Quantitativa. Inscreva-se agora!

Par negociação: é complicada - parte I.
O interesse dos investidores institucionais em estratégias de ativos múltiplos e de ativos cruzados é acompanhado por uma ênfase na integração do sistema de fluxo de trabalho. Descobrimos que, embora as instituições possam estar usando estratégias de pares em suas execuções, elas não implementaram algoritmos de pares devido às limitações do fluxo de trabalho de negociação eletrônica. Felizmente, existem inovações tecnológicas que oferecem múltiplas soluções de integração. Discutimos isso durante nossa recente apresentação no Fórum Global Alpha Trader Forum, em Londres, e pesquisamos investidores institucionais sobre estratégias de ativos cruzados.
Muitos participantes indicaram que negociam várias classes de ativos - 76% de ações, 53% de opções e 71% de futuros. Quando perguntados se suas empresas executavam estratégias de pares, quase a metade (47%) respondeu que sim. Em seus fluxos de trabalho de execução, 100% dos entrevistados usam um sistema de gerenciamento de execução (EMS), com 94% usando também um sistema de gerenciamento de pedidos (OMS).
Embora quase a maioria dos participantes troque pares, um desafio de fluxo de trabalho eletrônico enfrentado por muitas instituições é a certificação de algoritmos de ativos cruzados em seus EMS e / ou OMS. É importante identificar e aproveitar soluções integradas devido à versatilidade dos algoritmos de vários ativos. No entanto, reconhecemos que a complexidade dos algoritmos de pares e de recursos cruzados e seus parâmetros não padrão têm sido um obstáculo à sua implementação em EMS e OMS. Nessa discussão, usamos de forma intercambiável os termos "par" e "ativos cruzados" comuns do setor para descrever esses algoritmos que podem executar dois ou mais títulos simultaneamente.
Algoritmos de ordem única e de lista terão parâmetros comuns no nível de ordem única, como faturamento programado por tempo, níveis de agressividade de captura de propagação de compra / venda ou porcentagem de participação de volume. Os algoritmos entre ativos, por outro lado, aplicarão parâmetros adicionais ao relacionamento definido dos títulos, como o spread ou índice entre os títulos negociados simultaneamente.
Enquanto uma ordem única ou lista de algoritmos é executada de maneira independente, um algoritmo de vários ativos está ciente dos outros títulos negociados ao mesmo tempo. Em outras palavras, uma estratégia de ativos cruzados é uma ordem contingente - a ação de uma ordem depende da ação de outra ordem.
Para ilustrar com os perfis de volume, temos dois pedidos (venda de segurança A e compra de segurança B) com as quantidades equivalentes a serem executadas. Os dois algoritmos VWAP (Preço Médio Ponderado por Volume) completam cada pedido independentemente. No diagrama abaixo, a venda da segurança A pode ser concluída antes que a ordem de compra na segurança B seja concluída, porque mais volume está sendo negociado para a segurança A no início.
Em comparação, um algoritmo de par executará simultaneamente ambas as ordens em uma base pro-rata, em conjunto com o relacionamento definido entre os dois títulos. Tomando o mesmo exemplo, onde as mesmas quantidades totais precisam ser executadas para cada ordem: o algoritmo de pares manterá o número de compartilhamentos executados balanceados para cada período de tempo.
Em nossa apresentação do Alpha Trader Forum, descrevemos os componentes de algoritmos de pares. Usando uma matriz de correlação, salientamos que os títulos individuais não são aleatórios, mas são influenciados por outros títulos ou mercados. Por exemplo, duas empresas farmacêuticas Sanofi [SAN FP] e Bayer AG [BAYN GY] têm uma correlação significativa (0,919) entre si. A Unilever NV, fabricante de produtos para o lar [UNA NA], também tem uma correlação significativa com cada um deles (0,922 vs Sanofi e 0,913 vs Bayer AG), pois todos estão no setor de consumo. O público reconheceu que suas ordens não são executadas isoladamente, mas podem ser afetadas por outras forças do mercado.
Se um relacionamento estatístico puder ser identificado entre dois títulos, o relacionamento pode ser definido com uma fórmula. Fórmulas comuns são:
Spread = preço A - preço B Ratio = preço A / preço B.
Para analisar um Spread ou Ratio, o Bloomberg funciona como HS & lt; GO & gt; e GR & lt; GO & gt ;, respectivamente, podem ser usados.
Para ilustrar como um algoritmo de par funciona, vamos usar um exemplo de Spread. Conforme definido anteriormente, um Spread é o preço do título A menos o preço do título B (preço A - preço B). No diagrama abaixo, Vendendo A e Comprando B, usaremos o valor 2 como spread para começar a negociar o par.
A primeira condição para a execução de um algoritmo em pares é observar a relação entre os dois preços de segurança. Quando o spread entre A e B é maior (ou maior) que 2, então é o momento certo para o algoritmo de par operar. A segurança de venda A está sendo negociada mais alta e / ou a segurança de compra B está sendo negociada mais baixa. Quando o spread é menor que 2, o algoritmo de par não está sendo negociado. Em nosso exemplo acima, o algoritmo de par deve estar sendo negociado após o período de tempo 6.
Descrevemos anteriormente uma segunda condição para que um algoritmo de par seja executado - quando o volume está disponível em ambos os títulos ao mesmo tempo. Olhando para o mesmo exemplo de spread, após o período de tempo 6, o spread de preço é maior do que o nosso limite de 2 e deve estar em execução. No entanto, nenhum volume negociado para a segurança B durante os períodos 6 e 7. Portanto, o algoritmo de par só começará a executar após o período de tempo 8 quando as condições de preço e volume forem atendidas.
Como discutido, os algoritmos de ordem única que executam independentemente um do outro podem otimizar a execução no nível de pedido único. Em contraste, um par ou algoritmo entre ativos reconhece que pode haver correlação entre os dois títulos, o que poderia otimizar a execução de outros fatores, como manter a neutralidade de caixa ou de mercado entre uma ordem de compra e venda ou lidar com a correlação de preços entre os dois. 2 títulos.
Em nossa próxima edição desta série, teremos uma visão mais detalhada de como os algoritmos de pares funcionam.

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

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