Backtesting trading strategies using r


Eu sou muito novo para R e tentar backtest uma estratégia que eu já programado em WealthLab. Várias coisas que eu não entendo (e não funciona obviamente :) Eu não entendo os Preços Fechar bem em um vetor. Ou algum tipo de vetor, mas ele começa com a estrutura e eu realmente não entendo o que esta função faz. É por isso que minha série, uma chamada provavelmente não funciona. N - nrow (série) não funciona, mas eu preciso que para o Loop Então eu acho que se eu recebo Estas duas perguntas respondidas minha estratégia deve funcionar. Estou muito grato por qualquer ajuda .. R parece muito complicado, mesmo com a experiência de programação em outras línguas yeah I Tipo de copiado algumas linhas de código a partir deste tutorial e Don MichiZH Jun 6 13 às 14:22 Este é o terceiro post no Backtesting Em Excel e série R e vai mostrar como backtest uma estratégia simples em R. Ele vai seguir os 4 passos Damian esboçado em seu post sobre como backtest uma estratégia simples no Excel. Etapa 1: Obter os dados A função getSymbols no quantmod torna esta etapa fácil 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 guardar ficheiros, bases 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á não estiver instalado use o pacote quantmod (carrega TTR, xts e zoo) puxa os dados 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 no R-forge, o TTR tem um indicador DVI. Calcula a regra de negociação Dado que esta regra de negociação é simples - temos uma duração de 100 se o DVI estiver abaixo de 0,5 e, em seguida, 100 de curta duração - - pode ser escrito em uma única linha. Regras mais elaboradas e / ou posicionamentos também podem ser feitas, mas requerem mais código (RSI (2) com Position Sizing é um exemplo de regras de dimensionamento de posição mais complexas). Observe também que o vetor de sinal é retardado, o que evita o viés prospectivo. Criar sinal: (longo (curto) se DVI está abaixo (acima) 0.5) lag assim ontem sinal s é aplicado para hoje s retornos sig 0,5, 1, -1)) Etapa 4: As regras de negociação / equidade curva Como em Damian s Por exemplo, o código abaixo é uma abordagem simplificada, sem fricção e que não explica o deslizamento. O código abaixo toma o retorno de porcentagem de hoje e o multiplica pelo tamanho de sinal / posição de ontem (sempre / - 100 neste exemplo). Eu também subconjunto o sistema retorna para coincidir com os resultados no arquivo do Excel. Calcular retornos baseados em sinal ret - ROC (Cl (GSPC)) sig subset retorna para coincidir com dados no arquivo Excel ret - ret 2009-06-02 / 2010-09-07 Passo 5: Avaliar o desempenho da estratégia Damian mencionou a importância de avaliar o seu estratégia. Felizmente para os usuários R, o pacote PerformanceAnalytics torna isso fácil. Com algumas linhas de código, podemos ver os levantamentos, os riscos de desvantagem e um resumo de desempenho. Use o pacote PerformanceAnalytics criar tabela mostrando estatísticas drawdown criar tabela de estimativas de risco downside gráfico equidade curva, desempenho diário e drawdowns Isso é tudo o que há para backtesting uma estratégia simples em R. Não foi isso intimidador, foi Por favor, deixe comentários se você Re mover o seu backtesting do Excel para R e há algo que você está pendurado em ou você tem uma dica incrível que você gostaria de compartilhar. Aqui está uma versão sucinta do código no post acima se você quiser ser capaz de copiar / colar tudo em um bloco: Backtesting uma estratégia de negociação simples Stock Nota: Este post não é conselho financeiro Esta é apenas uma maneira divertida de explorar alguns Das capacidades R tem para importar e manipular dados. Recentemente, li um post sobre o ETF Prophet que explorou uma interessante estratégia de negociação de ações no Excel. A estratégia é simples: encontrar o ponto alto do estoque nos últimos 200 dias, e contar o número de dias que decorreram desde aquela alta. Se seu sido mais menos de 100 dias, possui o estoque. A implementação desta estratégia em R é simples, e oferece inúmeras vantagens sobre o excel, a principal das quais é que puxar os dados do mercado de ações para R é fácil, e nós Pode testar essa estratégia em uma ampla gama de índices com relativamente pouco esforço. Em primeiro lugar, nós baixamos dados para GSPC usando o quantmod. (GSPC significa índice S P 500). Em seguida, construímos uma função para calcular o número de dias desde o n-dia de alta em uma série de tempo, e uma função para implementar a nossa estratégia de negociação. A função última leva 2 parâmetros: o n-dia alta que você deseja usar, e os números de dias passado que alta você vai realizar o estoque. O exemplo é 200 e 100, mas você poderia facilmente mudar isso para o máximo de 500 dias e ver o que acontece se você segurar o estoque 300 dias depois que antes de resgatar. Uma vez que esta função é parametrizada, podemos facilmente testar muitas outras versões da nossa estratégia. Nós pad o início da nossa estratégia com zeros por isso será o mesmo comprimento que os nossos dados de entrada. (Se você deseja uma explicação mais detalhada da função daysSinceHigh, consulte a discussão sobre validação cruzada). Nós multiplicamos nosso vetor posição (0,1) pelos retornos do índice para obter nossa estratégia ve decidiu olhar para o retorno cumulativo, retorno anual médio, sharpe ratio, ganhando, volatilidade média anual, levantamento máximo e redução de comprimento máximo. Outras estatísticas seriam fáceis de implementar. Como você pode ver, esta estratégia se compara favoravelmente à abordagem padrão. Finalmente, testamos nossa estratégia em três outros índices: FTSE que representa a Irlanda e o Reino Unido, o Índice Industrial Dow Jones. Que remonta a 1896, eo N225. Que representa o Japão. Ive funcionalizado todo o processo, para que você possa testar cada nova estratégia com 1 linha de código: Nunca perca uma atualização Inscrever-se para R-blogueiros para receber e-mails com as últimas postagens R. (Você não verá esta mensagem novamente.)

Comments