Saturday, 28 April 2018

R série temporária forex


Forex Mecânico.


Negociação no mercado FX usando estratégias mecânicas de negociação.


Usando R in Trading: Previsão de séries temporais usando o caos, Parte 3.


Durante os últimos dois posts (aqui e aqui) discutimos o uso da teoria do Caos para fazer previsões em séries temporárias financeiras. Até agora, analisamos diferentes tipos de séries temporais usando uma única técnica de cálculo da dimensão fractal (& # 8220; Rodogram & # 8221;) e obtivemos alguns resultados interessantes. No entanto, existem alguns problemas sérios com o algoritmo que estudamos até agora, principalmente problemas relacionados à reprodutibilidade dos resultados. Na publicação de hoje, vou discutir essas questões com mais profundidade e compartilharei com você uma nova implementação que elimina completamente esses problemas. Como nas últimas duas postagens, lembre-se de que você precisa ter os pacotes quantmod e fractaldim R instalados para reproduzir esses resultados. O código abaixo mostra a última implementação do R para o algoritmo que não contém os problemas que discutiremos (para reproduzir esses problemas, você deve usar os algoritmos publicados nas duas publicações anteriores).


Os problemas no passado algoritmo foram destacados por um comentário feito por Westh. Em essência, o problema é que os resultados de previsão mudam sempre que você executa o código, mostrando que há um problema substancial com a idéia inteira. Não há dúvida de fazer uma previsão se, sempre que você fizer uma previsão, a previsão mude. Os resultados obtidos podem ser extremamente variados e, portanto, podem simplesmente caber os dados se você executar a simulação o suficiente. A imagem abaixo mostra 9 corridas diferentes que tentam prever os últimos 500 dias para o ETF USO. Como você pode ver claramente, existem todos os tipos de previsões de alguns que parecem ser realmente comuns a outras previsões que estão amplamente erradas. Se executar um algoritmo várias vezes pode produzir esse tipo de resultados, então os resultados não têm sentido.


Inicialmente, você pensaria que o problema é devido à falta de amostras aleatórias suficientes na construção do palpite # 8211; uma má construção da distribuição de valores potenciais # 8211; mas como Westh apontou que você obtém variabilidade similar, mesmo que você aumente o número de amostras aleatórias para 5000, tentei aumentar o tamanho da amostra aleatória para 20,000 e obtive variabilidade muito similar. O problema é devido à natureza caótica da função que faz as previsões. O desenho de uma distribuição normal pode produzir uma grande variedade de valores possíveis e desenhar valores ligeiramente diferentes para uma previsão pode levar a uma escolha diferente, o que então causa uma mudança na distribuição, o que então reforça a mudança e empurra todo o algoritmo completamente direção diferente. Não importa o quanto você provoque, você sempre se encontrará dentro desta situação.


Para tornar as coisas ainda pior, o fenômeno acima garante que a média realmente nunca converge para qualquer coisa, mas oscila infinitamente como uma função do número de simulações executadas. Então, não só duas previsões sempre parecerão diferentes umas das outras, mas executar muitas previsões não lhe dará nada mais sólido. O algoritmo apresentado nas últimas duas postagens foi, portanto, inútil em termos de previsões reais do mercado, uma vez que os valores apresentados podem mudar sem parar se as simulações fossem atualizadas. No entanto, uma vez que entendemos a base do problema, podemos fazer algumas mudanças para poder encontrar um algoritmo de previsão do Caos e # 8211; como aquele incluído nesta postagem & # 8211; onde as previsões feitas são sempre exatamente as mesmas.


Para eliminar o problema, você deve simplesmente eliminar a fonte de aleatoriedade da proposta inicial feita por Golestani e Gras no documento original. Esta fonte de aleatoriedade provavelmente foi incluída para simplificar os cálculos, mas não há necessidade real para ele dentro da idéia principal do artigo. Se a idéia é que as variações para um instrumento financeiro devem sair da distribuição das variações históricas, a solução mais fácil para esse problema é simplesmente usar a distribuição histórica atual dos retornos como fonte de suposições. Então, em vez de desenhar suposições potenciais de uma distribuição normal com variabilidade potencialmente infinita, simplesmente desenhamos suposições a partir de uma matriz construída a partir das séries de retorno finito derivadas das séries temporais financeiras originais.


Desta forma, você pode obter exatamente o mesmo resultado para as N corridas consecutivas do mesmo algoritmo, uma vez que a avaliação da próxima melhor mudança sempre será o mesmo que sempre existe um único candidato ideal dentro da série de retorno histórico finito. Desta forma, garantimos que sempre possamos uma escolha única que melhor minimize a variação da dimensão fractal, o que garante que nossos resultados não variem em retornos da mesma simulação. É claro que o custo é muito maior do que anteriormente, porque nós avaliamos explicitamente todos os candidatos históricos de retorno para ver qual deles minimiza a variação na dimensão fractal, mas isso é necessário para alcançar um algoritmo que seja realmente útil para fazer previsões (pelo menos para obter um algoritmo podemos avaliar).


A imagem acima mostra a previsão dos últimos 100 dias no GLD ETF. Esta predição é repetida exatamente da mesma maneira sempre que o algoritmo é reiniciar. Ao executar este novo algoritmo usando os resultados do método de cálculo de rodograma fractal após 200 dias, comece a parecer significativamente estranho, pelo que decidi reduzir o número de previsões para 100 no algoritmo mais recente. Isso pode ter que ver com o método de cálculo fractal exato, pois meus experimentos usando alguns outros métodos realmente renderam melhores resultados (mas isso é algo para uma postagem posterior). Dito que, como você pode ver, a previsão de 100 dias no GLD parece muito boa, embora tenhamos a presença de algum efeito estranho de onda de amortecimento nos dados # 8211; também comentado por Westh & # 8211; O que confirmei é principalmente devido ao algoritmo de dimensão fractal que está sendo usado.


Forex Mecânico.


Negociação no mercado FX usando estratégias mecânicas de negociação.


Usando R in Trading: Previsão de séries temporais usando o caos, Parte 1.


Uma vez a cada poucos anos, uma maneira muito nova de ver as coisas vem à luz. Foi o que aconteceu em 2018, quando Abbas Golestani e Robin Gras publicaram seu artigo de previsão de séries temporais sobre relatórios científicos da natureza. Neste artigo, eles expõem uma nova metodologia para a previsão de séries temporais que parece quase milagrosamente prever alguns problemas extremamente difíceis de resolver em várias áreas, incluindo séries temporais financeiras. O artigo mostra algumas previsões impressionantes sobre o DJIA que praticamente destruem as previsões usando os modelos ARIMA e GARCH. Logo após o lançamento deste artigo, reproduz alguns dos resultados, mas enfrentei várias questões que me impediram de usar este método até agora. Dentro desta série de postagens de blog, quero mostrar-lhe como você pode reproduzir este método de previsão usando R e quais os problemas de uso dele. Eu vou orientá-lo através das idéias por trás da metodologia e os problemas que enfrenta para aplicações práticas.


A idéia principal por trás do documento inteiro é realmente bastante simples e tem uma suposição muito interessante no seu núcleo. O artigo nos diz que as séries temporais, como as séries temporais financeiras, são caóticas e, portanto, suas propriedades relacionadas ao caos devem permanecer constantes como função do tempo . Se você pode pensar sobre possíveis valores futuros para uma série de tempo, o valor futuro mais razoável é aquele que melhor preserva as propriedades relacionadas ao caos subjacente da série. Portanto, se você pode pensar sobre uma propriedade relacionada ao caos, essa propriedade deve permanecer constante e, portanto, qualquer coisa que você adicionar deve fornecer a menor variação possível desse valor quando a propriedade for medida novamente.


A maneira prática de fazer isso também é bastante simples. Golestani e Gras sugerem o uso do expoente de Lyapunov ou dimensão fractal como propriedades da série do caos e propõem uma metodologia simples para a previsão. Primeiro, calcule sua propriedade de caos para toda a série e, em seguida, crie uma distribuição que represente a variação entre elementos da série e faça sorteios aleatórios dessa distribuição, de modo que você possa ter candidatos para o próximo valor da série e, em seguida, recalcule novamente sua propriedade de caos depois de adicionar cada candidato e escolher a nova série que tem o valor mais próximo do valor de referência original da propriedade. Em essência, você simplesmente agrupa muitas hipóteses potenciais e adiciona o que menos prejudica a propriedade do caos.


A implementação real real é um pouco mais complicada porque tanto o expoente Lyapunov quanto a dimensão fractal realmente não são & # 8220; formalmente definidos e # 8221 ;. Quando você calcula o expoente de Lyapunov, você geralmente possui 8 parâmetros para escolher e não há praticamente nenhuma maneira formal de escolher a maioria desses parâmetros. Parâmetros como o número de pontos a ter em conta simplesmente não são intuitivamente atribuíveis. A dimensão fractal apresenta um problema semelhante, existem mais de 5 métodos diferentes para o cálculo da dimensão fractal de uma série de tempo financeiro, com mais de 8 implementados na biblioteca R fractaldim, apresentando um problema semelhante ao cálculo do expoente de Lyapunov. Eu acho que você pode começar a ver como isso cria uma questão muito importante ao lidar com previsões de séries temporais.


No final, decidi ir com a implementação da dimensão fractal, uma vez que coloca um problema muito menos assustador, uma vez que, no final, se resume a uma escolha de método para cálculo em vez de ter que iterar através de bilhões de combinações de parâmetros potenciais. A implementação que você vê acima em R pode ser usada para prever 500 valores de retorno diário SPY ao lado da bolha de 1999, onde o SPY perdeu uma parcela muito significativa de seu valor (você pode alterar o valor endingIndex para mudar o período, a crise de 2008 é cerca de 3500). Antes desse ponto, as séries temporais não tinham, basicamente, nenhum componente de tendência descendente significativo (de 1990 a 2000) e, portanto, isso representa um problema muito interessante para a previsão de séries temporais. Se isso funcionar, o método basicamente precisa prever que o SPY deve cair mesmo se não houver precedentes para tal queda dentro dos dados. Basicamente, todos os métodos de aprendizagem mecânica e análise técnica não conseguiram prever tal queda, uma vez que está simplesmente fora do escopo histórico. Mas as previsões do caos podem ser melhores?


Como você pode ver na primeira imagem dentro da postagem, a previsão usando valores de dimensão fractal calculados por rodograma não consegue responder adequadamente a queda durante a bolha de pontocom, embora a predição seja bastante precisa durante os primeiros 200 dias, há uma diferença dramática no final resultado devido ao método completamente faltando a maior parte da queda e subestimando fortemente uma recuperação. Claro, isso ainda é muito melhor do que qualquer previsão de ARIMA poderia dizer para um horizonte de 500 dias, mas ainda não é uma previsão de longo prazo muito boa. Também podemos ver o que acontece quando vamos à crise de 2008 para ver se O método realmente é melhor com mais dados. Pode ser bem possível que precisássemos incluir um período de crise dentro dos dados antes da dimensão fractal convergir com precisão para o seu & # 8220; valor de longo prazo & # 8221 ;. Se o método se basear na noção de que a dimensão fractal não muda, é razoável concluir que a precisão da previsão deve aumentar com conjuntos de dados maiores.


Eu não estava desapontado com os resultados de previsão para o período 2008-2009 usando a dimensão fractal calculada por Rodogram (segunda imagem dentro da publicação), não só o método de previsão reproduz o duplo topo no SPY, mas também reproduziu o movimento de um mercado de touro praticamente vertical para um mercado de urso muito íngreme. Isso nos mostra que quanto mais dados adicionamos, mais rigorosos os resultados do algoritmo se tornam. Este é, de longe, o único método que eu conheço que pode produzir uma previsão tão precisa de 500 dias, especialmente dentro de uma mudança de mercado tão significativa.


Claro que há muitas coisas ainda para explorar usando esse método. Será que é bom em moedas? Isso funciona em outros instrumentos? O que acontece quando você usa outros métodos de cálculo da dimensão fractal? Isso funciona melhor em certos horizontes de previsão? Qual é a probabilidade de obter uma boa previsão apenas por acaso? As respostas a todas essas questões aparecerão em futuras postagens de blog. Se você gostaria de saber mais sobre as séries temporais financeiras e como você pode aprender a criar sistemas para comercializá-los, considere se juntar a Asirikuy, um site repleto de vídeos educacionais, sistemas de negociação, desenvolvimento e uma abordagem sólida, honesta e transparente para automatização negociação.


2 Responses to Usando R em Negociação: Previsão de séries temporais usando caos, Parte 1 e # 8221;


Estão sugerindo que este método é bastante preciso para que o mercado SPY avance. A partir da segunda imagem, indica que estamos em uma outra queda acentuada nos mercados? Ou é apenas uma inexatidão de não fornecer dados suficientes para o final? Obrigado.


Obrigado por escrever. Eu realmente não tenho idéia de quão preciso é este método realmente, o que é acima são apenas algumas observações qualitativas. A segunda curva mostra o período de 2008-2009 (linha azul) e a previsão de que o algoritmo foi feito (linha preta). Todas as imagens no artigo são previsões passadas e comparações, nenhuma delas representa uma previsão para o mercado atual. Eu publicarei algumas previsões nos próximos 500 dias no twitter se você estiver interessado. Obrigado novamente por escrever!


Forex Mecânico.


Negociação no mercado FX usando estratégias mecânicas de negociação.


Usando R em Algorithmic Trading: Caracterização de séries temporais simples. Parte um.


Na semana passada, usamos o pacote estatístico R para analisar uma série de características do sistema IS / OS e derivamos delas algumas conclusões simples sobre as correlações históricas IS / OS. Hoje vamos usar R para fazer uma análise mais fundamental que deve ser feita antes da geração do sistema. Esta análise corresponde à caracterização básica de séries temporárias financeiras, o que nos dá algumas informações fundamentais sobre os símbolos que vamos negociar. Ao fazer essa análise, poderemos descobrir onde pode ser mais fácil desenvolver estratégias algorítmicas de busca alfa tradicionais e se algumas coisas (como um viés fundamental a longo prazo) existem dentro de um determinado símbolo. Dentro deste primeiro tutorial, abordaremos algumas características estatísticas básicas das séries temporais financeiras, se houver características úteis que você achar que estão faltando, publique um comentário com sua observação (eu certamente as incluirei nas próximas partes).


Em primeiro lugar, devemos garantir que nossos dados estejam contidos dentro de um arquivo csv amigável para R. Queremos ter colunas Open / High / Low / Close, bem como uma coluna Data que deve conter os horários de abertura de velas em um formato adequado para R (por exemplo 1986-03-23). Lembre-se de que R precisa ter cabeçalhos de coluna adequados, então a primeira linha do nosso csv deve ler algo como & # 8220; Date, Open, High, Low, Close & # 8221 ;. É importante que os dados sejam formatados desta forma, pois estaremos usando outras bibliotecas que exigem esta formatação expressa (como o quantmod) nas próximas postagens desta série (quando realizaremos análises mais avançadas, como expoente de Hurst estimativas). Certifique-se de que você também tenha instalado a biblioteca do e1071 R antes de prosseguir, já que precisamos de alguns cálculos estatísticos básicos. Uma vez que você tenha seus dados prontos, agora pode carregá-lo em R e traçá-lo para confirmá-lo e carregado corretamente (observe que aprenderemos a traçar os gráficos de candlestick mais bonitos quando usarmos o quantmod:


Uma vez que nossos dados são carregados, podemos calcular o retorno da série de preços para ter uma quantidade estatística que podemos comparar nos diferentes símbolos, pois os dados Open / High / Low / Close não são diretamente comparáveis. O retorno percentual é simplesmente dado por 100 * (Fechar [n] - Feche [n-1] / Fechar [n-1]), note que não estamos usando a diferença Fechar [n] - Abrir [n] porque as lacunas funcionam um papel muito importante em certos instrumentos, por isso precisamos levá-los em consideração no cálculo. Também vale a pena notar que os retornos baseados em log (Close [n]) também são comumente usados, pois esses valores dão resultados mais próximos de uma distribuição normal na maioria das séries temporais financeiras. O que usar depende principalmente de se sua análise exige uma suposição de normalidade, para este tutorial, vamos usar os retornos de porcentagem padrão. Marque este link para obter mais informações sobre os diferentes tipos de retorno que podem ser usados. Para calcular os retornos, precisamos emitir alguns comandos R adicionais:


Eu calculo os retornos preenchendo primeiro uma matriz com um diferencial e repopulando-a com a diferença normalizada correta com base nos valores de fechamento anteriores. Provavelmente há uma maneira melhor de fazer isso em R (por favor, coloque um comentário se você souber!), Mas eu simplesmente fiz isso usando o que minha mentalidade C ++ me disse; o). Agora podemos proceder a alguns cálculos adicionais que irão revelar algumas estatísticas interessantes sobre as séries temporais. Podemos calcular a média, ênfase, kurtosis e autocorrelações em série para nossos retornos. A asimetria nos diz como distorcido a distribuição é para valores negativos ou positivos (uma distribuição de probabilidade perfeitamente simétrica daria 0), enquanto a curtose nos diz como a gordura (alta curtose) ou altamente pico (baixa curtose) nossa distribuição é comparada a uma distribuição normal. Uma alta curtose implica que a variação dentro da sua distribuição é mais provável o resultado de variações extremas infreqüentes. Também podemos obter um histograma para ter uma melhor visão dessas variações.


Como você pode ver acima, os retornos para o EUR / USD se desviam significativamente de uma distribuição normal (mais em testes de normalidade em uma publicação futura) e já podemos ver algumas características da distribuição EUR / USD. Por exemplo, podemos ver que a distribuição é inclinada para o território positivo (skeess = 0,076) e a distribuição é gorda (kurtosis = 1,52). Nenhum desses dois fatos deve ser surpreendente para qualquer um que tenha feito análises de séries temporais, já que as séries temporais financeiras são bem conhecidas por serem fat-tailed. No entanto, vale a pena notar que o grau de kurtosis e skeessess mudam muito dependendo da classe de ativos e do símbolo que você está estudando. Na próxima parte desta série, iremos ver como diferentes símbolos Forex e não-Forex se comparam nesta mesma análise (além de algumas estatísticas adicionais) e como essas estatísticas estão relacionadas com a nossa capacidade de gerar sistemas de negociação historicamente lucrativos usando esses dados. Você verá que as distribuições que possuem certas características levam facilmente a um grande número potencial de estratégias historicamente rentáveis, enquanto as distribuições que possuem outras características são muito difíceis de encontrar bordas.


Para aqueles de vocês que estão bem versados ​​em estatísticas, sinta-se livre para contribuir com os aspectos de análise estatística básica que você achar úteis e quais você gostaria que eu explicasse dentro de uma publicação futura. Se você quiser saber mais sobre o meu trabalho e como você também pode usar análises de séries temporais para desenvolver estratégias de negociação, considere se juntar a Asirikuy, um site repleto de vídeos educacionais, sistemas de negociação, desenvolvimento e uma abordagem sólida, honesta e transparente para negociação automatizada em geral . Espero que tenha gostado deste artigo ! : o)


3 Respostas ao & # 8220; Usando R na negociação algorítmica: caracterização simples da série temporal. Parte Um & # 8221;


[& # 8230;] parte uma desta série de postagens obtivemos algumas características fundamentais simples de uma série de tempo financeiro Forex em [& # 8230;]


[& # 8230;] para ser o mais fácil. Antes de seguir este tutorial, eu também recomendaria que você leia meus dois (1, 2) últimos tutoriais R na análise básica de séries temporais, de modo que você esteja familiarizado com alguns R básicos [ # 8230;]


desculpe, mas estou de frente para este problema:


Erro no plot. window (& # 8230;): precisa finito & # 8216; xlim & # 8217; valores.


Além disso: mensagens de aviso:


1: Em min (x): nenhum argumento não faltante para o min; retornando Inf.


2: No max (x): nenhum argumento não faltante para o máximo; retornando - Inf.


3: Em min (x): nenhum argumento não faltante para o min; retornando Inf.


4: no max (x): nenhum argumento não faltante para o máximo; retornando - Inf.


Forex.


10 812 & # 32; пользователей находятся здесь.


МОДЕРАТОРЫ.


Wrayjustin Trading Pennies for Dollars FXMarketMaker Professional Trader Hot_Biscuits_ Modelos e Garrafas spicy_pasta RichJG Financial Astrologer El_Huachinango MOD finance_student Prop Trader о команде модераторов & raquo;


Bem-vindo ao Reddit,


a primeira página da internet.


e inscreva-se em uma das milhares de comunidades.


Quer adicionar à discussão?


помощь правила сайта центр поддержки вики реддикет mod guidelines связаться с нами.


приложенияи инструменты Reddit para iPhone Reddit para o site móvel Android кнопки.


Использование данного сайта означает, что вы принимаете & # 32; пользовательского соглашения & # 32; и & # 32; Политика конфиденциальности. &cópia de; 2018 reddit инкорпорейтед. Все права защищены.


REDDIT e o logotipo ALIEN são marcas registradas da reddit inc.


& pi; Renderizado pelo PID 113466 em & # 32; app-350 & # 32; em 2018-01-12 14: 15: 56.877948 + 00: 00 executando o código do país b995ef9: UA.


FOREX Time Series Analysis.


A análise de séries temporais é sobre aprender as características fundamentais da série dada, a fim de fazer previsões no futuro. Um dos fatos mais importantes sobre as séries temporais financeiras é a autocorrelação (correlação em série). Então, queremos acabar com um modelo capaz de explicar por que há correlação em série.


Como você pode ver nas fórmulas acima, a correlação em série é a correlação das séries temporais com ela própria. Portanto, essa é a característica fundamental dos dados financeiros: as observações distantes umas das outras são correlacionadas.


Se buscarmos, por exemplo, preços AAPL stcok da Yahoo Finance e traçamos o histograma, podemos garantir que os rendimentos diários tenham distribuição aproximadamente normal.


O que isso significa? Que podemos construir modelos para explicar esta distribuição. É por isso que a caminhada aleatória (Wiener-process) é um bom começo. Assumimos que os preços das ações e as carteiras seguem uma caminhada aleatória. A série de tempo de caminhada aleatória é algo como x (t) = x (t-1) + w (t) onde w (t) é um termo de ruído branco, portanto N (0, σ 2). Então, o que temos que fazer? Se tivermos um modelo de séries temporais (caminhada aleatória, AR, MA, ARMA & # 8230;), temos que verificar a parcela de autocorrelação (ACF). Ele nos diz se o modelo pode explicar a correlação em série ou não.


Este é o objetivo ao construir modelos para o FOREX: gostaríamos de explicar a correlação serial e acabar com um gráfico ACF como este. Se usarmos a caminhada aleatória para S & amp; P500, podemos chegar à conclusão de que andar aleatório não é o melhor modelo possível para ativos financeiros.


Modelo Autoregressivo (AR)


O modelo autorregressivo é a generalização da caminhada aleatória: ao invés de considerar apenas uma observação no passado w (t-1), continuamos incluindo mais e mais valores passados. Uma ordem do modelo autorregressivo AR (p) p considera p observações passadas.


Como você pode ver um AR (1) é a própria caminhada aleatória. Se tentarmos modelar ativos financeiros (estoques e carteiras) com modelo autoregressivo, não podemos explicar todas as correlações em série. O que isso significa? Isso significa que precisamos de modelos mais complexos para entender a complexidade do mercado.


Modelo médio móvel (MA)


O modelo médio em movimento é sobre incluir mais e mais termos de ruído branco em nosso modelo. Às vezes está funcionando bem, às vezes não é.


Na minha opinião, o modelo médio móvel ainda não é suficientemente complexo para compreender os fundamentos no que diz respeito ao mercado. O principal problema com esses modelos é que eles não levam em consideração a aglomeração de volatilidade. O que é o agrupamento de volatilidade? Isso significa que as séries financeiras não são estacionárias: a variação (volatilidade) não é constante. Temos que encontrar modelos capazes de explicar também a aglomeração de volatilidade. O modelo combinado ARIMA e GARCH é capaz de explicar tanto a correlação em série quanto a aglomeração de volatilidade!


Interessado em Algoritmos? Leve nossos algoritmos e amp; Curso de Estruturas de Dados GRATUITAMENTE.


O ÚLTIMO DO BLOG.


Copyright & # x000A9; 2018 - Website desenhado pelo suporte global de software.

No comments:

Post a Comment