Friday, 20 October 2017

Quant em risco


GARCH (p, q) Modelo e Estratégia de Saída para Tradutores Algorítmicos Intraday


Previsão de futuro sempre foi uma parte da habilidade humana untamed para posses. Em uma agradável produção de Hollywood de Next Nicolas Cage interpretando um personagem de Frank Cadillac tem uma capacidade de ver o futuro apenas até alguns minutos à frente. Isso permite que ele tome ações quase imediatas para evitar os riscos. Agora, basta imaginar por um momento que você é um comerciante intraday (algorítmico). O que você oferece para um vislumbre de saber o que vai acontecer dentro de alguns minutos seguintes? Que tipo de risco você assumiria? É realmente possível deduzir o próximo movimento em seu tabuleiro de xadrez de negociação? Muito provavelmente a melhor resposta para esta pergunta é: é parcialmente possível. Por que então parcialmente? Bem, mesmo com uma ajuda de matemática e estatística, obviamente Deus não queria que conhecêssemos o futuro colocando sua impressão digital em nossas equações e chamando-a de variável aleatória. Inteligente, não é? Portanto, nosso objetivo é trabalhar mais duro para adivinhar o que vai acontecer a seguir !?


Neste post vou descrever brevemente um dos métodos mais populares de previsão de volatilidade futura em séries financeiras usando um modelo GARCH. Em seguida, usarei dados de estoque intraday de 5 min de preços próximos para mostrar como inferir valor de estoque possível nos próximos 5 minutos usando os níveis atuais de volatilidade na negociação intraday. Em última análise, vou discutir uma estratégia de saída de um comércio baseado no pior cenário previsto (previsão de preço das ações para exceder o nível de stop-loss assumido). Mas primeiro, vamos esquentar com algumas equações bonitas que não podemos viver sem.


Inferindo Volatilidade


Capturar e digerir a volatilidade é de alguma forma como uma arte que não tenta representar a realidade externa, reconhecível, mas busca alcançar seu efeito usando formas, formas, cores e texturas. A idéia básica que queremos descrever aqui é uma volatilidade $ \ sigma_t $ de uma variável aleatória (rv) de, p. Um preço do ativo, no dia $ t $ como estimado no final do dia anterior $ t-1 $. Como fazê-lo da maneira mais fácil? É simples. Primeiro vamos supor que uma taxa logarítmica de mudança do preço do ativo entre dois passos de tempo é:


$$ o que corresponde ao retorno expresso em porcentagens como $ R_ = 100 [\ exp (r_) -1] $ e vamos usar essa transformação no restante do texto. Essa notação nos deixa com uma janela de oportunidade para denotar $ r_t $ como uma inovação à taxa de retorno sob a condição de que possamos, de alguma forma, deduzir, inferir e prever um preço de ativo futuro de $ P_t $.


Usando a definição clássica de uma variância de amostra, podemos escrever como:


\ Sigma_t ^ 2 = \ frac \ sum_ ^ (r_ - \ langle r \ rangle) ^ 2


$$ qual é a nossa previsão da taxa de variância na próxima etapa de tempo $ t $ com base em pontos de dados $ m $ anteriores e $ \ langle r \ rangle = m ^ \ sum_ ^ r_ $ é uma média de amostra. Agora, se examinarmos as séries de retorno que são amostradas todos os dias, ou uma hora, ou um minuto, vale a pena notar que $ \ langle r \ rangle $ é muito pequena em comparação com o desvio padrão das mudanças. Esta observação nos empurra um pouco mais para reescrever a estimativa de $ \ sigma_t $ como:


\ Sigma_t ^ 2 = \ frac \ sum_ ^ r_ ^ 2


$$ onde $ m-1 $ foi substituído por $ m $ adicionando um grau extra de liberdade (equivalente a uma estimativa de máxima verossimilhança). O que é extraordinariamente importante sobre esta fórmula é o fato de que ela dá uma igual ponderação de unidade para cada valor de $ r_ $ como sempre podemos imaginar que a quantidade multiplicada por um. Mas, na prática, podemos ter um pequeno desejo de associar alguns pesos $ \ alpha_i $ como segue:


\ Sigma_t ^ 2 = \ sum_ ^ \ alpha_i r_ ^ 2


$$ onde $ \ sum_ ^ \ alpha_i = 1 $ o que substitui um fator de $ m ^ $ na fórmula anterior. Se você pensa por um segundo sobre a idéia de $ \ alpha $ s, é bastante simples entender que toda observação de $ r_ $ tem alguma contribuição significativa para o valor total de $ \ sigma_t ^ 2 $. Em particular, se selecionarmos $ \ alpha_i j $, cada observação passada do tempo mais atual de $ t-1 $ contribuirá cada vez menos.


Em 1982, R. Engle propôs uma minúscula extensão da fórmula discutida, finalizada na forma de AutoRegressive Condicional Heteroscedasticity ARCH ($ m $) modelo:


\ Sigma_t ^ 2 = \ omega + \ sum_ ^ \ alpha_i r_ ^ 2


$$ onde $ \ omega $ é a variância ponderada de longo prazo tomando sua posição com um peso de $ \ gamma $, tal $ \ omega = \ gamma V $ e agora $ \ gamma + \ sum_ ^ \ alpha_i = 1 $. O que o modelo ARCH permite é a estimativa da volatilidade futura, $ \ sigma_t $, levando em conta apenas as taxas de retorno ponderadas de $ m $ e o parâmetro adicional de $ \ omega $. Na prática, nosso objetivo é encontrar pesos de $ \ alpha_i $ e $ \ gamma $ usando o método de máxima verossimilhança para séries de retorno de $ \ $. Esta abordagem, em geral, requer aproximadamente $ m> 3 $ para descrever $ \ sigma_t ^ 2 $ eficientemente. Então, a questão surge: podemos fazer muito melhor? E a resposta é: claro.


Quatro anos mais tarde, em 1986, um novo jogador entrou no ringue. Seu nome era Mr T (Bollerslev) e literalmente esmagou Engle na segunda rodada com uma inovação do modelo GARCH ($ p, q $) Generalized AutoRegressive Condicional Heteroscedasticity:


\ Sigma_t ^ 2 = \ omega + \ sum_ ^ \ alpha_i r_ ^ 2 + \ sum_ ^ \ beta_j \ sigma_ ^ 2


$$ que deriva seu $ \ sigma_t ^ 2 $ com base em $ p $ passado observações de $ r ^ 2 $ e $ q $ estimativas mais recentes da taxa de variância. O retorno inferido é então $ r_t = \ sigma_t \ epsilon_t $ onde $ \ epsilon_t \ sim N (0,1) $ o que nos deixa com um rosto pálido e irado como sabemos o que na prática significa verdadeiramente! Uma espécie de simplificação que atende a um amplo aplauso em problemas financeiros oferece a solução do modelo GARCH (1,1):


\ Sigma_t ^ 2 = \ omega + \ alpha r_ ^ 2 + \ beta \ sigma_ ^ 2


$$ que deriva seu valor com base apenas na atualização mais recente de $ r $ e $ \ sigma $. Se pensarmos por um tempo mais curto, GARCH (1,1) deve nos fornecer um bom gosto de volatilidade prevista quando a série de dois últimos retornos foram semelhantes, no entanto sua fraqueza surge nos momentos de saltos repentinos (choques) no preço Muda o que causa previsões de volatilidade superestimadas. Bem, nenhum modelo é perfeito.


Da mesma forma como no caso do modelo ARCH, para GARCH (1,1) podemos usar o método de máxima verossimilhança para encontrar as melhores estimativas de parâmetros $ \ alpha $ e $ \ beta $ levando-nos a uma volatilidade de longo prazo de $ [\ Ômega / (1- \ alfa - beta)] ^ $. Geralmente é alcançado no processo iterativo procurando o valor máximo da soma entre todas as somas calculadas da seguinte forma:


\ Sum_ ^ \ left [- \ ln (\ sigma_i) \ frac \ right]


$$ onde $ N $ indica o comprimento da série de retorno $ \ $ ($ j = 2,8230 ;, N $) disponível para nós. Existem algoritmos dedicados especiais para fazer isso e, como veremos mais adiante, usaremos um deles no Matlab.


Para a discussão restante sobre o procedimento de verificação do modelo GARCH como uma ferramenta para explicar a volatilidade nas séries temporais de retorno, prós e contras e outras comparações de GARCH com outros derivados de ARCH Eu o remetijo à bíblia quants imortal e infame de John Hull E um livro de texto mais aprofundado por um modelo financeiro de séries temporais, Ruey Tsay.


Previsão do imprevisível


O conceito de prever o próximo movimento no preço dos ativos com base no modelo GARCH parece ser emocionante e excitante. A única preocupação que podemos ter, e como já foi reconhecido por nós, é o fato de que o valor de retorno previsto é $ r_t = \ sigma_t \ epsilon_t $ com $ \ epsilon_t $ para ser um rv retirado de uma distribuição normal de $ N (0,1) $. Isso implica que $ r_t $ seja um rv tal $ r_t \ sim N (0, \ sigma_t) $. Este modelo permite-nos estender ainda mais para uma forma atraente de:


R_t = \ mu + \ sigma_t \ epsilon_t \ \ \ \ sim N (\ mu, \ sigma_t)


$$ onde por $ \ mu $ entenderemos uma média simples sobre pontos de dados $ k $ anteriores:


\ Mu = k ^ \ sum_ ^ r_ \.


Gap-on-Open estratégia de negociação rentável


Depois de mais tempo, o QuantAtRisk está de volta aos negócios. Como um comerciante do algo eu fui tentado sempre para testar uma estratégia de troca do espaço-em-aberto. Havia várias razões por trás dele, mas o mais popular sempre foi omni-discutido: boas / más notícias sobre o estoque. E o que? O preço das ações disparou / caiu nos dias seguintes. Quando nos aproximamos desses padrões de preços, falamos de gatilhos ou eventos desencadeados. O núcleo da atividade dos algoritmos é a identificação do gatilho e tomar as ações apropriadas: ir longo ou curto. É isso aí. Em ambos os casos, queremos ganhar dinheiro.


Neste post vamos projetar as condições iniciais para a nossa estratégia de negociação gap-on-open agindo como os gatilhos e vamos backtest um cenário realista de apostas nosso dinheiro em ações que abriu mais alto no próximo dia de negociação. Nosso objetivo é encontrar o período de retenção mais otimizado para esses negócios fechados com um lucro.


Nossa estratégia pode ser backtested usando qualquer carteira de $ N $ - asset. Aqui, por simplicidade, vamos usar um subconjunto aleatório de 10 ações (portfolio. lst) sendo parte de um Índice Dow Jones atual:


Otimização de portfólio aplicada com gerenciamento de riscos usando Matlab


O eBook apresenta os prós e contras do problema de otimização de portfólio na prática. Ele descreve em detalhes o fundo teórico essencial atrás de olhar para uma solução ideal para qualquer carteira de ativos. Inclui extensos códigos MATLAB prontos para serem novamente executados e aplicados como parte de sua estratégia de alocação de ativos. O ebook discute as armadilhas e comumente subestimado conceitos de risco no processo de investimento. Escrito de forma extremamente compacta mas soberbamente eficiente. Concebido como um guia prático pronto para uso para analistas quantitativos, investidores financeiros e comerciantes algorítmicos.


1ª edição. QuantAtRisk assinatura de qualidade.


350 + linhas de código MATLAB incluído.


O que você vai encontrar dentro do eBook.


Simplicidade de Complexidade, Matlab Essencial, Aproximação ao Alvo


Carteira em Construção


Hong Kong 6.32am (uma introdução ao conceito de negociação de ativos), Financial Time-Series (definições, web-acesso, download, pré-processamento), Análise de Retorno Série (processamento de dados essenciais), 2-Asset Portfolios , Medidas relacionadas com a carteira), Efficient Frontier para a Carteira de 2 Ativos (teoria e impacto da correlação entre ativos), Estimativa da Fronteira Eficiente para a Carteira de N-Ativos (implementação, construção de objeto de carteira)


Otimização em risco


New York City 9.06pm (portfólio de 30 ativos na prática, risco e retorno, impacto histórico de dados de entrada, aspectos de seleção de carteira), Risco e Retorno para Carteira N-Ativo (álgebra, códigos MATLAB em ação), Formulação de Problemas de Otimização, Problema de otimização padrão, problema de alocação de portfólio no trabalho (escolha do alvo, processo de otimização, risco ou retorno?), Otimização de carteira com risco sob controle (compreensão do gerenciamento de risco em aplicativos ao vivo)


Primeiros Depoimentos


Como de costume Pawel excede as expectativas com a forma eo conteúdo. Eu encontrei este ebook muito útil e código Matlab é muito bem escrito.


Jim Reynolds, NYC


Fiquei surpreso com um baixo número de páginas, mas muito recompensado pelo conteúdo! Código MATLAB é simplesmente ótimo!


O grande fã de Im do Web site de Pawel e seu primeiro ebook estende sua credibilidade como um quant com compreensão profunda de problemas financeiros.


Ricardo de Ferri, Rio de Janeiro


Estou atualmente estudando para o meu nível CFA 2, em que a maioria dos conceitos são cobertos em seu livro também e, portanto, é fácil se relacionar com eles.


Rebinning Tick-Data para FX Algo Traders


Se você trabalha ou pretende trabalhar com dados de FX para construir e testar seus próprios modelos de FX, o histórico Tick-Data de Pepperstone é provavelmente o melhor lugar para iniciar sua experiência algorítmica. Como por agora, eles oferecem conjuntos de carrapatos de 15 pares de moedas mais freqüentemente negociados desde maio de 2009. Alguns dos arquivos unziped (dados de um mês) atingem mais de 400 MB de tamanho, ou seja, armazenando 8.5 + milhões de linhas com uma resolução de marca para Tanto oferta e pedir 8220; prices8221 ;. Uma coisa boa é que você pode baixá-los todos gratuitamente e sua qualidade é considerada muito alta. Uma coisa ruim é que há 3 meses de atraso na acessibilidade dos dados.


Lidar com um processo de rebinning de tick-data up, thats uma história diferente eo assunto deste post. Veremos quão eficientemente você pode transformar Pepperstones Tick-Data conjunto (s) em 5-min tempo-série como um exemplo. Faremos uso de scripts em bash (Linux / OS X) complementados com processamento de dados em Python.


Você pode fazer o download do histórico de dados do Pepperstones aqui. Mês a mês, par por par. Sua estrutura interna segue o mesmo padrão, a saber:


As colunas, da esquerda para a direita, representam, respectivamente: um nome de par, a data e hora de início, o preço de oferta e o preço de venda.


Vamos jogar com o arquivo de dados AUDUSD-2017-09.csv. Trabalhando no mesmo diretório onde o arquivo está localizado, começamos com a escrita de um script bash (pp. scr) que contém:

No comments:

Post a Comment