Monday, 23 April 2018

Previsão de séries temporais forex


Previsão da Série de Tempo (TSF)


O TSF, o indicador de Previsão de séries temporais, consiste em medidas de regressão linear usando o método Least Squares. A regressão linear é uma ferramenta estatística para prever futuros valores de mercado Forex em comparação com os valores passados. TSF tenta prever o seguinte valor de mercado Forex. Para o efeito, define a declividade ascendente ou descendente da tendência e alonga esses resultados no futuro. Por exemplo, quando os preços estão se movendo para cima, a TSF tenta definir a declividade ascendente do preço comparado ao preço em curso e esticar esse cálculo.


A tendência é considerada baixa quando o preço do mercado Forex cai abaixo do indicador, a tendência é considerada quando o preço do mercado Forex sobe ao longo do indicador. Além disso, muitos analistas pensam que, uma vez que os preços mudam acima ou caem abaixo da linha indicadora; Os preços provavelmente irão voltar para a linha. O indicador TSF também define se uma mudança de direção aconteceu monitorando a tendência em curso.


O indicador de Previsão da Série de Tempo se assemelha ao indicador de Regressão Linear com a exceção de duas distinções importantes. Uma distinção é o valor de entrada de comprimento padrão usado para o TSF é muito menor porque a linha do gráfico está esticada para a frente. Outra distinção é que a TSF traça sua linha para a frente, à direita do gráfico, pelo número de barras especificadas pela entrada Bars Plus. Uma entrada de comprimento maior não seria tão confiável como um comprimento de prazo mais curto ao analisar a atividade e tendências de preços e formaria um enredo consideravelmente exagerado.


TSF - Previsão da Série de Tempo.


A função Previsão da Série do Tempo exibe a tendência estatística do preço de uma segurança ao longo de um período de tempo especificado com base na análise de regressão linear. Em vez de uma linha de tendência de regressão linear linear, a Previsão da Série de Tempo representa o último ponto de tendências de tendência de regressão múltipla. É por isso que este indicador às vezes pode ser referido como a "regressão linear móvel" indicador ou "oscilador de regressão". & quot;


Uma vez que uma linha de regressão linear é uma linha reta o mais próxima possível de todos os valores dados, uma Previsão da Série de Tempo não apresenta tanto atraso como uma Média de Movimento quando se ajusta às mudanças de preços. Isso ocorre porque o indicador está continuamente "encaixando" ele próprio para os dados, em vez de apenas em média. Observe que esse tipo de previsão é puramente matemático, pois é, em última instância, o equivalente a traçar uma linha através dos pontos recentes e projetar essa linha para a frente.


A Previsão da Série de Tempo no início de uma série de dados não será definida até que haja valores suficientes para preencher o período especificado.


a = (Sig (y) - b (Sig) x) / n.


Não tenho certeza se isso é o que você quer dizer. Esta EA calcula a inclinação e a constante (seu b e a) de uma série de tempos contra outra através de regressão linear. Eu uso isso para olhar em GOLD = c1 + c2 * EURUSD. Você deve dar o varianble independente (EURUSD no meu exemplo) e o número de períodos.


Obrigado por este código, mas acho que não é útil neste caso. Você pode usar cointegração e / ou corelação juntos ... primeiro você deve encontrar uma corelação entre dois pares, depois que você deve encontrar qual independente eu quis dizer Análise Causalidade.


Previsão da série de tempo.


Time Series Forecast (TSF) é o instrumento de análise técnica, incluindo a medida linear de regressão calculada de acordo com o método de mínimos quadrados. A Previsão da Série de Tempo é semelhante à regressão linear na parte da determinação da presença / ausência de tendência em um cronograma considerado. No gráfico, TSF é desenhado como a curva que consiste nos últimos pontos de várias linhas de tendência de regressão linear.


Além disso, a Previsão da Série de Tempo define o ângulo de inclinação para a tendência de Forex (ascendente ou descendente) e é capaz de prever mais movimento de preço no mercado. Ou seja, sob tendência ascendente, a Previsão da série Ti define seu ângulo de inclinação e, ao combiná-lo com o preço real, calcula seu valor no próximo período de tempo. Se a tendência de movimento de preços permanecer, o indicador é capaz de definir o curso de seu movimento com uma precisão bastante alta.


Ainda não é um cliente?


DEMO ACABA TORNE-SE.


A reprodução dos conteúdos só é permitida com hiperlink ativo para a origem original.


Os serviços financeiros são prestados pela Riston Capital LTD. Os serviços descritos em nosso site não estão disponíveis no Iraque, Japão, Coréia do Norte, União Européia, Reino Unido e EUA.


Previsão da série de tempo.


A Previsão da Série de Tempo usa Regressão Linear para calcular uma linha de melhor ajuste ao longo de um período de tempo designado; Esta linha é então planejada para a frente um período de tempo definido pelo usuário.


O gráfico abaixo do contrato Mini-Dow Futures mostra o indicador de Previsão da Série de Tempo:


O gráfico acima ilustra como a linha de Previsão da Série de Tempo foi planejada para frente (no exemplo acima, 7 dias).


Geralmente, os comerciantes podem esperar que o preço volte para a linha Time Series Forecast quando os preços se desviaram. Portanto, um vago sinal de compra potencial pode ocorrer quando o preço está abaixo da linha e um potencial sinal de venda pode ocorrer quando o preço está muito acima da linha. No entanto, o quão longe o preço precisa variar da linha é muito subjetivo.


Um indicador técnico similar e indiscutivelmente superior é a Curva de Regressão Linear (ver: Curva de Regressão Linear).


Previsão de séries temporárias financeiras - Parte I.


Previsão de séries temporárias financeiras - Parte I.


Nesta série de artigos, vamos criar um processo estatisticamente robusto para a previsão de séries temporais financeiras. Essas previsões constituirão a base de um grupo de estratégias de negociação automatizadas. O primeiro artigo da série discutirá a abordagem de modelagem e um grupo de algoritmos de classificação que nos permitirão prever a direção do mercado.


Dentro desses artigos, estaremos fazendo uso do scikit-learn, uma biblioteca de aprendizagem de máquinas para Python. Scikit-learn contém implementações de muitas técnicas de aprendizagem de máquinas. Não só isso nos poupa muito tempo na implementação do nosso próprio, mas minimiza o risco de erros introduzidos pelo nosso próprio código e permite uma verificação adicional em relação a bibliotecas escritas em outros pacotes, como R. Isso nos dá uma grande quantidade de confiança se precisarmos criar nossa própria implementação personalizada (por razões de velocidade de execução, digamos).


Processo para Previsão.


Uma explicação detalhada do campo da aprendizagem de máquinas estatísticas está além deste artigo. Para utilizar técnicas como Regressão Logística, Análise Discriminante Linear e Análise Discriminante Quadratic, precisamos descrever alguns conceitos básicos.


Técnicas de aprendizagem supervisionadas.


As técnicas de aprendizagem supervisionadas envolvem um conjunto de tuplas conhecidas $ (x_i, y_i) $, $ i \ in \ $, com $ x_i $ representando as variáveis ​​predictoras (como retornos do mercado de ações remanescentes ou volume negociado) e $ y_i $ representando o associado variáveis ​​de resposta / observação (como o retorno do mercado de ações hoje). Nessa situação, estamos interessados ​​em prever. Dadas as futuras variáveis ​​preditoras, desejamos estimar as respostas desses preditores. Isso é contrário à inferência em que estamos mais interessados ​​na relação entre as variáveis.


Todos os algoritmos que utilizamos neste artigo, juntamente com muitos outros que empregaremos no futuro, são do domínio de aprendizagem supervisionado.


Medindo Precisão de Previsão.


A classe particular de métodos que nos interessa envolve a classificação binária. Ou seja, tentaremos alocar a porcentagem de retorno para um determinado dia em dois baldes: "Up" ou "Down". Num previsão de produção, estaríamos muito preocupados com a magnitude dessa previsão e com os desvios da predição a partir do valor real.


Nesses casos, podemos usar o erro de Mean-Squared, Mean Absolute Deviation e Root-Mean-Squared Error para fornecer uma estimativa de precisão de previsão. A literatura fornece muitos outros exemplos de medidas de precisão de previsão.


Neste caso, só nos preocuparemos com a taxa de sucesso, que é simplesmente a porcentagem de vezes que o provisorista alcançou uma previsão precisa (ou seja, quando o dia acabou e vice-versa). Em exemplos posteriores, usaremos uma matriz de confusão para determinar o desempenho de previsão em uma classe por classe. Além disso, calcularemos os valores acima mencionados e os incorporaremos ao nosso processo de pesquisa comercial.


Fatores de previsão.


Uma metodologia de previsão é tão boa quanto os fatores escolhidos como preditores. Há um número impressionante de fatores potenciais a serem escolhidos quando prevêem o retorno do índice de mercado de ações. Neste artigo, vamos restringir os fatores aos atrasos de tempo dos retornos percentuais atuais. Isso não é porque eles são os melhores preditores, em vez disso é porque é direto demonstrar o processo de previsão em um conjunto de dados facilmente obtido.


A escolha do fator de previsão é extremamente importante, se não o componente mais importante, do pré-programador. Mesmo técnicas simples de aprendizagem de máquina produzirão bons resultados em fatores bem escolhidos. Note que o inverso não é frequentemente o caso. "Lançar um algoritmo em um problema" geralmente levará à má precisão de previsão.


Para este provisorista especificamente, escolhi o primeiro e o segundo tempo de atraso da porcentagem de retorno como preditores para a direção atual do mercado de ações. Esta é uma escolha relativamente arbitrária e há muitos marcos para modificação, por exemplo, adicionando atrasos adicionais ou o volume de ações negociadas. Em geral, é melhor ter menos preditores em um modelo, embora existam testes estatísticos disponíveis que possam demonstrar a capacidade preditiva de cada fator.


Previsão de S & amp; P500 com Regressão Logística, LDA e QDA.


O S & P500 é um índice ponderado das 500 maiores empresas de capital aberto (por capitalização de mercado) no mercado de ações dos EUA. Muitas vezes, é considerado um "benchmark" de ações. Existem muitos produtos derivados para permitir a especulação ou cobertura no índice. Em particular, o S & P500 E-Mini Index Futures Contract é um meio extremamente líquido de negociação do índice.


Nesta seção, vamos usar três classificadores para prever a direção do preço de fechamento no dia $ N $ com base somente na informação de preços conhecida no dia $ N-1 $. Um movimento direto direto significa que o preço de fechamento em $ N $ é maior do que o preço em $ N-1 $, enquanto que um movimento descendente implica um preço de fechamento em US $ N $ inferior a $ N-1 $.


Se pudermos determinar a direção do movimento de uma maneira que exceda significativamente uma taxa de sucesso de 50%, com baixo erro e boa significância estatística, estamos no caminho para formar uma estratégia básica de negociação sistemática com base em nossas previsões. Nesta fase, não estamos preocupados com os algoritmos de classificação de aprendizado de máquinas mais atualizados. Neste momento, estamos apenas a introduzir conceitos e, assim, começaremos a discussão sobre a previsão com alguns métodos elementares.


Regressão Logística.


A primeira técnica que consideramos é a regressão logística (LR). No nosso caso, vamos usar o LR para medir a relação entre uma variável dependente categórica binária ("Up" ou "Down") e múltiplas variáveis ​​contínuas independentes (a porcentagem remanescente retorna). O modelo fornece a probabilidade de que um dia particular (seguinte) seja categorizado como "Up" ou "Down". Nesta implementação, optamos por atribuir cada dia como "Up" se a probabilidade exceder 0,5. Poderíamos usar um limite diferente, mas, por simplicidade, escolhi 0,5.


LR usa a fórmula logística para modelar a probabilidade de obter um dia "Up" ($ Y = U $) com base nos fatores de atraso ($ L_1 $, $ L_2 $):


A função logística é usada porque fornece uma probabilidade entre $ [0,1] $ para todos os valores de $ L_1 $ e $ L_2 $, ao contrário da regressão linear onde as probabilidades negativas podem ser geradas na mesma configuração.


Para ajustar o modelo (ou seja, estimar os coeficientes $ \ beta_i $), o método de máxima verossimilhança é usado. Felizmente para nós, a implementação da montagem e previsão do modelo LR é tratada pela biblioteca scikit-learn.


Análise de Discriminação Linear.


A próxima técnica utilizada é Linear Discriminant Analysis (LDA). LDA difere de LR porque, em LR, nós modelamos $ P (Y = U | L_1, L_2) $ como uma distribuição condicional da resposta $ Y $ dado os preditores $ L_i $, usando uma função logística. Em LDA, a distribuição das variáveis ​​$ L_i $ é modelada separadamente, dado $ Y $ e $ P (Y = U | L_1, L_2) $ é obtido através do Teorema de Bayes.


Essencialmente, LDA resulta do pressuposto de que preditores são retirados de uma distribuição gaussiana multivariada. Após calcular as estimativas para os parâmetros dessa distribuição, os parâmetros podem ser inseridos no Teorema de Bayes para fazer previsões sobre a qual classe pertence uma observação.


A LDA assume que todas as classes compartilham a mesma matriz de covariância.


Não vou me aprofundar nas fórmulas para estimar a distribuição ou probabilidades posteriores que são necessárias para fazer previsões, uma vez mais scikit-learn lida com isso para nós.


Análise Quadratic Discriminant.


A Análise Quadraticamente Discriminante (QDA) está intimamente relacionada à LDA. A diferença significativa é que cada classe agora pode possuir sua própria matriz de covariância.


O QDA geralmente funciona melhor quando os limites de decisão não são lineares. A LDA geralmente funciona melhor quando há menos observações de treinamento (isto é, quando é necessário reduzir a variância). O QDA, por outro lado, funciona bem quando o conjunto de treinamento é grande (ou seja, a variação é menos preocupante). O uso de um ou outro, em última instância, se resume ao trade-off de tendência e desvio.


Tal como acontece com LR e LDA, scikit-learn cuida da implementação da QDA, então precisamos fornecer dados de treinamento / teste para estimação e previsão de parâmetros.


Implementação do Python.


Para a implementação desses previsão, usaremos NumPy, pandas e scikit-learn. Eu já escrevi um tutorial sobre como instalar essas bibliotecas. Comentei fortemente o próprio código, por isso deve ser fácil verificar o que está acontecendo.


O primeiro passo é importar os módulos e bibliotecas relevantes. Vamos importar os classificadores LogisticRegression, LDA e QDA para este provisorista:


Agora que as bibliotecas são importadas, precisamos criar um DataFrame de pandas que contenha os retornos percentuais atrasados ​​por um número anterior de dias (padrão para cinco). create_lagged_series terá um símbolo de estoque (conforme reconhecido pelo Yahoo Finance) e crie um DataFrame atrasado durante o período especificado:


A próxima função auxiliar é projetada para criar uma porcentagem hit_rate para cada modelo, eliminando o código duplicado. Baseia-se no fato de que os objetos Logression Regression, LDA e QDA têm os mesmos métodos (ajuste e previsão). A taxa de sucesso é exibida para o terminal:


Finalmente, nós a gravamos com uma função __main__. Neste caso, vamos tentar prever a direção do mercado de ações dos EUA em 2005, usando dados de retorno de 2001 a 2004:


A saída do código é a seguinte:


Pode-se ver que a Regressão Logística e o Analisador Discriminador Linear foram capazes de ganhar uma taxa de sucesso de 56%. No entanto, o Analisador Quadratic Discriminant foi capaz de melhorar em ambos para produzir uma taxa de sucesso de 60%. Para o período específico analisado, isso provavelmente deve-se ao fato de que existe alguma não-linearidade na relação entre os fatores retardados e a direção que não está bem capturada na análise linear.


Assim, há esperança de que possamos prever parcialmente o mercado de ações dos EUA. Existem algumas ressalvas para esta metodologia de previsão:


Não utilizamos nenhuma forma de validação cruzada para reduzir erros de montagem. Um pré-programador de produção exigiria que essa análise fosse considerada robusta. O pré-programador só foi treinado em dados entre 2001-2004 inclusive. Dados de mercado mais recentes podem ter uma precisão de predição substancialmente diferente. Na verdade, não tentamos trocar essa informação. Em particular, como é que vamos executar trades? Utilizaríamos o futuro e-mini dos EUA? Utilizaríamos as ordens do mercado aberto (MOO) ou do mercado no fechamento (MOC)? Também precisamos considerar os custos de transação.


Em artigos subsequentes, consideramos essas questões em maior profundidade.


Um aviso sobre a previsão aleatória.


Nesta seção, quero destacar o problema de significância estatística quando lida com meteorologistas. Além do previsão descrita acima, também gerei uma série de "previsão" baseada unicamente no sinal de sorteios aleatórios de uma distribuição normal normal. Note-se que, no mesmo período, produziu uma taxa de sucesso de previsão de 53,4% e, no entanto, o método usado para gerar a série é essencialmente não diferente de jogar uma moeda! Tenha isso em mente sempre que você realizar os procedimentos de previsão, pois muitas vezes pode levar a um desempenho comercial terrível se não for levado em consideração.


Nos artigos a seguir, consideraremos os classificadores de previsão não-lineares supervisionados mais avançados, como redes neurais artificiais (ANN) e máquinas vetoriais de suporte (SVM). Com um "estável" de técnicas de aprendizado de máquinas à nossa disposição, posteriormente poderemos usar métodos de conjunto para produzir uma precisão e robustez de previsão que, às vezes, podem exceder as de qualquer previsor individual.


A Quantcademy.


Junte-se ao portal de adesão da Quantcademy que atende à comunidade de comerciantes de varejo de varejo em rápido crescimento e saiba como aumentar a rentabilidade da sua estratégia.


Comércio Algoritmo bem sucedido.


Como encontrar novas ideias de estratégia de negociação e avaliá-las objetivamente para seu portfólio usando um mecanismo de backtesting personalizado em Python.


Negociação Algorítmica Avançada.


Como implementar estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquinas e estatísticas bayesianas com R e Python.


Riqueza do robô.


Postado em 4 de fevereiro de 2016 por Kris Longmore.


Recentemente, escrevi sobre modelos adequados de séries temporais de reversão média para dados financeiros e usando os modelos & # 8217; previsões como base de uma estratégia de negociação. Continuando a minha exploração da modelagem de séries temporais, decidi pesquisar a família autoregressiva e condicionalmente heterossedástica de modelos de séries temporais. Em particular, queria entender a média móvel integrada autogressiva (ARIMA) e os modelos de heterocedasticidade condicional autorregressiva generalizada (GARCH), uma vez que são freqüentemente referenciados na literatura de finanças quantitativas, e é sobre o tempo que eu aguento. O que se segue é um resumo do que aprendi sobre esses modelos, um procedimento geral de montagem e uma estratégia de negociação simples com base nas previsões de um modelo ajustado.


São necessárias várias definições para definir a cena. Eu não quero reproduzir a teoria que eu andei vagueando; Em vez disso, é o meu resumo muito alto do que eu aprendi sobre a modelagem de séries temporais, em particular os modelos ARIMA e GARCH e como eles estão relacionados aos seus modelos de componentes:


No seu nível mais básico, os modelos ARIMA e GARCH adequados são um exercício para descobrir o modo como as observações, o ruído e a variância em uma série temporal afetam os valores subseqüentes da série temporal. Tal modelo, adequadamente equipado, teria alguma utilidade preditiva, assumindo, naturalmente, que o modelo continuaria sendo um bom ajuste para o processo subjacente por algum tempo no futuro.


Um modelo ARMA (nota: não & # 8220; I & # 8221;) é uma combinação linear de um modelo autorregressivo (AR) e modelo de média móvel (MA). Um modelo de AR é aquele cujos preditores são os valores anteriores da série. Um modelo de MA é estruturalmente semelhante a um modelo de AR, exceto que os preditores são os termos de ruído. Um modelo de padrão móvel autorregressivo de ordem p, q & # 8211; ARMA (p, q) & # 8211; é uma combinação linear dos dois e pode ser definida como:


onde $ w_ $ é ruído branco e $ a_ $ e $ b_ $ são coeficientes do modelo.


Um modelo ARIMA (p, d, q) é simplesmente um modelo ARMA (p, q) diferente & # 8216; d & # 8217; vezes & # 8211; ou integrado (I) - para produzir uma série estacionária.


Finalmente, um modelo GARCH tenta também explicar o comportamento heterossejorado de uma série temporal (ou seja, a característica do agrupamento de volatilidade), bem como as influências em série dos valores anteriores da série (explicada pelo componente AR) e os termos de ruído (explicado pelo componente MA). Um modelo GARCH usa um processo autorregressivo para a própria variância, ou seja, usa valores passados ​​da variância para explicar as mudanças na variância ao longo do tempo.


Com esse contexto a partir do caminho, eu me encaixo um modelo ARIMA / GARCH para a taxa de câmbio EUR / USD e use-o como base de um sistema comercial. Os parâmetros do modelo para cada dia são estimados usando um procedimento de ajuste, esse modelo é usado para prever o retorno do dia seguinte e uma posição é inserida de acordo e mantida por um dia de negociação. Se a previsão é igual ao dia anterior, a posição existente é mantida.


Uma janela rolante de retornos de registro é usada para se adequar ao modelo ótimo de ARIMA / GARCH no final de cada dia de negociação. O procedimento de montagem é baseado em uma pesquisa de força bruta dos parâmetros que minimizam o Critério de Informações de Aikake, mas outros métodos podem ser usados. Por exemplo, poderíamos escolher parâmetros que minimizem o Critério de Informação Bayesiano, o que pode ajudar a reduzir o excesso de habilidade penalizando modelos complexos (isto é, modelos com grande número de parâmetros). Este procedimento de encadernação foi inspirado pela publicação de Michael Halls-Moore & # 8217 sobre uma estratégia de negociação ARIMA + GARCH para o S & P500, e emprestei um pouco de seu código.


Eu escolhi usar uma janela de rolamento de 1000 dias para caber no modelo, mas este é um parâmetro para otimização. Há uma possibilidade de usar o máximo de dados possível na janela de rolamento, mas isso pode deixar de capturar os parâmetros do modelo em evolução rapidamente o suficiente para se adaptar a um mercado em mudança. Eu não venha explorar isso muito aqui, mas seria interessante investigar o desempenho da estratégia como uma função da janela de lookback. Aqui está o código:


Primeiro, apenas as previsões direcionais: compre quando um retorno positivo é previsto e é vendido quando um retorno negativo é previsto. Os resultados dessa abordagem são mostrados abaixo (sem subsídio para custos de transação):


Você pode ter percebido que no procedimento de montagem do modelo acima, eu mantive os valores reais de retorno da previsão, bem como a direção do retorno da previsão. Quero investigar o poder preditivo da magnitude do valor de retorno previsto. Especificamente, os negócios de filtragem quando a magnitude do retorno da previsão está abaixo de um certo limiar melhoram o desempenho da estratégia? O código abaixo executa essa análise para um pequeno limite de retorno. Por simplicidade, converti o retorno do log de previsão para retornos simples para permitir a manipulação do sinal da previsão e fácil implementação.


E os resultados superados com a estratégia bruta:


Ocorreu-me que o modelo ARIMA / GARCH que cabemos em certos dias pode ser uma representação melhor ou pior do processo subjacente do que outros dias. Talvez os negócios de filtragem quando tivermos menos confiança em nosso modelo melhorem o desempenho. Esta abordagem exige que a significância estatística do ajuste do modelo de cada dia seja avaliada e um comércio somente seja inserido quando esse significado exceder um determinado limite. Há várias maneiras pelas quais isso pode ser realizado. Em primeiro lugar, podemos examinar visualmente o correlograma dos resíduos do modelo e fazer um julgamento sobre a bondade de ajuste nessa base. Idealmente, o correlograma dos resíduos seria semelhante a um processo de ruído branco, não mostrando correlação em série. O correlograma dos resíduos pode ser construído em R da seguinte maneira:


acf (ajuste ajustável $ residuals, main = 'ACF of Model Residuals')


Embora este correlograma sugira um ajuste de bom modelo, obviamente não é uma ótima abordagem, pois depende do julgamento subjetivo, para não mencionar a disponibilidade de um ser humano para rever o modelo de cada dia. Uma melhor abordagem seria examinar as estatísticas de Ljung-Box para o ajuste do modelo. O Ljung-Box é um teste de hipóteses para avaliar se as autocorrelações dos resíduos de um modelo ajustado diferem significativamente de zero. Neste teste, a hipótese nula é que a autocorrelação dos resíduos é zero; O alternativo é que a série possui correlação em série. A rejeição do nulo e a confirmação do alternativo implicariam que o modelo não é um bom ajuste, pois há uma estrutura inexplicável nos resíduos. A estatística de Ljung-Box é calculada em R da seguinte maneira:


O valor p neste caso fornece evidências de que os resíduos são independentes e que este modelo particular é um bom ajuste. A título de explicação, a estatística de teste de Ljung-Box (X-squared no código de saída acima) cresce para aumentar a autocorrelação dos resíduos. O p-valor é a probabilidade de obter um valor tão grande ou maior do que a estatística de teste sob a hipótese nula. Portanto, um alto valor de p neste caso é evidência de independência dos resíduos. Observe que ele se aplica a todos os atrasos até o especificado na caixa. função test ().


A aplicação do teste de Ljung-Box para o ajuste do modelo de cada dia revela poucos dias em que a hipótese nula de resíduos independentes é rejeitada, portanto, expandir a estratégia para filtrar todas as negociações desencadeadas por um modelo de modelo pobre provavelmente não aumentará o valor :


Conclusões e Trabalho Futuro.


O desempenho da estratégia ARIMA / GARCH supera uma estratégia de compra e retenção no EUR / USD para o período posterior, no entanto, o desempenho não é nada espetacular. Parece que é possível melhorar o desempenho da estratégia, filtrando em características como a magnitude da predição e a bondade de ajuste do modelo, embora o último não adicione muito valor neste exemplo particular. Outra opção de filtragem poderia ser calcular o intervalo de confiança de 95% para a previsão de cada dia e apenas entrar em um comércio quando o sinal de cada limite for o mesmo, embora isso reduza muito o número de negócios efetivamente realizados.


Existem muitas outras variedades do modelo GARCH, por exemplo exponencial, integrado, quadrático, limiar, estrutural e de comutação para citar alguns. Estes podem ou não fornecer uma melhor representação do processo subjacente do que o modelo simples GARCH (1,1) usado neste exemplo. Para uma exposição desses e outros sabores do GARCH, veja Bollerslev et. al. (1994).


Uma área de pesquisa que eu encontrei altamente interessante recentemente é a previsão de séries temporais através da combinação inteligente de modelos diferentes, por exemplo, tomando a média das previsões individuais de vários modelos ou buscando o consenso ou o voto da maioria sobre o sinal da previsão. Para emprestar alguma nomenclatura de aprendizado de máquina, esta & # 8216; ensembling & # 8217; dos modelos geralmente podem produzir previsões mais precisas do que qualquer dos modelos constituintes. Talvez uma abordagem útil seja reunir as previsões do modelo ARIMA / GARCH apresentado aqui com uma rede neural artificial adequadamente treinada ou outro método de aprendizagem estatística. Poderíamos esperar que o modelo ARIMA / GARCH capture todas as características lineares da série temporal, enquanto que a rede neural pode ser adequada às características não-lineares. Isso é pura especulação, potencialmente com algum apoio deste documento, mas uma avenida de pesquisa interessante, no entanto.


Se você tem alguma idéia para melhorar a precisão da previsão dos modelos de séries temporais, eu adoraria ouvir sobre eles nos comentários.


Finalmente, o crédito onde o crédito é devido: embora eu tenha trabalhado através de inúmeras fontes de informações sobre a modelagem de séries temporais financeiras, encontrei as postagens detalhadas do Michael Halls-Moore & # 8217; assunto extremamente útil. Ele começa desde o início e trabalha através de vários modelos de crescente complexidade. Conforme indicado na publicação principal, também emprestei da estratégia de negociação ARIMA + GARCH para o S & P500 na concepção da estratégia EUR / USD aqui apresentada, particularmente a abordagem para determinar os parâmetros do modelo através da minimização iterativa do Critério de Informações da Aikake. As idéias em torno dos negócios de filtragem com base nos resultados do teste de Ljung-Box e da magnitude absoluta do valor da previsão foram minhas (embora eu não tenha a certeza de que eu não é o primeiro a encontrá-las) .


Outras referências que eu achei particularmente úteis:


Bollerslev, T. (2001). Econometria financeira: desenvolvimentos passados ​​e desafios futuros, no Journal of Econometrics, vol. 100, 41-51.


Bollerslev, T., Engle, R. F. e Nelson, D. B. (1994). Modelos GARCH, em: Engle, R. F., e McFadden, D. L. (eds.) Handbook of Econometrics, Vol. 4, Elsevier, Amsterdã, 2961-3038.


Engle, R. (2002). New Frontiers for ARCH Models, em Journal of Applied Econometrics, Vol. 17, 425-466.


Qi, M. e Zhang, G. P. (2008). Modelagem e Previsão de Tendências da Série Trend com Redes Neurais, em Transações IEEE em Redes Nerais, Vol. 19, nº 5, 8-8-816.


Tsay, R. (2010). Modelos Heteroscedásticos Condicionais, em Tsay, R. Análise da Série de Tempo Financeiro, Terceira Edição, Wiley, 109-174.


Aqui você pode baixar o código e os dados usados ​​nesta análise: arima_garch.


Matt haines.


Eu estava literalmente lutando por um monte de ARMA ARIMA GARCH caixa de leitura de teste e, em seguida, tomou uma pausa para ler a sua postagem de blog. & # 8220; Yes! & # 8221; Eu gritei (na minha cabeça) quando leio sobre você ponderando todas aquelas grandes palavras e siglas com as quais eu tenho lutado. E então percebi que você também estava baseando seu trabalho em escritas de Michaels. Malditas coisas dói minha cabeça. Mas eu estou lentamente obtendo isso. Você tem cerca de 4 parsecs à frente de mim, então eu vou ter que ficar de olho em seu trabalho também. ? Obrigado.


Kris Longmore.


Ei Matt, obrigado pelo comentário! Espero que o meu artigo seja útil para você. Sim, aprendi muito com os posts de Michael no assunto. É pesado no detalhe e apresenta-o de forma lógica que se baseia continuamente nas informações anteriores. Recentemente, comprei o corte grosseiro de seu último livro e consulte-o com frequência. Muito aguardando a versão final. No meu artigo, pretendia resumir sucintamente a teoria e o foco em algumas idéias comerciais que parecem uma extensão bastante natural. Espero que tenha sido útil!


Obrigado pela sua publicação. Você poderia dizer quais os índices Sharpe das estratégias testadas?


Kris Longmore.


Eu não calculava os índices de Sharpe quando corri essas estratégias. Você poderia facilmente fazer isso sozinho executando o script (disponível através do link de download, juntamente com os dados que usei) e usando o pacote performanceAnalytics em R.


Olá, sou novo em montagem em série temporal e achei seu artigo muito interessante. A minha pergunta é: não há um valor aleatório envolvido na previsão do preço por definição de uma série GARCH? Em caso afirmativo, não faria sentido calcular a probabilidade de que a previsão seja longa ou curta usando o valor ARMA como média e o desvio padrão e talvez aplique um filtro, aceitando apenas valores acima de um determinado limite?


Kris Longmore.


Ei, obrigado por ler meu blog. Eu acho que você está se referindo ao termo de ruído na definição do GARCH? Você certamente pode experimentar um modelo ARMA e # 8211; Gostaria de ouvir sobre os resultados & # 8211; mas eu não sei como isso se relaciona com o termo de ruído no modelo GARCH?


Obrigado pelo tutorial. Qual a linha (s) de código que precisamos para contabilizar os custos de transação?


Kris Longmore.


Existem algumas maneiras de fazê-lo, dependendo de quão preciso ou complexo seja um modelo de custo de transação que você deseja. Se um modelo de custo de transação fixo bastasse, você poderia simplesmente subtrair esse custo de transação fixo de cada um de seus retornos. Por exemplo, se uma rodada girar o EUR / USD custa 1,5 pips, você simplesmente faz retornos.


Naturalmente, na realidade você obtém spread variável e deslizamento variável dependendo de fatores como volatilidade e liquidez em tempo real, então isso pode ou não ser suficientemente preciso para seus propósitos.


Kris Longmore.


Neste exemplo, eu primeiro coloco um modelo ARMA de ordem (p, q) onde (p, q) ∈ e (p, q) são escolhidos de modo que minimizem o Critério de Informação Aikake. Então, ajustamos um modelo usando GARCH (1,1) para a variância e ARMA (p, q) para a média. Um modelo novo é construído para cada período na simulação usando os 1.000 períodos anteriores. Cada modelo é usado uma vez (para prever o próximo período & # 8217; s retorno) e depois descartado. Então, para responder a sua pergunta, a abordagem usada aqui não procura os parâmetros que o & # 8216; trabalho & # 8217; geralmente, em vez disso, encontramos os melhores parâmetros da nossa janela de lookback e assumimos que eles manterão para o próximo período.


Essa suposição pode ou não ser válida. E se esta suposição é válida, enquanto a modelagem de séries temporais é super interessante a partir de uma perspectiva teórica, pode ou não ser de uso prático em uma estratégia de negociação. No mínimo, certamente há outras considerações além dos parâmetros ideais do modelo. Por exemplo, da minha própria experiência construindo modelos de negociação para os mercados cambiais, posso compartilhar que a escolha do tempo de amostragem (ou seja, o tempo que você escolhe como abrir / fechar suas barras diárias) é de importância crítica no sucesso ou senão do modelo.


Seu comentário é realmente muito oportuno! Recentemente, criei uma estrutura de backtesting GARCH para um cliente que permite uma experimentação eficiente com estes e outros parâmetros, como condições de saída e alocação de capital. Um quadro eficiente de experimentação é realmente importante para pesquisas efetivas e práticas. Se você está interessado em algo parecido, fale-me no kris [at] robotwealth.


Espero que ajude.


Os dados de preços EURUSD. csv & # 8230; How is the data structure in the file? Can you display the headers/first few rows so I can parse my data accordingly.


Desculpa. After posting my question I saw the download link for the file. Doooh!


Regarding your code how did you handle negative values for the returns? Because you are using the log for the ag. curve and with negative values you will have NaN.


Kris Longmore.


I honestly don’t remember…I’d have to re-run the code. But yes, you are correct – it makes more sense to use log returns which are additive. Multiplying simple returns is problematic in creating an equity curve when you have neutral positions. I’ve updated the post.


you can use this : ag. curve <- cumsum( ag. direction. returns)


I have studied Time Series Econometrics as part of my PhD specialization and I have found that simply drawing trends and patterns on a chart is a far superior approach than the most advanced statistical techniques such as Markov Switching Multivariate GARCH or Multivariate Autoregressive State Space Models. I feel kind of uneasy that all my efforts and sleepless nights were for nothing. But at least I know what the best approaches are.


Kris Longmore.


Great to hear that you’ve found something that works for you. I agree, sometimes simpler can be better.

No comments:

Post a Comment