Friday, 6 October 2017

Trading Strategies Using R


Multi-Asset Backtest. Rotational Trading Strategies Eu quero discutir a implementação de Rotational Trading Strategies usando a biblioteca de backtesting no Systematic Investor Toolbox. A estratégia Rotational Trading troca as alocações de investimento ao longo do tempo, apostando em alguns dos melhores ativos classificados. Por exemplo, o ranking pode ser baseado na força relativa ou momentum. Alguns exemplos das Estratégias de Negociação Rotacional (ou Atribuição Táctica de Activos) são: Quero ilustrar o Rotational Trading utilizando a estratégia introduzida no ETF Screen no cargo de Estratégia de Sector da ETF. A cada mês, esta estratégia investe nos dois primeiros dos 21 ETFs classificados por seus retornos de 6 meses. Para reduzir o volume de negócios, nos meses subsequentes as posições da ETF são mantidas desde que estes ETFs estejam entre os 6 primeiros. Antes que possamos implementar essa estratégia, precisamos criar duas rotinas auxiliares. Primeiro, vamos criar uma função que irá selecionar as posições N superiores para cada período: Em seguida, vamos criar uma função que irá selecionar as posições N superior para cada período e mantê-los até que eles caem abaixo KeepN rank: Agora estamos prontos para Implementar essa estratégia usando a biblioteca de backtesting na Caixa de Ferramentas do Investidor Sistemático: Há muitas maneiras de melhorar essa estratégia. Aqui está uma lista de exemplos de maneiras adicionais a considerar: Considere uma variedade de métodos de classificação. I. e. Retornos 1/2/3/6/12 meses e suas combinações, classificação ajustada pelo risco. Para controlar os levantamentos e aumentar o desempenho, considere o mecanismo de cronometragem apresentado em A Approach Quantitative to Tactical Asset Allocation by M. Faber (2006). Considere um universo de ativos diferente. Incluir os ETFs que estão menos correlacionados aos outros ativos, como Commodities, Fixed Income e International Equity Markets. Por exemplo, dê uma olhada no post de Estratégia Internacional de País Único. A única fronteira é a sua imaginação. Eu recomendaria também para fazer a análise da sensibilidade durante seu desenvolvimento da estratégia para certificar-se que seus não estão overfitting os dados. Para ver o código-fonte completo para este exemplo, por favor, dê uma olhada na função bt. rotational. trading. test () em bt. test. r no github. Nunca perca uma atualização Subscreva os R-blogueiros para receber e-mails com os últimos posts R. (Você não verá esta mensagem novamente.) Day Trading estratégias para novatos Dia de negociação é o ato de comprar e vender um estoque no mesmo dia. Os comerciantes do dia procuram lucrar alavancando grandes quantidades de capital para aproveitar os pequenos movimentos de preços em ações ou índices altamente líquidos. Dia de negociação pode ser um jogo perigoso para os comerciantes que são novos nele ou que don t aderir a um bem-pensamento método. Vamos dar uma olhada em algumas estratégias de negociação dia comum que pode ser usado por comerciantes de varejo. (Para mais, veja: Tutorial: Uma Introdução à Análise Técnica.) Estratégias de entrada Certos títulos são candidatos ideais para day trading. Um comerciante dia típico procura duas coisas em uma liquidez de ações e volatilidade. A liquidez permite que você entre e saia de um estoque a um bom preço (ou seja, os spreads apertados ou a diferença entre o preço de compra e venda de uma ação e a baixa diferença ou a diferença entre o preço esperado de uma negociação eo preço real a Ações). A volatilidade é simplesmente uma medida da faixa de preço diária esperada a faixa em que um comerciante do dia opera. Mais volatilidade significa maior lucro ou perda. Uma vez que você sabe que tipos de estoques que você está procurando, você precisa aprender a identificar possíveis pontos de entrada. (Para mais, veja Day Trading: Uma Introdução ou Forex Walkthrough: Foreign Exchange. Existem três ferramentas que você pode usar para fazer isso: Intraday gráficos de castiçal. As velas fornecem uma análise crua da ação do preço. Cotações de nível II / ECN. Nível II e ECN dar uma olhada em ordens como eles acontecem. Serviço de notícias em tempo real. As notícias movem estoques tais serviços dizem-no quando a notícia sai. Olhando para as cartas de velas intraday, vamos nos concentrar nesses fatores: Existem muitas configurações candlestick que podemos olhar para encontrar um ponto de entrada. Se usado corretamente, o padrão de reversão doji (destacado em amarelo na Figura 1) é um dos mais confiáveis. Figura 1: Olhando para castiçais - o doji destacado sinaliza uma inversão. Normalmente, vamos procurar um padrão como este com várias confirmações: Primeiro, procuramos um pico de volume. Que irá mostrar-nos se os comerciantes estão a apoiar o preço a este nível. Observe que isso pode ser na vela Doji ou nas velas imediatamente após. Em segundo lugar, procuramos o suporte prévio a esse nível de preço. Por exemplo, a baixa antes do dia (LOD) ou alta do dia (HOD). Finalmente, olhamos para a situação de Nível II, que nos mostrará todos os pedidos em aberto e tamanhos de pedidos. Se seguimos estes três passos, podemos determinar se o doji é susceptível de produzir uma reviravolta real e podemos tomar uma posição se as condições são favoráveis. (Para mais, veja o Forex Walkthrough: Basics Chart (castiçais).) Encontrar um alvo Identificar um preço alvo dependerá em grande parte do seu estilo de negociação. Aqui está uma breve visão geral de algumas estratégias de negociação dia comum: Negociação usando Previsão Volatilidade Garch Quantum Financier escreveu um interessante artigo Regime Switching System Usando Previsões Volatilidade. O artigo apresenta um algoritmo elegante para alternar entre as estratégias de reversão média e tendência de seguir com base na volatilidade do mercado. Dois modelos são examinados: um usando a volatilidade histórica e outro usando o Garch (1,1) Previsão de Volatilidade. A estratégia de reversão média é modelada com RSI (2): Long quando RSI (2) e Curto em contrário. A estratégia de seguimento de tendências é modelada com o crossover SMA 50/200: Long quando SMA (50) SMA (200), e Curto em contrário. Eu quero mostrar como implementar essas idéias usando a biblioteca backtesting na caixa de ferramentas Systematic Investor Toolbox. O código a seguir carrega os preços históricos do Yahoo Fiance e compara o desempenho das estratégias Buy e Hold, Mean-Reversion e Trend-Following usando a biblioteca de backtesting na Systematic Investor Toolbox: Em seguida, vamos criar uma estratégia que alterne entre a reversão média e Estratégias orientadas para as tendências, com base na volatilidade histórica do mercado. Em seguida, vamos criar uma Previsão de Volatilidade GARCH (1,1). Eu recomendaria a leitura de artigos a seguir para quem quiser encontrar o que GARCH é tudo ou para atualizar seu conhecimento: GARCH (1,1) por por David Harper um artigo introdutório muito bom com lotes de diagramas visuais. Questões Práticas na Modelação Univariada de GARCH por Y. Chalabi, D. Wurtz passo a passo exemplo de ajuste do modelo GARCH (1,1) com código R completo. Introdução básica ao GARCH por Quantum Financier é uma série de posts que vai para os detalhes e suposições de GARCH e EGARCH. Há alguns pacotes de R para caber modelos de GARCH. Vou considerar a função garch do pacote tseries e função garchFit do pacote fGarch. A função garch do pacote tseries é rápida, mas nem sempre encontra solução. A função garchFit do pacote fGarch é mais lenta, mas converge de forma mais consistente. Para demonstrar a diferença de velocidade entre a função garch ea função garchFit eu criei um benchmark simples: A função garchFit é em média 6 vezes mais lenta do que a função garch. Então, para prever a volatilidade vou tentar usar a função garch sempre que ele pode encontrar uma solução e função garchFit caso contrário. Agora, vamos criar uma estratégia que alterne entre as estratégias de reversão média e de tendência a seguir, com base na previsão de volatilidade GARCH (1,1). A estratégia de comutação que utiliza a previsão de volatilidade GARCH (1,1) apresentou um desempenho ligeiramente superior ao que utiliza a volatilidade histórica. Há muitas abordagens diferentes que você pode tomar para incorporar a previsão em seus modelos e estratégias de negociação. R tem um conjunto muito rico de pacotes para modelar e prever séries temporais. Aqui estão alguns exemplos que achei interessantes: Para ver o código-fonte completo para este exemplo, por favor, dê uma olhada na função bt. volatility. garch () em bt. test. r no github. Nunca perca uma atualização Subscreva os R-blogueiros para receber e-mails com os últimos posts R. (Você não verá esta mensagem novamente.)

No comments:

Post a Comment