Thursday 16 November 2017

Trading Strategy In R


Este é o terceiro post no Backtesting no Excel e série R e ele 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: 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 deste tutorial e don MichiZH Jun 6 13 at 14:22 Como Backtest uma estratégia em R Nós 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 chamada aprendizagem de regra de associação. Neste post, vamos explorar como fazer um backtest completo em R usando nossas regras do post anterior e implementar lucros de tomada e parar as perdas. Vamos mergulhar direito em: Nota: o backtest é construído fora das barras de 4 horas em nosso conjunto de dados e não tem uma visão mais granular. A CAGR (taxa de crescimento anual composta) é a porcentagem de ganho / perda anualizada, o que significa que suaviza o crescimento em parcelas iguais a cada ano. Desde o nosso teste foi mais Vamos ver se podemos melhorar o desempenho, adicionando uma perda de parada e ter lucro. Com apenas um stop loss, o desempenho caiu. Parece que estamos sendo retirados de nossos negócios antes que eles sejam capazes de se recuperar. A fim de bloquear os nossos lucros, vamos ir em frente e implementar um lucro take. Travar em nossos ganhos com um lucro de tomada melhorou ligeiramente o desempenho, mas não drasticamente. Vamos incorporar tanto um stop loss e um lucro take. Agora vamos comparar a estratégia de Long Short de linha de base, com apenas uma perda de stop, apenas um lucro de tomada, e tanto uma perda de tomada e tirar lucro. Agora você sabe como adicionar um lucro take e parar a perda, eu recomendo que você brincar com os dados e testar diferentes valores 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 idéia, tendemos a ter muitos mais maus. Armado com as ferramentas certas e conhecimento, você pode testar suas idéias de forma eficiente até chegar aos bons. Nós simplificamos esse processo em TRAIDE. Nós desenvolvemos uma infra-estrutura de teste que permite que você veja onde estão os padrões em seus dados e em tempo real veja como eles teriam realizado sobre seus dados históricos. Vamos lançar TRAIDE para 7 grandes pares 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 lugares disponíveis.

No comments:

Post a Comment