Estratégias de negociação do backtest r
Sou muito novo em R e estou tentando fazer backtest de uma estratégia que já programei no WealthLab.
Várias coisas que eu não entendo (e isso não funciona, obviamente :)
Eu não obtenho os Preços Fechar bem em um vetor. ou algum tipo de vetor, mas começa com estrutura e eu realmente não entendo o que essa função faz. É por isso que a minha série [1] provavelmente não funciona.
n & lt; - nrow (série) também não funciona, mas eu preciso disso para o Loop.
Então eu acho que se eu obtiver essas 2 perguntas respondidas, minha estratégia deve funcionar. Eu sou muito grato por qualquer ajuda .. R parece bastante complicado, mesmo com a experiência de programação em outras línguas.
Começando com a segunda questão.
Então, se você quer trabalhar no objeto xts real, você precisa usar get.
Sobre sua primeira pergunta - eu não acho que você realmente precise puxar os dados como um vetor - o objeto xts é uma matriz indexada por data e é fácil trabalhar com ela. Se você ainda deseja obter os dados que você pode usar.
Agora, para começar com simples back testing de estratégias, sugiro trabalhar nas etapas a seguir.
defina sua estratégia. 2. crie uma matriz ou adicione uma coluna ao seu objeto xts que representará sua posição para cada dia. 1 para long, 0 para no position e -1 para short (mais tarde você pode jogar com o número de alavancagem). 3. multiplique cada dia de retorno com a posição e você obterá o seu vetor de retorno da estratégia. 4. examinar os resultados - minha recomendação é PerformanceAnalytics.
estratégia simples - compre quando estiver perto da SMA20, venda abaixo.
Negociação FOSS.
Negociação Algorítmica com Software Livre de Código Aberto.
Sábado, 26 de março de 2011.
Como backtest uma estratégia em R.
A função getSymbols no quantmod simplifica essa etapa 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 determinado fornecedor que você usa.
Etapa 2: crie seu indicador.
O pacote TTR contém uma infinidade de indicadores. Os indicadores são escritos para facilitar a sua combinação de maneiras criativas e não convencionais. Começando com a revisão 106 na R-forja, o TTR possui um indicador DVI.
Etapa 3: construa sua regra de negociação.
Como essa regra de negociação é simples - estamos 100% compridos, se o DVI estiver abaixo de 0,5 e 100% curto, caso contrário - pode ser escrito em uma única linha. Regras mais elaboradas e / ou tamanhos de posição também podem ser feitos, 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 antecipação.
Etapa 4: As regras de negociação / curva de capital.
Como no exemplo de Damian, o código abaixo é uma abordagem simplificada que é sem atrito e não leva em conta o escorregamento. O código abaixo recebe o retorno percentual de hoje e o multiplica pelo tamanho do 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.
Etapa 5: avaliar o desempenho da estratégia.
Damian mencionou a importância de avaliar sua estratégia. Felizmente para usuários de R, o pacote PerformanceAnalytics facilita isso. Com algumas linhas de código, podemos visualizar os levantamentos, os riscos negativos e um resumo de desempenho.
Isso é tudo o que há para fazer backtesting de uma estratégia simples em R. Não foi tão intimidante, foi? Por favor, deixe um feedback se você está movendo o seu backtesting do Excel para o R e há algo que você está pendurado ou você tem uma dica incrível que você gostaria de compartilhar.
Estratégias de negociação do backtest r
Vamos explorar as capacidades de backtesting de R.
Em um post anterior, desenvolvemos algumas oportunidades de entrada simples para o USD / CAD usando um algoritmo de aprendizado de máquina e técnicas de um subconjunto de mineração de dados chamado aprendizado de regra de associação. Neste post, vamos explorar como fazer um backtest completo em R; usando nossas regras do post anterior e implementando os lucros e as perdas.
Vamos mergulhar em: Observação: o backtest é construído a partir das barras de 4 horas em nosso conjunto de dados e não tem uma visualização mais granular.
O CAGR (taxa composta de crescimento anual) é o ganho / perda percentual anualizado, o que significa que suaviza o crescimento em prestações iguais a cada ano. Desde que o nosso teste acabou, vamos ver se podemos melhorar o desempenho adicionando um stop loss e tendo lucro.
Com apenas um stop loss, o desempenho caiu. Parece que estamos sendo retirados de nossos negócios antes que eles possam se recuperar. A fim de garantir nossos lucros, vamos em frente e implementar um take profit.
Bloquear nossos ganhos com um take profit melhorou um pouco o desempenho, mas não drasticamente. Vamos incorporar um stop loss e um take profit.
Agora vamos comparar a linha de base da estratégia Long Short, com apenas um stop loss, apenas um take profit, e tanto um take stop loss quanto um take profit.
Agora você sabe como adicionar um take profit e stop loss, eu recomendo que você brinque com os dados e teste valores diferentes com base em seus próprios parâmetros de risco pessoal e usando suas próprias regras.
Mesmo com algoritmos poderosos e ferramentas sofisticadas, é difícil construir uma estratégia bem-sucedida. Para cada boa ideia, tendemos a ter muitos mais ruins. Armado com as ferramentas e os conhecimentos certos, você pode testar suas ideias com eficiência até chegar às boas. Nós simplificamos esse processo no TRAIDE. Desenvolvemos uma infraestrutura de testes que permite ver onde os padrões estão em seus dados e, em tempo real, ver como eles teriam se comportado com seus dados históricos.
Nós estaremos liberando o TRAIDE para 7 pares principais no mercado de FX com indicadores técnicos em duas semanas. Se você estiver interessado em testar o software e fornecer feedback, envie um e-mail para info @ inovancetech. Temos 50 vagas disponíveis.
Backtesting uma estratégia de negociação.
Pedi Análise de Séries Temporais e Suas Aplicações: Com Exemplos R (Textos Springer em Estatísticas) para me ajudar na série temporal em curva de aprendizado R. Até agora, o que eu vi parece bom. O autor tem uma boa página com os problemas em R e séries temporais. O livro deve chegar até o final da semana.
Nesse meio tempo, me deparei com uma estratégia de negociação enquanto lia um artigo sobre o serviço “Over My Shoulder” de John Mauldin (que recomendo muito). O ponto crucial disso foi que no mercado de urso que começou com o crash da bolha tecnológica, uma estratégia de apostar na reversão da média do S & P500 gerou retornos significativos. Naturalmente eu queria testar.
Por favor note, eu não estou recomendando nada que se segue. Faça sua lição de casa e fale com um profissional de investimento se tiver dúvidas.
A estratégia é prolongar o S & P500 quando o mercado fechar ao máximo nos últimos 3 dias. Inverta o negócio e vá muito longe quando o mercado fechar no mínimo nos últimos 3 dias. Os ETFs tornam essa estratégia relativamente fácil de negociar. O SPY será o nosso veículo por ser comprido o S & P500 e o SH será o nosso veículo para ser curto.
O SH começou a operar em 21/06/2006. Nós focamos nosso backtesting a partir desse ponto até agora.
Usando a função importSeries () que criamos anteriormente, obtenha todos os valores para SPY e SH.
Precisamos criar mais timeSeries para segurar.
Backtesting estratégias de negociação com R.
Poucas semanas atrás eu dei uma palestra sobre Backtesting trading strategies com R, recebi alguns pedidos para os slides então aqui estão eles:
Você pode gostar também:
Questões de Negociação de Pares Algumas palavras para aqueles que não estão familiarizados com a negociação de pares & # 8220; & # 8221; conceito. Primeiro você deve entender que o movimento de todos. O preço está certo, parte dois & # 8211; Estratégia de negociação. Tendo em mente o mercado de ações, no post anterior: "Price is right, part one.", Afirmei que não devemos pensar em termos de & ldquo; Estilo de fundo de hedge mais lucrativo Este não é um conselho de investimento !! Algumas semanas atrás, durante o grupo de usuários do amst-R-dam falar sobre estratégias de negociação de backtesting usando R, eu mencionei o mais. Padrão de Volatilidade Intra-dia Quando falamos de volatilidade, geralmente nos referimos ao movimento relativo de um instrumento, digamos o estoque, a partir do seu centro, digamos, a média. Tão alta volatilidade.
Vamos explorar as capacidades de backtesting de R.
Em um post anterior, desenvolvemos algumas oportunidades de entrada simples para o USD / CAD usando um algoritmo de aprendizado de máquina e técnicas de um subconjunto de mineração de dados chamado aprendizado de regra de associação. Neste post, vamos explorar como fazer um backtest completo em R; usando nossas regras do post anterior e implementando os lucros e as perdas.
Vamos mergulhar em: Observação: o backtest é construído a partir das barras de 4 horas em nosso conjunto de dados e não tem uma visualização mais granular.
O CAGR (taxa composta de crescimento anual) é o ganho / perda percentual anualizado, o que significa que suaviza o crescimento em prestações iguais a cada ano. Desde que o nosso teste acabou, vamos ver se podemos melhorar o desempenho adicionando um stop loss e tendo lucro.
Com apenas um stop loss, o desempenho caiu. Parece que estamos sendo retirados de nossos negócios antes que eles possam se recuperar. A fim de garantir nossos lucros, vamos em frente e implementar um take profit.
Bloquear nossos ganhos com um take profit melhorou um pouco o desempenho, mas não drasticamente. Vamos incorporar um stop loss e um take profit.
Agora vamos comparar a linha de base da estratégia Long Short, com apenas um stop loss, apenas um take profit, e tanto um take stop loss quanto um take profit.
Agora você sabe como adicionar um take profit e stop loss, eu recomendo que você brinque com os dados e teste valores diferentes com base em seus próprios parâmetros de risco pessoal e usando suas próprias regras.
Mesmo com algoritmos poderosos e ferramentas sofisticadas, é difícil construir uma estratégia bem-sucedida. Para cada boa ideia, tendemos a ter muitos mais ruins. Armado com as ferramentas e os conhecimentos certos, você pode testar suas ideias com eficiência até chegar às boas. Nós simplificamos esse processo no TRAIDE. Desenvolvemos uma infraestrutura de testes que permite ver onde os padrões estão em seus dados e, em tempo real, ver como eles teriam se comportado com seus dados históricos.
Nós estaremos liberando o TRAIDE para 7 pares principais no mercado de FX com indicadores técnicos em duas semanas. Se você estiver interessado em testar o software e fornecer feedback, envie um e-mail para info @ inovancetech. Temos 50 vagas disponíveis.
Backtesting uma estratégia de negociação.
Pedi Análise de Séries Temporais e Suas Aplicações: Com Exemplos R (Textos Springer em Estatísticas) para me ajudar na série temporal em curva de aprendizado R. Até agora, o que eu vi parece bom. O autor tem uma boa página com os problemas em R e séries temporais. O livro deve chegar até o final da semana.
Nesse meio tempo, me deparei com uma estratégia de negociação enquanto lia um artigo sobre o serviço “Over My Shoulder” de John Mauldin (que recomendo muito). O ponto crucial disso foi que no mercado de urso que começou com o crash da bolha tecnológica, uma estratégia de apostar na reversão da média do S & P500 gerou retornos significativos. Naturalmente eu queria testar.
Por favor note, eu não estou recomendando nada que se segue. Faça sua lição de casa e fale com um profissional de investimento se tiver dúvidas.
A estratégia é prolongar o S & P500 quando o mercado fechar ao máximo nos últimos 3 dias. Inverta o negócio e vá muito longe quando o mercado fechar no mínimo nos últimos 3 dias. Os ETFs tornam essa estratégia relativamente fácil de negociar. O SPY será o nosso veículo por ser comprido o S & P500 e o SH será o nosso veículo para ser curto.
O SH começou a operar em 21/06/2006. Nós focamos nosso backtesting a partir desse ponto até agora.
Usando a função importSeries () que criamos anteriormente, obtenha todos os valores para SPY e SH.
Precisamos criar mais timeSeries para segurar.
Backtesting estratégias de negociação com R.
Poucas semanas atrás eu dei uma palestra sobre Backtesting trading strategies com R, recebi alguns pedidos para os slides então aqui estão eles:
Você pode gostar também:
Questões de Negociação de Pares Algumas palavras para aqueles que não estão familiarizados com a negociação de pares & # 8220; & # 8221; conceito. Primeiro você deve entender que o movimento de todos. O preço está certo, parte dois & # 8211; Estratégia de negociação. Tendo em mente o mercado de ações, no post anterior: "Price is right, part one.", Afirmei que não devemos pensar em termos de & ldquo; Estilo de fundo de hedge mais lucrativo Este não é um conselho de investimento !! Algumas semanas atrás, durante o grupo de usuários do amst-R-dam falar sobre estratégias de negociação de backtesting usando R, eu mencionei o mais. Padrão de Volatilidade Intra-dia Quando falamos de volatilidade, geralmente nos referimos ao movimento relativo de um instrumento, digamos o estoque, a partir do seu centro, digamos, a média. Tão alta volatilidade.
Комментариев нет:
Отправить комментарий