Sunday 15 October 2017

Backtesting trading strategies with r


Este é o terceiro post no Backtesting no Excel e na série R e mostrará como backtest uma estratégia simples em R. Seguirá os 4 passos que Damian delineou em sua postagem sobre como testar uma estratégia simples no Excel. Etapa 1: Obter os dados A função getSymbols no quantmod facilita este passo se você puder usar dados diários do Yahoo Finance. Existem também métodos (não no sentido estrito) para extrair dados de outras fontes (FRED, Google, Oanda, R, salvar arquivos, bancos de dados, etc.). Você também pode usá-los como um modelo para escrever uma função personalizada para um fornecedor específico que você usa. Execute o comando abaixo se o quantmod já estiver instalado use o pacote quantmod (carrega TTR, xts e zoológico) extraia dados do SPX do Yahoo (getSymbols retorna um objeto xts) Etapa 2: Crie seu indicador O pacote TTR contém uma infinidade de indicadores. Os indicadores são escritos para facilitar a combinação de formas criativas e não convencionais. Começando com a revisão 106 na R-forge, a TTR possui um indicador DVI. Calcule o indicador DVI dvi lt - DVI (Cl (GSPC)) Cl () extrai a coluna de preço de fechamento Etapa 3: Construa sua regra de negociação Uma vez que esta regra de negociação é simples - foram longos 100 se o DVI for inferior a 0,5 e curto 100 caso contrário - - pode ser escrito em uma única linha. Podem ser feitas regras mais elaboradas e as colocações de posição, mas requerem mais código (RSI (2) com o dimensionamento de posição é um exemplo de regras de dimensionamento de posição mais complexas). Observe também que o vetor de sinal está defasado, o que evita o viés de avanço. Criar sinal: (longo (curto) se o DVI estiver abaixo (acima) 0,5) lag, então o sinal de ontem é aplicado aos retornos de hoje sig lt - Lag (ifelse (dvidvi lt 0,5, 1, -1)) Etapa 4: curva de ruleseqüência de negociação Como no exemplo de Damians, o código abaixo é uma abordagem simplificada que é friccional e não explica a derrapagem. O código abaixo leva o retorno de porcentagem de hoje e o multiplica pelo tamanho da posição do sinal de ontem (sempre - 100 neste exemplo). Eu também subconjunto o sistema retorna para combinar os resultados no arquivo do Excel. Calcule os retornos baseados no sinal ret lt-ROC (Cl (GSPC)) sig subconforme retorna para corresponder os dados no arquivo Excel ret lt-ret2009-06-022010-09-07 Etapa 5: Avalie o desempenho da estratégia Damian mencionou a importância de avaliar sua estratégia . Felizmente, para os usuários de R, o pacote PerformanceAnalytics facilita isso. Com algumas linhas de código, podemos ver as reduções, os riscos de queda e um resumo de desempenho. Use o pacote PerformanceAnalytics criar tabela mostrando estatísticas de retirada crie tabela de estimativas de risco de queda gráfico curva de equidade, desempenho diário e drawdowns Isso é tudo para testar uma estratégia simples em R. Não foi tão intimidante, foi por favor, deixe um comentário se você estiver mudando seu Backtesting do Excel para R e há algo em que você está desligado ou você tem uma ótima dica que você gostaria de compartilhar. Heres uma versão sucinta do código na postagem acima se você quiser copiar colar tudo em um bloco: eu sou muito novo para R e tentando testar uma estratégia Ive programada já em WealthLab. Várias coisas que eu não entendo (e isso não funciona obviamente). Eu não entendo os Close Prices muito bem num vetor. Ou algum tipo de vetor, mas começa com a estrutura e eu realmente não entendo o que essa função faz. É por isso que minha série, 1 chamada provavelmente não funciona. N ltnrow (série) também não funciona, mas eu preciso disso para o loop. Então, acho que se eu receber essas 2 perguntas respondidas, minha estratégia deveria funcionar. Estou muito agradecido por qualquer ajuda ... R parece bastante complicado, mesmo com a experiência de programação em outras línguas, sim, eu copiei algumas linhas de código deste tutorial e realmente não entendo essa linha. Eu significo séries, 1 eu pensei que aplicaria a função f na quotcolumnquot 1 da série. Mas, uma vez que esta série é alguma completa com estrutura, etc., ela não funciona. Estou falando sobre este tutorial: r-bloggersbacktesting-a-trading-strategy ndash MichiZH 6 de junho 13 em 14: 22 Como Backtest uma estratégia em R Exploraremos as capacidades de backtesting de R. Em uma publicação anterior, desenvolvemos algumas oportunidades de entrada simples Para o USDCAD usando um algoritmo de aprendizado de máquina e técnicas de um subconjunto de mineração de dados chamado aprendizagem de regras de associação. Nesta publicação, vamos explorar como fazer um backtest completo em R usando nossas regras da publicação anterior e implementar lucros e parar as perdas. Vamos mergulhar diretamente: Nota: o backtest é construído nas barras de 4 horas em nosso conjunto de dados e não tem uma visão mais granular. O CAGR (taxa de crescimento anual composta) é o percentual de perda de ganhos anualizado, o que significa que suaviza o crescimento em parcelas iguais a cada ano. Desde o início do nosso teste, veja se podemos melhorar o desempenho, adicionando uma perda de parada e aproveitamos o lucro. Com apenas uma parada, o desempenho diminuiu. Parece que estamos sendo retirados de nossos negócios antes que eles possam se recuperar. A fim de bloquear nossos lucros, vamos avançar e implementar um lucro obtido. Bloquear nossos ganhos com um lucro obtido melhorou ligeiramente o desempenho, mas não de forma drástica. Permite incorporar uma perda de stop e um lucro de tomada. Agora, vamos comparar a estratégia Long Short da linha de base, com apenas uma perda de parada, apenas um lucro de tomada, e tanto uma perda de parada e tirar proveito. Agora, você sabe como adicionar um lucro e parar a perda, recomendo que você brinque com os dados e teste diferentes valores com base em seus próprios parâmetros de risco pessoais e usando suas próprias regras. Mesmo com algoritmos poderosos e ferramentas sofisticadas, é difícil construir uma estratégia bem-sucedida. Por cada boa idéia, tendemos a ter muitos mais maus. Armado com as ferramentas e conhecimentos certos, você pode testar suas idéias eficientemente até chegar aos bons. Nós simplificamos esse processo na TRAIDE. Desenvolvemos uma infra-estrutura de teste que permite que você veja onde os padrões estão em seus dados e veja em tempo real como eles teriam realizado sobre seus dados históricos. Bem, estará lançando a TRAIDE para 7 pares principais no mercado FX com indicadores técnicos em duas semanas. Se você está interessado em testar o software e fornecer feedback, envie um e-mail para infoinovancetech. Temos 50 spots disponíveis.

No comments:

Post a Comment