Sunday, 15 April 2018

Estratégias de negociação séries temporais


Guia do iniciante para análise de séries temporais.


Guia do iniciante para análise de séries temporais.


Nos últimos anos, analisamos várias ferramentas para nos ajudar a identificar padrões exploráveis ​​nos preços dos ativos. Em particular, consideramos a econometria básica, a aprendizagem estatística de máquina e as estatísticas Bayesianas.


Embora sejam todas ótimas ferramentas modernas para análise de dados, a grande maioria da modelagem de ativos no setor ainda faz uso da análise estatística de séries temporais. Neste artigo, vamos examinar o que é análise de séries temporais, delinear seu escopo e aprender como podemos aplicar as técnicas a várias frequências de dados financeiros.


O que é análise de séries temporais?


Em primeiro lugar, uma série temporal é definida como uma quantidade que é medida sequencialmente no tempo ao longo de algum intervalo.


Em sua forma mais ampla, a análise de séries temporais tem a ver com inferir o que aconteceu com uma série de pontos de dados no passado e tentar prever o que acontecerá a ele no futuro.


No entanto, vamos adotar uma abordagem estatística quantitativa para séries temporais, assumindo que nossas séries temporais são realizações de seqüências de variáveis ​​aleatórias. Ou seja, vamos supor que existe algum processo de geração subjacente para nossa série temporal baseada em uma ou mais distribuições estatísticas das quais essas variáveis ​​são extraídas.


A análise de séries temporais tenta entender o passado e prever o futuro.


Tal seqüência de variáveis ​​aleatórias é conhecida como um processo estocástico de tempo discreto (DTSP). Na negociação quantitativa, estamos preocupados em tentar encaixar modelos estatísticos nessas DTSPs para inferir relações subjacentes entre séries ou prever valores futuros, a fim de gerar sinais de negociação.


Séries temporais em geral, incluindo aquelas fora do mundo financeiro, geralmente contêm os seguintes recursos:


Tendências - Uma tendência é um movimento direcional consistente em uma série temporal. Essas tendências serão determinísticas ou estocásticas. O primeiro nos permite fornecer uma base lógica para a tendência, enquanto o segundo é uma característica aleatória de uma série que dificilmente poderemos explicar. As tendências aparecem frequentemente em séries financeiras, particularmente em preços de commodities, e muitos fundos de Consultoria de Negociação de Commodities (CTA) usam modelos sofisticados de identificação de tendências em seus algoritmos de negociação. Variação Sazonal - Muitas séries temporais contêm variações sazonais. Isso é particularmente verdadeiro em séries que representam vendas de negócios ou níveis climáticos. No financiamento quantitativo, muitas vezes vemos variações sazonais nas commodities, particularmente aquelas relacionadas às estações de cultivo ou variações anuais de temperatura (como o gás natural). Dependência Serial - Uma das características mais importantes das séries temporais, particularmente das séries financeiras, é a da correlação serial. Isso ocorre quando as observações de séries temporais que estão próximas no tempo tendem a ser correlacionadas. Agrupamento de volatilidade é um aspecto da correlação serial que é particularmente importante na negociação quantitativa.


Como podemos aplicar análise de séries temporais em finanças quantitativas?


Nosso objetivo como pesquisadores quantitativos é identificar tendências, variações sazonais e correlação usando métodos estatísticos de séries temporais e, por fim, gerar sinais de negociação ou filtros baseados em inferência ou previsões.


Nossa abordagem será:


Previsão e previsão de valores futuros - Para negociar com sucesso, precisaremos prever com precisão os preços futuros dos ativos, pelo menos no sentido estatístico. Simular Série - Uma vez que identificamos propriedades estatísticas de séries temporais financeiras, podemos utilizá-las para gerar simulações de cenários futuros. Isso nos permite estimar o número de negócios, os custos comerciais esperados, o perfil esperado de retornos, o investimento técnico e financeiro exigido em infraestrutura e, portanto, o perfil de risco e a lucratividade de uma estratégia ou portfólio específico. Inferir relacionamentos - A identificação de relacionamentos entre séries temporais e outros valores quantitativos nos permite melhorar nossos sinais de negociação por meio de mecanismos de filtragem. Por exemplo, se pudermos inferir como o spread em um par de moedas estrangeiras varia com o volume de compra / venda, poderemos filtrar quaisquer negociações prospectivas que possam ocorrer em um período em que prevemos uma margem ampla para reduzir os custos de transação.


Além disso, podemos aplicar testes estatísticos (clássicos / frequentistas ou Bayesianos) aos nossos modelos de séries temporais para justificar certos comportamentos, como a mudança de regime nos mercados de ações.


Software de análise de séries temporais.


Até o momento, usamos quase exclusivamente o C ++ e o Python para a implementação de nossa estratégia de negociação. Ambas as linguagens são "ambientes de primeira classe" para escrever uma pilha de negociação inteira. Ambos contêm muitas bibliotecas e permitem uma construção "ponta-a-ponta" de um sistema de negociação unicamente dentro dessa linguagem.


Infelizmente, o C ++ e o Python não possuem bibliotecas estatísticas extensas. Esta é uma das suas deficiências. Por essa razão, usaremos o ambiente estatístico R como meio de realizar pesquisas de séries temporais. R é bem adequado para o trabalho devido à disponibilidade de bibliotecas de séries temporais, métodos estatísticos e recursos simples de plotagem.


Aprenderemos R em uma forma de solução de problemas, em que novos comandos e sintaxes serão introduzidos conforme necessário. Felizmente, há muitos tutoriais extremamente úteis para o R disponível na internet e vou destacá-los à medida que passarmos pela sequência de artigos de análise de séries temporais.


Roteiro de Análise de Séries Temporais QuantStart.


Até à data, os artigos anteriores sobre os tópicos da aprendizagem estatística, econometria e análise Bayesiana, foram introdutórios na sua natureza e não consideraram a aplicação de tais técnicas às informações modernas de preços de alta frequência.


Para aplicar algumas das técnicas acima aos dados de freqüência mais alta, precisamos de uma estrutura matemática para unificar nossa pesquisa. A análise de séries temporais fornece essa unificação e nos permite discutir modelos separados dentro de um cenário estatístico.


Eventualmente, utilizaremos ferramentas bayesianas e técnicas de aprendizado de máquina em conjunto com os métodos a seguir para prever o nível e direção do preço, agir como filtros e determinar a "mudança de regime", ou seja, determinar quando nossa série temporal mudou seu comportamento estatístico subjacente.


Nosso roteiro de séries temporais é o seguinte. Cada um dos tópicos abaixo formará seu próprio artigo ou conjunto de artigos. Depois de examinarmos esses métodos em profundidade, estaremos em condições de criar alguns modelos modernos sofisticados para examinar dados de alta frequência.


Introdução à série temporal - Este artigo descreve a área de análise de séries temporais, seu escopo e como ela pode ser aplicada a dados financeiros. Correlação - Um aspecto absolutamente fundamental da modelagem de séries temporais é o conceito de correlação serial. Vamos defini-lo e descrever uma das maiores armadilhas da análise de séries temporais, a saber, que "correlação não implica causalidade". Previsão - Nesta seção, vamos considerar o conceito de previsão, que é fazer previsões de direção ou nível futuro para uma determinada série temporal e como ela é executada na prática. Modelos Estocásticos - Nós gastamos algum tempo considerando modelos estocásticos no campo de precificação de opções no site, ou seja, com Movimento Browniano Geométrico e Volatilidade Estocástica. Nós estaremos olhando para outros modelos, incluindo o ruído branco e modelos autoregressivos. Regressão - Quando temos tendências determinísticas (em oposição a estocásticas) nos dados, podemos justificar sua extrapolação usando modelos de regressão. Consideraremos a regressão linear e não linear e consideraremos a correlação serial. Modelos estacionários - Os modelos estacionários assumem que as propriedades estatísticas (ou seja, a média e a variância) das séries são constantes no tempo. Podemos usar modelos Moving Average (MA), bem como combiná-los com modelos autoregressivos para formar modelos ARMA. Modelos não estacionários - Muitas séries temporais financeiras são não estacionárias, ou seja, têm média e variação variadas. Em particular, os preços dos ativos geralmente apresentam períodos de alta volatilidade. Para essas séries, precisamos usar modelos não estacionários, como ARIMA, ARCH e GARCH. Modelagem Multivariada - Consideramos modelos multivariados no QuantStart no passado, ou seja, quando consideramos pares de ações que revertem a média. Nesta seção, definiremos de forma mais rigorosa a cointegração e examinaremos outros testes para ela. Consideraremos também modelos vetoriais autorregressivos (VAR) [não confundir com Value-at-Risk!]. Modelos de espaço de estados - State Space Modeling empresta uma longa história de teoria de controle moderna usada em engenharia para nos permitir modelar séries temporais com parâmetros variáveis ​​rapidamente (como a variável $ \ beta $ slope entre dois ativos cointegrados em uma regressão linear ). Em particular, vamos considerar o famoso Filtro de Kalman e o Modelo de Markov Oculta. Este será um dos principais usos da análise bayesiana em séries temporais.


Como isso se relaciona com outros artigos estatísticos QuantStart?


Meu objetivo com o QuantStart sempre foi tentar delinear o arcabouço matemático e estatístico para análise quantitativa e negociação quantitativa, desde o básico até as técnicas modernas mais avançadas.


Até hoje, passamos a maior parte do tempo com técnicas introdutórias e intermediárias. No entanto, estamos agora voltando nossa atenção para as técnicas avançadas recentes utilizadas em empresas quantitativas.


Isso não só ajudará aqueles que desejam ganhar uma carreira na indústria, mas também dará aos comerciantes de varejo quantitativos entre você um conjunto de ferramentas muito mais amplo de métodos, bem como uma abordagem unificadora para a negociação.


Tendo trabalhado anteriormente no setor, posso afirmar com certeza que uma fração substancial de profissionais de fundos quantitativos usa técnicas muito sofisticadas para "caçar por alfa".


No entanto, muitas dessas empresas são tão grandes que não estão interessadas em estratégias de "capacidade restrita", ou seja, aquelas que não são escalonáveis ​​acima de US $ 1-2 milhões. Como varejistas, se podemos aplicar uma estrutura comercial sofisticada a essas áreas, podemos alcançar lucratividade a longo prazo.


Eventualmente, combinaremos nossos artigos sobre análise de séries temporais, com a abordagem bayesiana de testes de hipóteses e seleção de modelos, juntamente com códigos C ++, R e Python otimizados, para produzir modelos de séries temporais não-estacionárias e não-lineares que podem ser negociados em alta. freqüência.


Agora que o software QSForex abordou a viabilidade de backtesting de alta frequência de vários pares de moedas, temos uma estrutura pronta para testar esses modelos, pelo menos nos mercados de câmbio.


O próximo artigo da série discutirá a correlação e por que é um dos aspectos mais fundamentais da análise de séries temporais.


A Quantcademy.


Participe do portal de associação da Quantcademy que atende à crescente comunidade de traders de quantificação de varejo e aprenda como aumentar a lucratividade de sua estratégia.


Negociação Algorítmica Bem Sucedida.


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


Comércio Algorítmico Avançado.


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


Comércio Algorítmico Avançado.


Finalmente. implemente estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatística bayesiana com as linguagens de programação de código aberto R e Python, para obter resultados diretos e acionáveis ​​na lucratividade de sua estratégia.


Tenho certeza que você notou a supersaturação de tutoriais iniciantes e referências de estatísticas / aprendizado de máquina disponíveis na Internet.


Poucos tutoriais realmente informam como aplicá-los às suas estratégias de negociação algorítmica de uma maneira completa.


Existem centenas de livros didáticos, trabalhos de pesquisa, blogs e posts em fóruns sobre análise de séries temporais, econometria, aprendizado de máquina e estatística Bayesiana.


Quase todos eles se concentram na teoria.


E quanto à implementação prática? Como você usa esse método para sua estratégia? Como você realmente programa essa fórmula em software?


Eu escrevi Advanced Algorithmic Trading para resolver esses problemas.


Ele fornece aplicação no mundo real de análise de séries temporais, aprendizado estatístico de máquina e estatística Bayesiana, para produzir diretamente estratégias de negociação lucrativas com software livre disponível gratuitamente.


Mais de 500 páginas de técnicas quantitativas profissionais de gestão de risco e negociação Métodos avançados de quantização implementados em código R e Python de fácil leitura Faça o download do Índice.


Instant PDF download ebook - sem esperar pela entrega Lifetime no-quibble garantia de devolução do dinheiro 100% - sem risco para você! Baixe um capítulo de amostra.


Você está feliz com a programação básica, mas quer aplicar suas habilidades para uma negociação mais avançada.


Se você leu meu livro anterior, Successful Algorithmic Trading, você terá a chance de aprender algumas habilidades básicas de Python e aplicá-las a estratégias simples de negociação.


No entanto, você cresceu além de estratégias simples e quer começar a melhorar sua lucratividade e introduzir algumas técnicas robustas e profissionais de gerenciamento de risco ao seu portfólio.


No Advanced Algorithmic Trading, damos uma olhada detalhada em algumas das bibliotecas de finanças de quantias mais populares para Python e R, incluindo pandas, scikit-learn, statsmodels, QSTrader, timeseries, rugarch e forecast entre muitos outros.


Usaremos essas bibliotecas para analisar uma variedade de métodos nos campos de estatística bayesiana, análise de séries temporais e aprendizado de máquina, usando esses métodos diretamente na pesquisa de estratégia de negociação.


Aplicamos essas ferramentas em um cenário de backtesting end-to-end e de gerenciamento de riscos, usando as bibliotecas R e QSTrader, permitindo que você "encaixe-as" facilmente em sua infra-estrutura comercial atual.


Não há necessidade de software Quant Off-The-Shelf caro.


Você pode ter gasto muito dinheiro comprando algumas ferramentas de backtesting sofisticadas no passado e, finalmente, achou-as difíceis de usar e não relevantes para o seu estilo de negociação quant.


A Advanced Algorithmic Trading faz uso de softwares de código aberto completamente gratuitos, incluindo bibliotecas Python e R, que têm comunidades bem informadas e acolhedoras por trás deles.


Mais importante, aplicamos essas bibliotecas diretamente aos problemas de negociação de quant reais, como geração alfa e gerenciamento de risco de portfólio.


"Mas eu não tenho doutorado em estatística."


Embora o aprendizado de máquina, a análise de séries temporais e as estatísticas bayesianas sejam tópicos quantitativos, eles também contêm uma riqueza de métodos intuitivos, muitos dos quais podem ser explicados sem recorrer à matemática avançada.


No Advanced Algorithmic Trading, fornecemos não apenas a teoria para ajudá-lo a entender o que você está implementando (e aprimorá-lo você mesmo!), Mas também tutoriais detalhados de codificação passo-a-passo que pegam as equações e as aplicam diretamente a reais estratégias .


Assim, se você está mais confortável codificando do que com matemática, você pode facilmente seguir os trechos e começar a trabalhar para melhorar a lucratividade de sua estratégia.


Sobre o autor.


Então, quem está por trás disso?


Oi! Meu nome é Mike Halls-Moore e sou o cara por trás do QuantStart e do pacote 'Advanced Algorithmic Trading'.


Desde que trabalhei como desenvolvedor de negociação quantitativa em um fundo de hedge, sou apaixonado pela pesquisa e implementação de negociações quantitativas.


Iniciei a comunidade QuantStart e escrevi "Advanced Algorithmic Trading" para expor os praticantes de varejo aos métodos usados ​​em fundos de hedge quantitativos e empresas de gestão de ativos.


Quais tópicos estão incluídos no livro?


Análise de Séries Temporais.


Você receberá um guia completo para iniciantes para análise de séries temporais, incluindo características de retorno de ativos, correlação serial, modelos de ruído branco e passeio aleatório.


Modelos de Séries Temporais.


Fornecerei uma discussão completa dos modelos de média móvel regressiva (ARMA) e autorregressivo condicional heterocedástico (ARCH) usando o ambiente estatístico R.


Séries Temporais Cointegradas.


Continuaremos a discussão sobre séries temporais cointegradas da Successful Algorithmic Trading e consideraremos o teste de Johansen, aplicando-o às estratégias da ETF.


Modelos de espaço de estado e filtros de Kalman.


Você encontrará uma discussão aprofundada sobre como o Filtro de Kalman pode ser usado para criar proporções de hedge dinâmicas entre pares de ativos do ETF, usando ferramentas Python disponíveis gratuitamente.


Modelos ocultos de Markov.


Você terá uma introdução aos Modelos Ocultos de Markov e como eles podem ser aplicados a dados financeiros para fins de detecção de regime.


Aprendizado de Máquina.


Descobriremos exatamente o que é "aprendizado de máquina estatística", incluindo o aprendizado supervisionado e não supervisionado, e como eles podem nos ajudar a produzir estratégias de negociação sistemáticas lucrativas.


Regressão linear.


Inicialmente, usaremos a técnica familiar de regressão linear, tanto no sentido Bayesiano quanto clássico, como forma de ensinar conceitos mais avançados de aprendizado de máquina.


O tradeoff de viés-variância.


Falarei sobre um dos conceitos mais importantes no aprendizado de máquina, ou seja, o trade-off de viés-variância e como podemos minimizar seus efeitos usando a validação cruzada.


Métodos Baseados em Árvore.


Discutirei um dos modelos mais versáteis de famílias ML, ou seja, os modelos Decision Tree, Random Forest e Boosted Tree, e como podemos aplicá-los para prever retornos de ativos.


Métodos do Kernel.


Discutiremos a família de Classificadores de Vetores de Suporte, incluindo a Máquina de Vetores de Suporte, e como podemos aplicá-los a séries de dados financeiros.


Métodos não supervisionados.


Explicarei como você pode aplicar técnicas de aprendizado não supervisionadas, como o K-Means Clustering, a dados de barra financeiros do OHLCV, a fim de agrupar "velas" em regimes.


Processamento de linguagem natural.


Discutiremos como aplicar métodos de aprendizado de máquina a um grande corpus de documentos em linguagem natural e prever categorias em dados de teste não vistos, como um precursor de modelos baseados em sentimentos.


Estatística Bayesiana.


Fornecerei uma introdução completa aos modelos de probabilidade bayesianos, incluindo uma análise detalhada da inferência, que forma a base para modelos mais complexos ao longo do livro.


Markov-Chain Monte Carlo.


Você aprenderá sobre o MCMC, em particular o algoritmo Metropolis-Hastings, que é uma das principais técnicas de amostragem em estatística bayesiana, usando o software PyMC3.


Volatilidade Estocástica Bayesiana.


Examinaremos os modelos de volatilidade estocástica em uma estrutura bayesiana, usando-os para identificar períodos de grande volatilidade do mercado para o gerenciamento de riscos.


Quais habilidades técnicas você aprenderá?


R: Análise de Séries Temporais.


Você será apresentado ao R, que é um dos ambientes de pesquisa mais amplamente usados ​​em fundos de hedge quantitativos e gerentes de ativos. Vamos fazer uso de muitas bibliotecas, incluindo timeseries, rugarch e previsão.


Decaimento da Estratégia.


Usaremos R e Python para estimar o desempenho da nossa estratégia ao longo do tempo, permitindo-nos produzir curvas de decaimento de estratégia. Isso ajudará a determinar se uma estratégia precisa ser retirada ou se ainda é viável e lucrativa.


Python: Scikit-Learn.


Nós nos aprofundaremos nos recursos avançados da biblioteca ML do Python, scikit-learn, incluindo otimização de parâmetros, validação cruzada, paralelização e produção de modelos preditivos sofisticados.


Backtesting robusto.


Como criar backtests eficientes vetorizados e orientados a eventos para pesquisa preliminar, com suposições de custos de transação realistas e manipulação de posição, usando R e a popular biblioteca QSTrader.


Python: PyMC3.


Apresentaremos o PyMC3, o kit de ferramentas de modelagem bayesiana flexível ou "Programação probabilística" e o amostrador Markov Chain Monte Carlo para nos ajudar a realizar inferências bayesianas efetivas sobre dados de séries temporais financeiras.


Gerenciamento de riscos.


Continuaremos nossa discussão sobre gerenciamento de risco de livros anteriores e analisaremos a detecção de regime e a volatilidade estocástica como meio de determinar nosso nível de risco atual e alocação de portfólio.


Quais estratégias de negociação e gerenciamento de riscos você implementará?


Carteiras Mensais de Reequilíbrio.


Apresentaremos nossa estrutura de backtesting com carteiras FEF de longo prazo reajustadas mensalmente, em vários mercados financeiros, comparando nossos resultados a um benchmark.


ARIMA + GARCH.


Vamos olhar para uma técnica de séries temporais lineares baseada no modelo ARIMA + GARCH sobre uma série de índices de ações e ver como o desempenho da estratégia muda ao longo do tempo.


Filtros de Kalman para negociação de pares.


Aplicaremos o Filtro Bayman de Kalman a séries temporais cointegradas para estimar dinamicamente a relação de proteção entre pares de ativos, melhorando a estimativa estática de uma relação de hedge tradicional.


Detecção de regime.


Usaremos modelos ocultos de Markov para produzir um modelo de detecção de regime de volatilidade. Isso será usado para vetar ordens em uma tendência de curto prazo seguindo a estratégia para aumentar a lucratividade.


O ativo retorna a previsão usando o Aprendizado de máquina.


Usaremos várias técnicas de aprendizado de máquina, como a Random Forests, para prever a direção e o nível do ativo, regredindo em relação a outros recursos transformados.


Análise de sentimentos.


Usaremos os dados do fornecedor de análise de sentimento para gerar um gerador de sinal de negociação baseado em sentimento, aplicando-o a um conjunto de ações S & amp; P500 em vários setores do mercado.


Onde você pode aprender mais sobre nós?


Nós escrevemos mais de 200 posts no QuantStart cobrindo quant trading, quant careers, quant development, data science e machine learning. Você pode ler os arquivos para saber mais sobre nossa metodologia e estratégias de negociação.


E se você não estiver feliz com o livro?


Enquanto achamos que você encontrará o Advanced Algorithmic Trading muito útil em sua educação de negociação quantitativa, também acreditamos que, se você não estiver 100% satisfeito com o livro por qualquer motivo, poderá devolvê-lo sem perguntas para um reembolso total.


Você vai obter uma cópia impressa do livro?


Não. Neste estágio, o livro está disponível apenas no formato Adobe PDF, enquanto o próprio código é fornecido como um arquivo zip de scripts R e Python totalmente funcionais, se você adquirir a opção "Livro + Software".


Qual pacote você deve comprar?


Isso depende principalmente do seu orçamento. O livro com código-fonte extra completo é o melhor se você quiser entrar no código imediatamente, mas o livro em si contém uma enorme quantidade de trechos de código que ajudarão no seu processo de negociação de quantia.


Podemos ser contatados?


Claro! Se você ainda tiver dúvidas depois de ler esta página, entre em contato e faremos o melhor para fornecer uma resposta necessária. No entanto, por favor, dê uma olhada na lista de artigos, que também pode ajudá-lo.


Você precisará de um diploma em matemática?


A maior parte do livro requer uma compreensão de cálculo, álgebra linear e probabilidade. No entanto, muitos dos métodos são intuitivos e o código pode ser seguido sem recurso à matemática avançada.


Rumo a uma estratégia de negociação não linear para séries temporais financeiras.


Uma nova estratégia comercial baseada em técnicas de reconstrução do espaço de estados é proposta. A técnica usa a evolução do volume do espaço de estados e sua taxa de mudança como indicadores. Esta metodologia foi testada off-line usando dezoito séries temporais de alta frequência com e sem custos de transação. Em nossa análise, um valor médio ótimo de aproximadamente 25% de ganho pode ser obtido nas séries sem custos de transação e um valor médio ótimo de aproximadamente 11% de ganho, assumindo 0,2% de custos em cada transação.


Escolha uma opção para localizar / acessar este artigo:


Verifique se você tem acesso através de suas credenciais de login ou de sua instituição.


4 estratégias de negociação ativas comuns.


Negociação ativa é o ato de comprar e vender títulos com base em movimentos de curto prazo para lucrar com os movimentos de preços em um gráfico de ações de curto prazo. A mentalidade associada a uma estratégia de negociação ativa difere da estratégia de compra e manutenção de longo prazo.


A estratégia buy-and-hold emprega uma mentalidade que sugere que os movimentos de preços a longo prazo superam os movimentos de preços no curto prazo e, como tal, os movimentos de curto prazo devem ser ignorados. Os operadores ativos, por outro lado, acreditam que os movimentos de curto prazo e capturando a tendência do mercado são onde os lucros são feitos.


Existem vários métodos usados ​​para realizar uma estratégia de negociação ativa, cada um com ambientes de mercado apropriados e riscos inerentes à estratégia.


Aqui estão quatro das estratégias de negociação ativas mais comuns e os custos internos de cada estratégia. (A negociação ativa é uma estratégia popular para aqueles que tentam superar a média do mercado. Para saber mais, confira Como superar o mercado.)


1. Dia de Negociação.


O day trading é talvez o estilo de negociação ativo mais conhecido. Muitas vezes é considerado um pseudônimo de negociação ativa em si. O dia de negociação, como o próprio nome indica, é o método de comprar e vender títulos dentro do mesmo dia. As posições são fechadas no mesmo dia em que são tomadas e nenhuma posição é mantida durante a noite. Tradicionalmente, o comércio diário é feito por traders profissionais, como especialistas ou criadores de mercado. No entanto, o comércio eletrônico abriu esta prática para os comerciantes novatos. (Para leitura relacionada, consulte Estratégias de negociação diurna para iniciantes.)


[Aprender qual estratégia vai funcionar melhor para você é um dos primeiros passos que você precisa dar como um aspirante a trader. Se você estiver interessado em day trading, o Day Trader Course da Investopedia Academy pode ensinar uma estratégia comprovada que inclui seis diferentes tipos de negócios. ]


2. Posicionar Negociação.


Alguns realmente consideram a negociação de posição uma estratégia de compra e manutenção e não negociação ativa. No entanto, a negociação de posição, quando feita por um trader avançado, pode ser uma forma de negociação ativa. A negociação de posição usa gráficos de prazo mais longo - em qualquer lugar de diário a mensal - em combinação com outros métodos para determinar a tendência da direção atual do mercado. Esse tipo de negociação pode durar de vários dias a várias semanas e, às vezes, mais, dependendo da tendência. Os operadores de tendências procuram sucessivos máximos ou máximos mais altos para determinar a tendência de um título. Ao seguir em frente e andar na "onda", os comerciantes de tendência pretendem se beneficiar tanto dos movimentos ascendentes quanto negativos dos movimentos do mercado. Os operadores de tendências procuram determinar a direção do mercado, mas não tentam prever nenhum nível de preço. Normalmente, os comerciantes de tendência saltam na tendência depois que ela se estabeleceu, e quando a tendência se rompe, eles geralmente saem da posição. Isso significa que, em períodos de alta volatilidade do mercado, a negociação de tendência é mais difícil e suas posições geralmente são reduzidas.


3. Negociação Swing.


Quando uma tendência quebra, os operadores de swing normalmente entram no jogo. No final de uma tendência, normalmente há alguma volatilidade de preços, à medida que a nova tendência tenta se estabelecer. Os negociadores de Swing compram ou vendem à medida que a volatilidade dos preços se instala. As negociações de Swing são geralmente realizadas por mais de um dia, mas por um período mais curto do que as negociações de tendência. Os operadores de swing geralmente criam um conjunto de regras de negociação baseadas em análises técnicas ou fundamentais. Essas regras comerciais ou algoritmos são projetados para identificar quando comprar e vender um título. Embora um algoritmo de negociação oscilante não precise ser exato e prever o pico ou o vale de um movimento de preço, ele precisa de um mercado que se mova em uma direção ou outra. Um mercado com limite de faixa ou lateral é um risco para os comerciantes de swing. (Para mais, veja Introdução à Swing Trading.)


4. Escalpelamento.


Escalpelamento é uma das estratégias mais rápidas empregadas pelos comerciantes ativos. Inclui a exploração de várias lacunas de preços causadas por spreads bid-ask e fluxos de pedidos. A estratégia geralmente funciona fazendo o spread ou comprando ao preço de compra e vendendo ao preço de venda para receber a diferença entre os dois pontos de preço. Scalpers tentam manter suas posições por um curto período, diminuindo assim o risco associado à estratégia. Além disso, um scalper não tenta explorar grandes movimentos ou mover grandes volumes. Em vez disso, eles tentam tirar proveito de pequenos movimentos que ocorrem com frequência e movem volumes menores com mais frequência. Como o nível de lucros por negociação é pequeno, os cambistas buscam mais mercados líquidos para aumentar a frequência de seus negócios. E, ao contrário dos comerciantes de swing, os cambistas gostam de mercados tranquilos que não são propensos a movimentos repentinos de preços, de modo que podem, potencialmente, fazer o spread repetidamente nos mesmos preços bid / ask. (Para saber mais sobre essa estratégia de negociação ativa, leia Escalpelamento: Pequenos Lucros Rápidos Podem Adicionar.)


Custos Inerentes às Estratégias de Negociação.


Há uma razão para que estratégias de negociação ativas tenham sido empregadas apenas por traders profissionais. Não apenas ter uma corretora interna reduz os custos associados à negociação de alta frequência, mas também garante uma melhor execução do negócio. Comissões mais baixas e melhor execução são dois elementos que melhoram o potencial de lucro das estratégias. Compras significativas de hardware e software são normalmente necessárias para implementar com sucesso essas estratégias. além de dados de mercado em tempo real. Estes custos tornam o comércio ativo um pouco proibitivo para o operador individual, embora não seja totalmente inatingível.


The Bottom Line.


Os comerciantes ativos podem empregar uma ou várias das estratégias acima mencionadas. No entanto, antes de decidir envolver-se nessas estratégias, os riscos e custos associados a cada um precisam ser explorados e considerados. (Para leitura relacionada, consulte as Técnicas de Gerenciamento de Risco para Comerciantes Ativos.)


Redes neurais para negociação algorítmica. Previsão simples de séries temporais.


ATUALIZAÇÃO IMPORTANTE:


Esta é a primeira parte das minhas experiências na aplicação de aprendizado profundo ao financiamento, em particular ao comércio algorítmico.


Eu quero implementar o sistema de negociação do zero baseado apenas em abordagens de aprendizagem profunda, então para qualquer problema que temos aqui (previsão de preço, estratégia de negociação, gerenciamento de risco) nós vamos usar diferentes variações de redes neurais artificiais (RNAs) e verificar quão bem elas podem lidar com isso.


Agora pretendo trabalhar nas próximas seções:


Previsão de séries temporais com dados brutos Previsão de séries temporais com recursos personalizados Otimização de hiperparâmetros Implementação de estratégia de negociação, backtesting e gerenciamento de riscos Estratégias de negociação mais sofisticadas, aprendizado de reforço Indo em direto, API de corretores, ganhando dinheiro (l̶o̶s̶i̶n̶g̶).


Eu recomendo fortemente que você verifique o código e o IPython Notebook neste repositório.


Nesta primeira parte, quero mostrar como MLPs, CNNs e RNNs podem ser usados ​​para previsão de séries temporais financeiras. Nesta parte, não vamos usar nenhuma engenharia de recursos. Vamos considerar apenas o conjunto de dados históricos dos movimentos do preço do índice S & P 500. Temos informações de 1950 a 2016 sobre preços abertos, próximos, altos e baixos para todos os dias do ano e volume de negócios. Em primeiro lugar, vamos tentar apenas prever preço próximo no final do dia seguinte, em segundo lugar, vamos tentar prever o retorno (preço próximo - preço aberto). Faça o download do conjunto de dados do Yahoo Finance ou deste repositório.


Problema definiton.


Consideraremos nosso problema como 1) problema de regressão (tentando prever preço exatamente próximo ou retorno no dia seguinte) 2) problema de classificação binária (o preço subirá [1; 0] ou diminuirá [0; 1]).


Para treinar NNs, vamos usar o framework Keras.


Primeiro, vamos preparar nossos dados para treinamento. Queremos prever o valor de t + 1 com base nas informações de N dias anteriores. Por exemplo, ter preços próximos dos últimos 30 dias no mercado que queremos prever, qual será o preço amanhã, no dia 31.


Usamos primeiro 90% das séries temporais como conjunto de treinamento (consideramos como dados históricos) e duramos 10% como conjunto de testes para avaliação de modelo.


Aqui está um exemplo de carregamento, divisão em amostras de treinamento e pré-processamento de dados de entrada brutos:


Problema de regressão. MLP.


Será apenas perceptron de camada 2-escondida. Número de neurônios ocultos é escolhido empiricamente, vamos trabalhar na otimização de hiperparâmetros nas próximas seções. Entre duas camadas ocultas, adicionamos uma camada de eliminação para evitar overfitting.


O importante é Denso (1), Ativação ("linear") e "mse" na seção de compilação. Queremos uma saída que possa estar em qualquer intervalo (predizemos valor real) e nossa função de perda é definida como erro quadrático médio.


Vejamos o que acontece se apenas passarmos pedaços de 20 dias para fechar preços e prever preço no 21º dia. MSE final = 46,3635263557, mas não é uma informação muito representativa. Abaixo está o gráfico das previsões para os primeiros 150 pontos do conjunto de dados de teste. A linha preta é dados reais, um azul - previsto. Podemos ver claramente que nosso algoritmo não é nem próximo por valor, mas pode aprender a tendência.


Vamos escalar nossos dados usando o método preprocessing. scale () de sklearn para termos a média zero e a variação de unidade da série temporal e treinar o mesmo MLP. Agora temos MSE = 0,0040424330518 (mas é em dados escalados). No gráfico abaixo, você pode ver as séries temporais reais escalonadas (preto) e nossa previsão (azul) para ele:


Para usar este modelo no mundo real, devemos voltar para as séries temporais sem escala. Podemos fazê-lo, multiplicando ou predizendo por desvio padrão de séries temporais que usamos para fazer previsões (20 etapas de tempo não escalonadas) e adicionando seu valor médio:


MSE neste caso é igual a 937.963649937. Aqui está o gráfico de previsões restauradas (vermelho) e dados reais (verde):


Não é ruim, não é? Mas vamos tentar algoritmos mais sofisticados para esse problema!


Problema de regressão. CNN.


Eu não vou mergulhar na teoria das redes neurais convolucionais, você pode conferir esses recursos incríveis:


Vamos definir uma rede neural convolucional de duas camadas (combinação de camadas de convolução e de pool máximo) com uma camada totalmente conectada e a mesma saída da anterior:


Vamos verificar os resultados. MSEs para dados escalados e restaurados são: 0.227074542433; 935.520550172. As parcelas estão abaixo:


Mesmo olhando no MSE em dados escalonados, esta rede aprendeu muito pior. Muito provavelmente, a arquitetura mais profunda precisa de mais dados para treinamento ou é super adaptada devido ao grande número de filtros ou camadas. Vamos considerar esse problema mais tarde.


Problema de regressão. RNN


Como arquitetura recorrente, eu quero usar duas camadas LSTM empilhadas (leia mais sobre LSTMs aqui).


As parcelas das previsões estão abaixo, MSEs = 0,0246238639582; 939.948636707.


A previsão de RNN parece mais com o modelo de média móvel, não pode aprender e prever todas as flutuações.


Então, é um resultado um pouco imprevisível, mas podemos ver que os MLPs funcionam melhor para essa previsão de séries temporais. Vamos verificar o que acontecerá se mudarmos da regressão para o problema de classificação. Agora, usaremos preços não próximos, mas retorno diário (preço de fechamento de preço fechado) e queremos prever se o preço de fechamento é maior ou menor do que o preço de abertura com base nos retornos dos últimos 20 dias.


Problema de classificação. MLP.


O código é alterado apenas um pouco - nós mudamos nossa última camada Densa para ter saída [0; 1] ou [1; 0] e adicione a saída softmax para esperar uma saída probabilística.


Para carregar saídas binárias, altere a seguinte linha de código:


Também mudamos a função de perda para entropia cruzada binária e adicionamos métricas de precisão.


Ah, não é melhor do que adivinhar aleatoriamente (50% de precisão), vamos tentar algo melhor. Confira os resultados abaixo.


Problema de classificação. CNN.


Problema de classificação. RNN


Conclusões


Podemos ver, que tratar a previsão de séries temporais financeiras como o problema de regressão é melhor abordagem, pode aprender a tendência e os preços próximos do real.


O que foi surpreendente para mim é que os MLPs estão tratando melhor os dados de sequência como CNNs ou RNNs, que devem funcionar melhor com séries temporais. Eu explico com um conjunto de dados muito pequeno (


16k time stamps) e hiperparâmetros dummy.


Você pode reproduzir resultados e melhorar usando código do repositório.


Acho que podemos obter melhores resultados tanto na regressão quanto na classificação usando diferentes características (não apenas séries temporais escalonadas) como alguns indicadores técnicos, volume de vendas. Além disso, podemos experimentar dados mais frequentes, digamos, pulsos minuto a minuto para ter mais dados de treinamento. Todas essas coisas eu vou fazer depois, fique atento :)


Ao aplaudir mais ou menos, você pode nos indicar quais histórias realmente se destacam.


Alex Honchar.


máquinas de ensino e rap.


Mundo de aprendizado de máquina.


O melhor sobre Aprendizado de Máquina, Visão Computacional, Aprendizado Profundo, Processamento de Linguagem Natural e outros.


Reversão Média na Série Temporal.


Dados de séries temporais são simplesmente uma coleção de observações geradas ao longo do tempo. Por exemplo, a velocidade de um carro de corrida a cada segundo, temperatura diária, números de vendas semanais, retornos de ações por minuto, etc. Nos mercados financeiros, uma série cronológica acompanha o movimento de pontos de dados específicos, como o preço de um título. período de tempo especificado, com pontos de dados registrados em intervalos regulares. Uma série temporal pode ser gerada para qualquer variável que esteja mudando com o tempo. A análise de séries temporais inclui técnicas para analisar dados de séries temporais, na tentativa de extrair estatísticas úteis e identificar características dos dados. A previsão de séries temporais é o uso de um modelo matemático para prever valores futuros com base em valores observados anteriormente nos dados de séries temporais.


O gráfico abaixo representa o preço de fechamento diário dos contratos futuros de alumínio ao longo de um período de 93 dias úteis, o que é uma série histórica.


Reversão Média.


A reversão à média é a teoria que sugere que preços, retornos ou vários indicadores econômicos tendem a se mover para a média histórica ou média ao longo do tempo. Esta teoria levou a muitas estratégias de negociação que envolvem a compra ou venda de um instrumento financeiro cujo desempenho recente diferiu muito da sua média histórica, sem qualquer razão aparente. Por exemplo, deixe o preço do ouro aumentar em média INR 10 todos os dias e um dia o preço do ouro aumenta em INR 40 sem qualquer notícia significativa ou fator por trás deste aumento, então pelo princípio de reversão da média podemos esperar o preço do ouro cair nos próximos dias tal que a mudança média no preço do ouro permaneça a mesma. Nesse caso, o reversionista médio venderia ouro, especulando que o preço caísse nos próximos dias. Assim, lucrando comprando a mesma quantidade de ouro que ele havia vendido anteriormente, agora a um preço menor.


Uma série temporal com reversão média foi plotada abaixo, a linha preta horizontal representa a média e a curva azul é a série temporal que tende a reverter para a média.


Uma coleção de variáveis ​​aleatórias é definida como sendo um processo estocástico ou aleatório. Um processo estocástico é considerado estacionário se sua média e variância forem invariantes no tempo (constantes ao longo do tempo). Uma série temporal estacionária será uma média revertida na natureza, isto é, tenderá a regressar à sua média e as flutuações à volta da média terão amplitudes aproximadamente iguais. Uma série temporal estacionária não se afastará muito de sua média por causa de sua variância constante finita. Uma série temporal não estacionária, pelo contrário, terá uma variância variável no tempo ou uma média variável no tempo ou ambas, e não tenderá a reverter para a sua média. No setor financeiro, os operadores aproveitam as séries temporais estacionárias, colocando ordens quando o preço de um título se desviar consideravelmente de sua média histórica, especulando o preço para voltar à sua média. Eles começam testando a estacionariedade em uma série temporal. Os dados financeiros, como os preços, são muitas vezes não estacionários, ou seja, possuem médias e variações que mudam com o tempo. Dados não estacionários tendem a ser imprevisíveis e não podem ser modelados ou previstos. Uma série temporal não estacionária pode ser convertida em uma série temporal estacionária por diferenciação ou exclusão de dados. Um passeio aleatório (os movimentos de um objeto ou mudanças em uma variável que não segue nenhum padrão ou tendência discernível) pode ser transformado em uma série estacionária por diferenciação (calculando a diferença entre Yt e Yt1). A desvantagem desse processo é que ele resulta na perda de uma observação a cada vez que a diferença é computada. Uma série temporal não estacionária com uma tendência determinista pode ser convertida em uma série temporal estacionária, prejudicando (removendo a tendência). Detrending não resulta em perda de observações. Uma combinação linear de duas séries temporais não estacionárias também pode resultar em uma série temporal estacionária de reversão de média. A série temporal (integrada de pelo menos a ordem 1), que pode ser linearmente combinada para resultar em uma série temporal estacionária, é considerada cointegrada.


Abaixo, é apresentado um gráfico de uma série temporal não estacionária com uma tendência determinista (Y t = α + βt + ε t) representada pela curva azul e suas séries temporais estacionárias retificadas (Y t & # 8211; βt = α + ε t) representado pela curva vermelha.


Estratégias de Negociação baseadas na Reversão Média.


Uma das mais simples estratégias de negociação relacionadas à reversão à média é encontrar o preço médio ao longo de um período especificado, seguido pela determinação de um intervalo alto-baixo em torno do valor médio de onde o preço tende a reverter para a média. Os sinais de negociação serão gerados quando esses intervalos forem cruzados & # 8211; colocar uma ordem de venda quando o intervalo é cruzado no lado superior e uma ordem de compra quando o intervalo é cruzado no lado inferior. O comerciante toma posições contrárias, isto é, vai contra o movimento de preços (ou tendência), esperando que o preço volte à média. Essa estratégia parece boa demais para ser verdade e é, ela enfrenta sérios obstáculos. O período de retrospectiva da média móvel pode conter alguns preços anormais que não são característicos do conjunto de dados, isso fará com que a média móvel represente de maneira incorreta a tendência da segurança ou a reversão de uma tendência. Em segundo lugar, pode ser evidente que a garantia está superfaturada de acordo com a análise estatística do trader, mas ele não pode ter certeza de que outros traders fizeram exatamente a mesma análise. Como outros comerciantes não veem a segurança como sendo superfaturada, eles continuariam comprando a segurança, o que elevaria ainda mais os preços. Essa estratégia resultaria em perdas se tal situação surgisse.


Pares de negociação é outra estratégia que se baseia no princípio da reversão da média. Dois títulos co-integrados são identificados, o spread entre o preço desses títulos seria estacionário e, portanto, significa reverter na natureza. Uma versão ampliada do Pairs Trading é chamada de Arbitragem Estatística, onde muitos pares cointegrados são identificados e divididos em cestas de compra e venda baseadas nos spreads de cada par. O primeiro passo em um modelo de Pares de Negociação ou Stat Arb é identificar um par de títulos co-integrados. Um dos testes comumente utilizados para verificar a co-integração entre um par de títulos é o Teste Augmented Dickey-Fuller (Teste ADF). Ele testa a hipótese nula de uma raiz unitária estar presente em uma amostra de série temporal. Uma série temporal que tem uma raiz unitária, isto é, 1 é uma raiz da equação característica da série, não é estacionária. A estatística aumentada de Dickey-Fuller, também conhecida como estatística-t, é um número negativo. Quanto mais negativo for, mais forte será a rejeição da hipótese nula de que existe uma raiz unitária em algum nível de confiança, o que implicaria que a série temporal é estacionária. A estatística-t é comparada com um parâmetro de valor crítico, se a estatística-t for menor que o parâmetro do valor crítico, o teste é positivo e a hipótese nula é rejeitada.


Verificação de co-integração & # 8211; Teste do ADF.


Considere o código Python mostrado abaixo para verificar a cointegração:


Começamos importando bibliotecas relevantes, seguidas da busca de dados financeiros para dois títulos usando a função quandl. get (). O Quandl fornece dados financeiros e econômicos diretamente no Python, importando a biblioteca Quandl. Neste exemplo, buscamos dados para futuros de alumínio e chumbo da MCX. Em seguida, imprimimos as cinco primeiras linhas dos dados buscados usando a função head (), para visualizar os dados sendo extraídos pelo código. Usando a biblioteca statsmodels. api, calculamos a regressão de mínimos quadrados ordinários sobre o preço de fechamento do par de mercadorias e armazenamos o resultado da regressão na variável denominada "resultado". Em seguida, usando a biblioteca statsmodels. tsa. stattools, executamos o teste adfuller passando o residual da regressão como entrada e armazenamos o resultado desse cálculo na matriz “c_t”. Essa matriz contém valores como os parâmetros de estatística t, valor p e valor crítico. Aqui, consideramos um nível de significância de 0,1 (nível de confiança de 90%). “C_t [0]” carrega a estatística t, “c_t [1]” contém o valor p e “c_t [4]” armazena um dicionário contendo parâmetros de valor crítico para diferentes níveis de confiança. Para a cointegração, consideramos duas condições, em primeiro lugar, verificamos se o t-stat é menor que o parâmetro do valor crítico (c_t [0] & lt; = c_t [4] [& # 8216; 10% & # 8217;]) e em segundo lugar, se o valor-p é menor que o nível de significância (c_t [1] & lt; = 0.1). Se ambas as condições forem verdadeiras, imprimimos que o “par de títulos é cointegrado”, caso contrário, imprima que o “par de títulos não está cointegrado”.


Para saber mais sobre o Pairs Trading, Arbitragem Estatística e o teste ADF, você pode conferir o curso de certificação on-line em "Estatística Arbitrage Trading" oferecido conjuntamente pela QuantInsti e MCX para aprender como negociar estratégias de Arbitragem Estatística usando Python e Excel.


Outros links.


Estatísticas por trás da negociação de pares & # 8211;


Teste ADF usando excel & # 8211;


Aprenda Estratégias de Reversão Média em detalhes. Faça nosso curso exclusivo, desenvolvido em parceria com o Dr. Ernest P Chan. Clique aqui para saber mais sobre o curso.

No comments:

Post a Comment