Tuesday 7 November 2017

Sonda de portfólio


Uma introdução prática à modelagem de garch


Analisamos o agrupamento da volatilidade e alguns aspectos da sua modelagem com um modelo GARCH univariável (1,1).


agrupamento de volatilidade


Volatilidade agrupando o fenômeno de haver períodos de relativa calma e períodos de alta volatilidade é um atributo aparentemente universal de dados de mercado. Não existe uma explicação universalmente aceita. GARCH (Generalized AutoRegressive Condicional Heteroskedasticity) modelos de volatilidade clustering. Não explica. A Figura 1 é um exemplo de um modelo de garch de volatilidade.


Figura 1: Volatilidade do SP 500 até o final de 2017, conforme estimado por um modelo de garch (1,1). É claro que a volatilidade se move ao longo do tempo. A Figura 1 é um modelo de volatilidade, não a verdadeira volatilidade. Mas se tivéssemos uma imagem da verdadeira volatilidade, ficaria muito parecido com a Figura 1.


Demandas de dados


A freqüência natural de dados para alimentar um estimador de garch é dados diários. Você pode usar dados semanais ou mensais, mas isso alisa alguns dos garch-iness fora dos dados.


Você pode usar garch com dados intraday, mas isso fica complicado. Há sazonalidade de volatilidade ao longo do dia. A sazonalidade depende altamente do mercado particular onde o comércio acontece, e possivelmente sobre o ativo específico. Um exemplo particular de tal desordem analisa o Valor intrínseco em Risco.


Quanto dados diários você deve dar ao garch? Em alguns aspectos a resposta é: 8220, mais do que você tem 8221 ;. Há uma razão para isso.


A Figura 1 não mostra volatilidade verdadeira porque nunca observamos volatilidade. A volatilidade sempre se revela indiretamente a nós mesmos. Então, estamos tentando estimar algo que nunca vemos.


A Figura 2 é um esboço de um protótipo do modelo garch.


A visão de garch é que a volatilidade picos para cima e depois decair longe até que haja outro pico. É difícil ver esse comportamento na Figura 1, porque o tempo é tão comprimido, é mais visível na Figura 3.


É claro que nos dados reais existem choques de todos os tamanhos, não apenas grandes choques.


Note-se que a volatilidade dos anúncios (ao contrário dos choques) vai ao contrário, a volatilidade aumenta à medida que o tempo do anúncio se aproxima e depois desaparece quando os resultados do anúncio são conhecidos.


A estimativa de um modelo de garch é principalmente sobre estimar quão rápido o decaimento é. O decaimento que ele vê é muito barulhento, então ele quer ver um monte de dados. Lotes de dados como no que gostaria de dezenas de milhares de observações diárias.


Há duas razões para não lhe dar dezenas de milhares de observações:


Você não tem dezenas de milhares de observações


Os mercados mudam com o tempo


Então há um ato de equilíbrio. 2000 observações diárias tendem a ser não razoável.


Se você tiver menos de cerca de 1000 observações diárias, então a estimativa é improvável que lhe dê muita informação real sobre os parâmetros. É provavelmente melhor apenas escolher um 8220; reasonable8221; modelo. Isso vai ser um com sobre a persistência direita (veja abaixo), com o parâmetro alfa1 entre 0 e 0,1 eo parâmetro beta1 entre 0,9 e 1.


Estimativa


Estamos hospedados com um modelo GARCH (1,1); Não porque é o melhor que certamente não é. Nós estamos ficando com ele porque é o mais comumente disponível, o mais comumente usado, e às vezes é bom o suficiente.


Os modelos de Garch são quase sempre estimados através da máxima verossimilhança. Isso acaba por ser um problema de otimização muito difícil. Essa maldade é apenas outro aspecto de nós tentando perguntar um monte de dados. Assumindo que você tem dados suficientes que importa, até mesmo as melhores implementações de garch urso observando em termos de otimização da probabilidade.


Sabemos que os retornos não têm uma distribuição normal. Que eles têm caudas longas. É perfeitamente razoável supor que as caudas longas são devidas inteiramente aos efeitos do garch, caso em que usar uma distribuição normal no modelo do garch seria a coisa direita a fazer. No entanto, usando a probabilidade de uma distribuição de cauda mais longa acaba por dar um ajuste melhor (quase sempre). A distribuição t parece fazer muito bem.


Autocorrelação


Se o agrupamento de volatilidade for devidamente explicado pelo modelo, então não haverá autocorrelação nos resíduos padronizados quadrados. É comum fazer um teste de Ljung-Box para testar essa autocorrelação.


Abaixo está a saída para tais testes (na verdade Box-Pierce, neste caso) em um ajuste assumindo uma distribuição normal em retornos para MMM:


Se você está acostumado a olhar p-valores de bondade de fit testes, você pode notar algo estranho. Os valores de p são suspeitamente próximos de 1. Os testes estão dizendo que temos overfit 1547 observações com 4 parâmetros. Isso é 1547 observações realmente ruidosas. Eu não penso assim.


Uma explicação melhor é que o teste não é robusto para esses dados extremos, mesmo que o teste seja muito robusto. É provavelmente contraproducente testar os resíduos quadrados desta maneira. Um teste informativo está nas fileiras dos resíduos padronizados quadrados.


Persistência


A persistência de um modelo de garch tem a ver com a rapidez com que grandes volatilidades se deterioram após um choque. Para o modelo garch (1,1) a estatística-chave é a soma dos dois parâmetros principais (alfa1 e beta1, na notação que estamos usando aqui).


A soma de alfa1 e beta1 deve ser menor que 1. Se a soma é maior do que 1, então as previsões de volatilidade são explosivos eram improváveis ​​de acreditar que. Se a soma for igual a 1, então temos um modelo de decaimento exponencial.


É possível expressar a persistência como meia-vida. A meia-vida é log (0,5) / log (alfa1 + beta1), onde as unidades serão a freqüência dos retornos. Quando alpha1 + beta1 atinge 1, a meia-vida torna-se infinita.


Por que obteríamos estimativas com persistência infinita? A persistência é estimada por ver o quão rápido a decaimento parece durante o período de amostragem. Se houver uma tendência na volatilidade durante o período da amostra, então o estimador 8220; Que nunca vê uma decadência total. Quanto mais curto o período de amostragem, mais provável há uma tendência que irá enganar a estimativa.


As estimativas da volatilidade na amostra serão bastante semelhantes, independentemente das estimativas dos parâmetros. As figuras 1 e 3 não mudariam muito se mudássemos as estimativas dos parâmetros para os respectivos modelos. Mas os parâmetros importam muito quando estamos prevendo a amostra.


Utilidade


Modelos de Garch são úteis por causa de duas coisas:


Você pode prever com modelos de garch


Você pode simular com modelos de garch


Predição


Quanto mais à frente você prevê, mais perto de aperfeiçoar seu modelo tem que ser. Modelos Garch não são especialmente perto de perfeito. Se você está prevendo com um horizonte de tempo de um mês ou mais, então eu ficaria chocado se você tivesse muito valor de um modelo de garch versus um modelo mais mundano. Se você está prevendo alguns dias à frente, então garch deve ser bastante útil.


A persistência do modelo é um fator chave das previsões que determina quão rápido as previsões vão para a volatilidade incondicional. Se realmente houver muita persistência na volatilidade e seu modelo capturar com precisão a persistência, então você terá boas previsões muito à frente.


Há duas coisas diferentes que podem ser previstas:


A volatilidade em cada ponto temporal do período de previsão


A volatilidade média desde o início do período até cada ponto temporal do período (frequentemente denominado estrutura de prazo)


Por exemplo, a volatilidade que entra no preço de uma opção é a volatilidade média até o vencimento, e não a volatilidade na data de vencimento.


Portanto, há duas coisas que você precisa saber ao prever:


Qual previsão você quer


Qual a previsão que você está recebendo


Simulação


Uma simulação garch precisa:


Um modelo de garch (incluindo os valores dos parâmetros)


Um estado de volatilidade para o modelo


Uma distribuição dos valores de inovação padronizados (variância 1)


Quase sempre o estado de volatilidade que queremos é o estado no final dos dados. Isto é, agora. Queremos usar o estado atual de volatilidade e olhar para o futuro.


Usando a distribuição empírica, os resíduos padronizados do modelo ajustado são muitas vezes a melhor escolha para as inovações. A suposição da distribuição quando se encaixa o modelo tem uma influência mesmo quando se utiliza a distribuição empírica.


O procedimento de estimativa 8220; tries8221; Para tornar os resíduos conformes com a distribuição hipotética. Os resíduos padronizados de um modelo assumindo uma distribuição normal estarão mais próximos da distribuição normal do que os resíduos de um modelo nos mesmos dados assumindo uma distribuição t.


A simulação é dependente dos parâmetros estimados, mas não tão seriamente quanto com a predição. Erros de modelo compostos como nós simulamos mais longe no futuro, mas eles compostos com uma vingança quando nós prever longe no futuro.


R pacotes


Existem várias opções para garch modelagem em R. Nenhum é perfeito e que a utilização provavelmente depende do que você deseja alcançar. No entanto, rugarch é provavelmente a melhor escolha para muitos.


Eu havent amplamente utilizado qualquer um dos pacotes considerar as observações aqui como primeiras impressões.


Isso tem a idéia de uma especificação para um modelo que é um objeto separado. Depois, existem funções de ajuste (isto é, estimativa de parâmetros), previsão e simulação.


Aqui está um exemplo de montagem com uma distribuição Student t:


A otimização neste pacote é talvez a mais sofisticada e confiável entre os pacotes que eu discuto.


FGarch é uma parte da suite Rmetrics.


Ajustar bem o mesmo modelo de Student t como acima:


Eu acredito que este pacote foi o primeiro a incluir uma função de garch publicamente disponível em R. É restrito à distribuição normal.


bayesGARCH


Eu acho que a estimativa de Bayes de modelos de garch é uma coisa muito natural a fazer. Temos um conhecimento bastante específico sobre o que os valores dos parâmetros devem ser.


O único modelo que este pacote faz é o garch (1,1) com t erros distribuídos. Portanto, estamos felizes nesse sentido.


No entanto, este comando falha com um erro. O comando funciona se darmos os retornos em percentagem:


Isso pode ser um problema com estimação de máxima verossimilhança também. Há pelo menos uma implementação do garch que é muito melhor em otimizar com retornos percentuais em vez de retornos em sua escala natural. Um teste que você pode fazer na otimização é estimar o modelo nos retornos em ambas as escalas e comparar os resultados.


A função bayesGARCH, no entanto, não nos dá uma estimativa. Dá-nos uma matriz com colunas correspondentes aos parâmetros e linhas correspondentes às visitas de uma Cadeia de Markov Monte Carlo. Esta é, de certa forma, uma amostra da distribuição (posterior) dos parâmetros.


Podemos obter uma análise mais útil se impusermos uma restrição à persistência. Fazemos isso criando uma função para a restrição:


Isto é dizer que uma meia-vida de mais de dois anos não é plausível. Em seguida, usamos essa restrição:


Agora, fazemos uma seleção a partir dos resultados (que podem ou não ser razoáveis) e calculamos os meios-lifes em nossa distribuição:


O resultado é então plotado.


betategarch


Este pacote se encaixa um modelo EGARCH com t erros distribuídos. EGARCH é um modelo inteligente que torna algumas coisas mais fáceis e outras coisas mais difíceis.


Que a função de plotagem é pp. timeplot é uma indicação de que os nomes dos retornos de entrada estão disponíveis na saída ao contrário da saída nos outros pacotes até aqui. A Figura 4 compara essa estimativa com uma estimativa de garch (1,1) (de rugarch, mas todas parecem muito semelhantes).


Eu acho que a maneira de estimar um modelo de garch neste pacote é:


Mas quando eu tentei este comando, ele criou um erro de tempo de execução que idealmente teria encerrado R. Em vez R pendurado em torno de fazer o que quer que zumbis morto e não querendo ir embora. Talvez seja a maneira de fazê-lo, mas eu não plano em tentar novamente por um tempo.


Teste uma Estratégia de Negociação


Aumentar um backtest avaliando sua variabilidade.


Descrição


Testar estratégias de negociação quantitativa é necessário, mas difícil. Há o perigo de snooping de dados que é, pensando que o melhor de um grande número de estratégias testadas é melhor do que realmente é. Outro perigo é encontrar a mesma coisa que muitos outros encontraram. Agosto de 2007 mostrou como perigoso que pode ser.


Os portfólios aleatórios podem ajudar a aliviar ambos os problemas. Dão-lhe critérios mais estritos com que para aceitar uma estratégia. Eles também permitem que você veja mais sinais efêmeros e, portanto, ajudá-lo a evitar fazer o que todo mundo está fazendo.


Um backtest começa com alguma carteira inicial no início do período de tempo. Os comércios usam o sinal reputado de batida de mercado enquanto obedecem a um conjunto de restrições. O resultado é um retorno ao longo do período. Podemos aprender o significado desse retorno imitando o backtest mas deixando o sinal para fora. Começamos com a mesma carteira inicial, e fazemos negociações aleatórias ao longo do período que obedecem às restrições, mas não prestamos atenção ao sinal.


Figura 1: QQplot de percentis de desempenho


Não é uma boa prática usar apenas uma carteira inicial que você poderia ser a vítima de sorte boa ou ruim. A Figura 1 mostra um desempenho de estratégia em relação a caminhos aleatórios para vinte carteiras iniciais diferentes. Um percentil de desempenho de 0 significa que nenhum caminho randômico foi melhor que o backtest, 100 significa que todos os caminhos aleatórios foram melhores.


Se a estratégia não estava fazendo nada, wed esperar os pontos a ser mais ou menos ao longo da linha diagonal. Neste caso há uma indicação ligeira que a estratégia está fazendo algo positivo. Que há um monte de pontos nos extremos indica o forte poder do método.


Figura 2: Desempenho médio da estratégia


Uma vez que você tem um senso de que a estratégia realmente supera, você quer saber por quanto é trivialmente outperforming ou seriamente outperforming? Um gráfico como o da Figura 2 pode ajudá-lo com isso. Isso analisa o retorno da estratégia menos a média dos retornos dos caminhos aleatórios. A Figura 2 está traçando a média daquela entre as vinte corridas. A Figura 1 é para o primeiro trimestre de 2008, portanto, no dia 61.

No comments:

Post a Comment