Friday 17 November 2017

Time series trading strategies no Brasil


Análise de séries temporais e arbitragens estatísticas G63.2707, Outono de 2009 Como analisamos dados financeiros históricos para desenvolver estratégias de negociação lucrativas e de baixo risco Este curso é uma introdução à análise de séries temporais usada nas finanças e estratégias de negociação relevantes tanto para compra - Lado e vender-lado participantes do mercado. O curso será dividido em três partes: Modelos lineares: AR e MA para processos escalares e vetoriais, e estimativa simples de volatilidade e covariância. Avaliação do modelo e análise residual. Cointegração e sua aplicação na modelagem de risco e estratégias de negociação de pares. Modelos não-lineares: ARCH, GARCH, e modelos mais gerais de volatilidade. Aplicações: microestrutura do mercado, modelagem de custos de transação e estratégias de negociação ótimas tanto para a negociação de agências como para o principal. Instrutores Lin Li, ll1084 at nyu Pré-requisitos O curso é destinado a estudantes de segundo ano no Programa de Mestrado em Matemática em Finanças da Courant Institutes. Espera-se que esses alunos tenham uma excelente base em matemática aplicada ao financiamento (cálculo estocástico e PDEs), uma base razoável em finanças (teoria de portfólio e gerenciamento de risco) e na computação, mas não necessariamente um conhecimento intensivo de estatísticas. Os alunos com preparação comparável podem se inscrever se houver espaço disponível. Cerca de 5 lições de casa (40 no total), um teste (30) e um projeto final (30). Referências Temos uma conta de classe na Wharton Research Data Services. As informações de login serão dadas em sala de aula. Carol Alexander, Modelos de Mercado. James D. Hamilton, Análise de séries temporais, Princeton University Press 1994. Joel Hasbrouck, Microstrutura do Mercado Empírico, Oxford University Press 2006 (mais informações na página de Hasbroucks). Stephen J. Taylor, Dinâmica de Preços de Ativos, Volatilidade e Previsão, Princeton University Press 2005. Ruey S. Tsay, Análise de Séries Financeiras, 2ª Edição, Wiley 2005. Os artigos de pesquisa serão disponibilizados conforme necessário. Segunda-feira à noite, das 7:10 às 21:00 em Prata 713, de 14 de setembro a 7 ou 14 de dezembro. (Não há feriado do Dia de Colombo este ano.) A programação eo resumo abaixo estão sujeitos a mudanças dependendo de como o curso Desenvolve, e sobre as demandas de viagens de instrutores. Para uma estratégia de negociação não-linear para a série de tempo financeiro Fernanda Strozzi a ,. Jos-Manuel Zaldvar Comenges b. Universidade de Carlo Cattaneo (LIUC), Faculdade de Engenharia, Instituto de Métodos Quantitativos, 21053 Castellanza (VA), Itália b Comissão Europeia, Centro Comum de Investigação, Instituto de Meio Ambiente e Sustentabilidade, TP272, 21020 Ispra (VA), Itália. Disponível on-line em 3 de outubro de 2005. É proposta uma nova estratégia comercial baseada em técnicas de reconstrução espacial. A técnica utiliza a evolução do volume de espaço de estado e sua taxa de mudança como indicadores. Esta metodologia foi testada off-line usando dezoito séries de alta freqüência de câmbio estrangeiras com e sem custos de transação. Em nossa análise, pode-se obter um valor médio ótimo de aproximadamente 25 ganho nessas séries sem custos de transação e um valor médio ótimo de aproximadamente 11 ganho assumindo 0,2 de custos em cada transação. Tabela 1. 1. A fig. 2. A fig. 3. A fig. 4. A fig. 5. A fig. 6. Tabela 2. Fig. 7. A fig. 8. A fig. 9. A fig. 10. Tabela 3. Fig. 11. A fig. 12. A fig. 13. A fig. 14. Autor correspondente. Tel. 39 0331 572634 fax: 39 0331 480746.Forecasting Financial Time Series - Part I Nesta série de artigos vamos criar um processo estatisticamente robusto para a previsão de séries financeiras. Estas previsões constituirão a base para um conjunto 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á prever a direção do mercado. Dentro destes artigos estaremos fazendo uso do scikit-learn. Uma biblioteca de aprendizagem de máquina para Python. Scikit-learn contém implementações de muitas técnicas de aprendizagem de máquina. Não só isso nos poupa muito tempo na implementação dos nossos próprios, mas minimiza o risco de bugs introduzidos pelo nosso próprio código e permite verificação adicional contra bibliotecas escritas em outros pacotes, como R. Isso nos dá uma grande quantidade de Confiança se precisamos criar nossa própria implementação personalizada (por razões de velocidade de execução, digamos). Processo de Previsão Uma explicação detalhada do campo da aprendizagem da máquina estatística está além deste artigo. A fim de utilizar técnicas como Regressão Logística. Análise Discriminante Linear e Análise Discriminante Quadrática precisamos delinear alguns conceitos básicos. Técnicas de Aprendizagem Supervisionadas As técnicas de aprendizagem supervisionada envolvem um conjunto de tuplas conhecidas (xi, yi), i in, com xi representando as variáveis ​​preditoras (tais como retornos do mercado de ações defasados ​​ou volume negociado) e yi representando as variáveis ​​de observação de resposta associadas Mercado hoje). Nesta situação, estamos interessados ​​na previsão. Dadas as variáveis ​​preditoras futuras, desejamos estimar as respostas destes preditores. Isto está em oposição à inferência onde estamos mais interessados ​​na relação entre as variáveis. Todos os algoritmos que usamos neste artigo, junto com muitos outros que empregaremos no futuro, são do domínio de aprendizagem supervisionado. Medição da precisão de previsão A classe particular de métodos que nos interessam envolve a classificação binária. Ou seja, tentaremos alocar a porcentagem de retorno para um dia em dois baldes: Acima ou Abaixo. Num preparador de produção estaríamos muito preocupados com a magnitude desta previsão e com os desvios da predição do valor real. Em tais casos, podemos fazer uso do erro médio quadrado. Mean Absolute Deviation e Root-Mean-Squared Error para fornecer uma estimativa de precisão de previsão. A literatura fornece numerosos outros exemplos de medidas de precisão de previsão. Neste caso, vamos apenas estar preocupados com a taxa de sucesso. Que é simplesmente a porcentagem de vezes que o previsor conseguiu uma predição exata (isto é, quando o dia estava para cima e vice-versa). Em exemplos posteriores, faremos uso de uma matriz de confusão para determinar o desempenho de predição numa base de classe por classe. Além disso, vamos calcular os valores acima mencionados e incorporá-los em 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 surpreendente de fatores potenciais para escolher quando a previsão do mercado de ações retorna índice. Neste artigo, vamos restringir os fatores aos atrasos de tempo dos retornos percentuais atuais. Isso não é porque eles são os melhores preditores, mas sim porque é fácil 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 mais importante, componente do previsor. Mesmo as técnicas simples da aprendizagem da máquina produzirão bons resultados em fatores bem escolhidos. Note que o inverso não é frequentemente o caso. Jogar um algoritmo em um problema geralmente levará a uma má previsão de precisão. Para este forecaster especificamente, eu escolhi os retardos primeira e segunda vez da porcentagem retorna como os preditores para a direção atual do mercado de ações. Esta é uma opção relativamente arbitrária e há muito espaço para modificação, por exemplo, adicionando atrasos adicionais ou o volume de ações negociadas. É geralmente melhor ter menos preditores em um modelo, embora existam testes estatísticos disponíveis que podem demonstrar a capacidade preditiva de cada fator. Previsão do SampP500 com regressão logística, LDA e QDA O SampP500 é um índice ponderado das 500 maiores empresas de capital aberto (por capitalização de mercado) no mercado de ações dos EUA. É frequentemente considerado um benchmark de acções. Muitos produtos derivados existem para permitir a especulação ou hedging sobre o índice. Em particular, o SampP500 E-Mini Contrato de Futuros de Índices é um meio extremamente líquido de negociar o índice. Nesta seção, vamos usar três classificadores para prever a direção do preço de fechamento no dia N com base apenas na informação de preços conhecida no dia N-1. Um movimento direcional ascendente significa que o preço de fechamento em N é maior que o preço em N-1, enquanto um movimento descendente implica um preço de fechamento em N menor que em N-1. Se pudermos determinar a direção do movimento de uma forma que excede significativamente uma taxa de sucesso de 50, com baixo erro e uma boa significância estatística, então estamos no caminho para formar uma estratégia de negociação sistemática básica com base em nossas previsões. Nesta fase não estavam preocupados com os mais atualizados algoritmos de classificação de aprendizagem mecânica. Agora estavam apenas introduzindo conceitos e tão bem começar a discussão sobre a previsão com alguns métodos elementares. Regressão logística A primeira técnica que consideraremos é regressão logística (LR). No nosso caso, vamos usar 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 (os retornos de porcentagem retardada). O modelo fornece a probabilidade de que um determinado dia (seguinte) será categorizado como Up ou Down. Nesta implementação, escolhemos atribuir cada dia como Up se a probabilidade exceder 0,5. Poderíamos usar um limiar diferente, mas por simplicidade escolhi 0,5. LR utiliza a fórmula logística para modelar a probabilidade de obter um Up Day (YU) com base nos fatores de atraso (L1, L2): A função logística é usada porque fornece uma probabilidade entre 0,1 para todos os valores de L1 e L2, Ao contrário da regressão linear onde as probabilidades negativas podem ser geradas no mesmo ajuste. Para ajustar o modelo (isto é, estimar os coeficientes betai) é utilizado o método de máxima verossimilhança. Felizmente para nós, a implementação da montagem e previsão do modelo LR é tratada pela biblioteca scikit-learn. Análise Discriminante Linear A técnica seguinte utilizada é Análise Discriminante Linear (LDA). LDA difere de LR porque em LR nós modelamos P (YUL1, L2) como uma distribuição condicional da resposta Y dado os preditores Li, usando uma função logística. Em LDA a distribuição das variáveis ​​Li é modelada separadamente, dado Y, e P (YUL1, L2) é obtido através do Teorema de Bayes. Essencialmente, o LDA resulta da suposição de que os preditores são extraídos de uma distribuição Gaussiana multivariada. Após calcultar estimativas para os parâmetros dessa distribuição, os parâmetros podem ser introduzidos no Teorema de Bayes para fazer previsões a respeito de qual classe uma observação pertence. LDA assume que todas as classes compartilham a mesma matriz de covariância. Eu não vou me debruçar sobre as fórmulas para estimar a distribuição ou probabilidades posteriores que são necessárias para fazer previsões, como mais uma vez scikit-aprender lida com isso para nós. Quadratic Discriminant Analysis A Quadratic Discriminant Analysis (QDA) está intimamente relacionada com a LDA. A diferença significativa é que cada classe pode agora possuir sua própria matriz de covariância. QDA geralmente executa 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). QDA, por outro lado, funciona bem quando o conjunto de treinamento é grande (isto é, a variância é menos preocupante). O uso de um ou outro, em última análise, se resume ao trade-off de viés-variância. Tal como acontece com LR e LDA, scikit-aprender cuida da implementação QDA, por isso só precisamos fornecê-lo com trainingtest dados para estimação de parâmetros e previsão. Implementação do Python Para a implementação destes meteorologistas, faremos uso do NumPy. Pandas e scikit-aprender. Anteriormente, eu escrevi um tutorial sobre como instalar essas bibliotecas. Ive pesadamente comentou o código em si por isso deve ser fácil de verificar o que está acontecendo. O primeiro passo é importar os módulos relevantes e bibliotecas. Vamos importar o LogisticRegression. LDA e QDA classificadores para este previsor: Agora que as bibliotecas são importadas, precisamos criar um pandas DataFrame que contém a porcentagem de retornos para um número anterior de dias (padrão de cinco). Createlaggedseries tomará um símbolo de estoque (como reconhecido pelo Yahoo Finance) e criará um DataFrame atrasado durante o período especificado: A próxima função auxiliar é projetada para criar um percentage de porcentagem para cada modelo, eliminando o código duplicado. Baseia-se no fato de que os objetos Regressão Logística, LDA e QDA têm os mesmos métodos (ajuste e previsão). A taxa de acerto é saída para o terminal: Finalmente, nós amarrá-lo juntamente com uma função principal. Nesse caso, tentaríamos prever a direção do mercado de ações norte-americano 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 eo Analisador Discriminante Linear foram capazes de Ganhar uma taxa de 56 hit. No entanto, o Analisador Quadratic Discriminant foi capaz de melhorar em ambos para produzir uma taxa de 60 hit. Para o período analisado, isso é provavelmente devido ao fato de que há alguma não-linearidade na relação entre os fatores retardados ea direção que não está bem capturada na análise linear. Assim, há esperança de que possamos ser capazes de prever parcialmente o mercado de ações dos EUA. Há algumas advertências a esta metodologia de previsão: Nós não usamos qualquer forma de validação cruzada para reduzir erros de montagem. Um preparador de produção exigiria que essa análise fosse considerada robusta. O forecaster só foi treinado em dados entre 2001-2004 inclusive. Dados de mercado de ações mais recentes podem ter precisão de previsão substancialmente diferente. Nós havent realmente tentou trocar fora esta informação. Em particular, como seria realmente executar negócios. Usaria o futuro do e-mini dos EUA Se usássemos as ordens do Market-On-Open (MOO) ou do Market-On-Close (MOC) Também precisamos considerar os custos de transação. Em artigos subseqüentes, consideraremos essas questões em maior profundidade. Um aviso sobre previsões aleatórias Nesta seção, eu quero destacar abertamente o problema da significância estatística quando se lida com meteorologistas. Além do forecaster descrito acima eu também gerou uma série de previsão baseada unicamente no sinal de sorteios aleatórios de uma distribuição normal padrão. Observe que, no mesmo período, produziu uma taxa de acerto de 53,4 e, no entanto, o método utilizado para gerar a série não é essencialmente diferente de lançar uma moeda. Tenha isso em mente sempre que você realizar procedimentos de previsão, pois pode levar a dire Se não forem tidos em conta. Nos artigos a seguir, consideraremos classificadores de previsão não-lineares supervisionados mais avançados, como redes de neurônios artificiais (ANN) e máquinas de vetores de suporte (SVM). Com uma estabilidade de técnicas de aprendizado de máquina à nossa disposição, poderemos usar métodos de conjunto para produzir uma precisão de previsão e robustez que às vezes pode exceder as de qualquer previsor individual. Basta começar com Quantitative TradingAs você pode ver o acima, os retornos para o EURUSD desviar significativamente de uma distribuição normal (mais sobre os testes de normalidade em um post futuro) e já podemos ver algumas características da distribuição EURUSD. Por exemplo, podemos ver que a distribuição é inclinada para o território positivo (skewness0.076) ea distribuição é fat-tailed (kurtosis1.52). Nenhum desses dois fatos deve ser surpreendente para qualquer um que tenha feito análise de séries temporais, como séries de tempo financeiro são bem conhecidos por ser fat-tailed. No entanto, vale a pena notar que o grau de kurtosis e skewness mudar muito dependendo da classe de ativos e símbolo you8217re estudar. Na próxima parte dessas séries, vamos ver como diferentes símbolos Forex e não-Forex se comparam dentro dessa mesma análise (além de algumas estatísticas adicionais) e como essas estatísticas estão relacionadas com nossa capacidade de gerar sistemas de negociação historicamente rentáveis ​​usando esses dados. Você vai ver que as distribuições que têm certas características facilmente levam a um grande número potencial de estratégias historicamente rentáveis, enquanto as distribuições que têm outras características são muito difíceis de encontrar bordas. Para aqueles de vocês que são bem versados ​​em estatísticas, sinta-se à vontade para contribuir com os aspectos básicos de análise estatística que você achar útil e quais você gostaria que eu explicasse dentro de um post futuro. Se você gostaria de aprender mais sobre meu trabalho e como você também pode usar a análise de séries temporais para desenvolver estratégias de negociação, por favor considere se juntar a Asirikuy. Um site cheio de vídeos educacionais, sistemas de negociação, desenvolvimento e uma abordagem sólida, honesta e transparente para o comércio automatizado em geral. Espero que tenha gostado deste artigo. O) 3 Responses to 8220Using R em Algorithmic Trading: Caracterização simples de séries temporais. Part One8221 8230 parte uma desta série de posts que 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 aconselharia você a ler os meus dois anteriores (1. 2) tutoriais R sobre a análise de séries de tempo básica, de modo que você está familiarizado com alguns básicos R 8230 desculpe, mas estou enfrentando este problema: Erro no plot. window 8230). Precisa de valores finitos 8216xlim8217 Além disso: Mensagens de aviso: 1: Em min (x). Sem argumentos não faltantes para min retornando Inf 2: Em max (x). Sem argumentos não faltando para max retornando - Inf 3: Em min (x). Sem argumentos não faltantes para min retornando Inf 4: Em max (x). Nenhum argumento não faltando para o retorno máximo - Inf gt dataset plot (datasetClose)

No comments:

Post a Comment