Estratégia de negociação em r


Estratégia de negociação em 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.

Estratégia de Negociação Quantitativa Usando R: Um Guia Passo a Passo.
Neste post vamos discutir sobre a construção de uma estratégia de negociação usando R. Antes de nos concentrarmos nos jargões de negociação usando R, vamos passar algum tempo entendendo o que R é. R é uma fonte aberta. Há mais de 4000 pacotes adicionais, mais de 18.000 membros do grupo do LinkedIn e quase 80 grupos Meetup atualmente em existência. É uma ferramenta perfeita para análise estatística, especialmente para análise de dados. A configuração concisa do Comprehensive R Archive Network sabe como CRAN fornece a lista de pacotes, juntamente com a instalação básica necessária. Há muitos pacotes disponíveis dependendo da análise que precisa ser feita. Para implementar a estratégia de negociação, usaremos o pacote chamado quantstrat.
Processo de quatro etapas de qualquer estratégia básica de negociação.
Teste de formação de hipóteses.
Nossa hipótese é formulada como “mercado é revertido à média”. A reversão à média é uma teoria que sugere que os preços acabam voltando ao valor médio. A segunda etapa envolve testar a hipótese para a qual formulamos uma estratégia em nossa hipótese e calculamos indicadores, sinais e métricas de desempenho. A fase de testes pode ser dividida em três etapas, obtendo os dados, escrevendo a estratégia e analisando a saída. Neste exemplo, consideramos NIFTY-Bees. É um fundo negociado em bolsa administrado pela Goldman Sachs. NSE tem um volume enorme para o instrumento, portanto, consideramos isso. A imagem abaixo mostra o preço do Open-High-Low-Close do mesmo.
Nós definimos um nível de limiar para comparar as flutuações no preço. Se o preço aumenta / diminui, atualizamos a coluna de limite. O preço de fechamento é comparado com a faixa superior e com a faixa inferior. Quando a banda superior é cruzada, é um sinal para vender. Da mesma forma, quando a banda inferior é cruzada, é um sinal de venda.
A seção de codificação pode ser resumida como segue,
Uma visão de helicóptero para a saída da estratégia é dada no diagrama abaixo.
Assim, nossa hipótese de que o mercado é reversão à média é suportada. Como este é o back-testing, temos espaço para refinar os parâmetros de negociação que melhorariam nossos retornos médios e os lucros realizados. Isso pode ser feito definindo diferentes níveis de limite, regras de entrada mais rigorosas, stop loss etc. Pode-se escolher mais dados para back-testing, usar a abordagem bayseiana para configurar o limiar, considerar a volatilidade.
Uma vez que você esteja confiante sobre a estratégia de negociação apoiada pelos resultados do backtesting, você pode entrar em negociações ao vivo. O ambiente de produção é um grande tópico em si e está fora do escopo no contexto do artigo. Para explicar em breve isso envolveria escrever a estratégia em uma plataforma de negociação.
Como mencionado anteriormente, estaríamos construindo o modelo usando o pacote quantstrat. O Quantstrat fornece uma infraestrutura genérica para modelar e fazer backtest de estratégias quantitativas baseadas em sinal. É uma camada de abstração de alto nível (construída em xts, FinancialInstrument, blotter, etc.) que permite construir e testar estratégias em poucas linhas de código.
As principais características do quantstrat são,
Suporta estratégias que incluem indicadores, sinais e regras Permite que estratégias sejam aplicadas a portfólios de múltiplos ativos Suporta os tipos de pedidos de mercado, limite, stoplimit e stoptrailing Suporta o dimensionamento de pedidos e a otimização de parâmetros.
Neste post, construímos uma estratégia que inclui indicadores, sinais e regras.
Para um modelo baseado em sinal genérico, seguem os objetos que se deve considerar,
Instrumentos - Contém indicadores de dados de mercado - Valores quantitativos derivados de dados de mercado Sinais - Resultado da interação entre dados de mercado e indicadores Regras - Gerar ordens usando dados de mercado, indicadores e sinais.
Sem muita demora, vamos discutir a parte de codificação. Nós preferimos R studio para codificação e insistimos que você use o mesmo. Você precisa ter certos pacotes instalados antes de programar a estratégia.
O seguinte conjunto de comandos instala os pacotes necessários.
Depois de instalar os pacotes, importe-os para uso posterior.
Leia os dados do arquivo csv e converta-os em objeto xts.
Inicializamos o portfólio com o estoque, a moeda, o patrimônio inicial e o tipo de estratégia.
Adicione o limite de posição se você deseja negociar mais de uma vez no mesmo lado.
Crie o objeto de estratégia.
Nós construímos uma função que calcula os limiares que queremos trocar. Se o preço se mover pelo thresh1, atualizamos o limite para o novo preço. Novas bandas para negociação são Threshold +/- Thresh2. A saída é um objeto xts, embora usemos a função reclass para garantir.
Adicione o indicador, o sinal e a regra de negociação.
Execute a estratégia e dê uma olhada no livro de pedidos.
Atualize o portfólio e visualize as estatísticas do comércio.
Aqui está o código completo.
Uma vez que você esteja familiarizado com essas noções básicas, dê uma olhada em como começar a usar o pacote quantimod em R. Ou, caso você seja bom em C ++, dê uma olhada em uma estratégia de exemplo codificada em C ++.
Se você é um profissional de varejo ou um profissional da área de tecnologia que deseja iniciar sua própria agência de negociação automatizada, comece a aprender o comércio de algoritmos hoje mesmo! Comece com conceitos básicos como arquitetura de negociação automatizada, microestrutura de mercado, sistema de backtesting de estratégia e sistema de gerenciamento de pedidos.

Um exemplo de estratégia de negociação codificada em R.
O back-testing de uma estratégia de negociação pode ser implementado em quatro etapas.
Obtendo os dados históricos Formule a estratégia de negociação e especifique as regras Execute a estratégia nos dados históricos Avalie as métricas de desempenho.
Neste post, vamos voltar a testar a nossa estratégia de negociação em R. O pacote quantmod tornou muito fácil extrair dados históricos do Yahoo Finance. O código de uma linha abaixo busca dados NSE (Nifty).
O Quantmod fornece vários recursos para visualizar dados. O comando abaixo cria um gráfico para os dados do NSE.
TA = "Nulo" indica não usar nenhum indicador técnico. Veremos em breve a aplicação de um indicador técnico em um gráfico. O próximo passo é escolher uma estratégia de negociação. Vamos escolher o MACD (Moving Average Convergence Divergence) para este exemplo. Em uma estratégia de cruzamentos médios móveis, duas médias são computadas, uma média móvel lenta e uma média móvel rápida. A diferença entre a média móvel rápida e a média móvel lenta é chamada de linha MACD. Uma terceira média chamada linha de sinal; uma média móvel exponencial de 9 dias do sinal MACD, também é calculada. Se a linha MACD cruza acima da linha de sinal, então é um sinal de alta e nós vamos longo. Se a linha MACD cruzar abaixo da linha de sinal, então é um sinal de baixa e nós ficamos em falta. Nós escolhemos o preço de fechamento dos dados da NSE para calcular as médias. O comando a seguir cumpre essa tarefa.
O comando abaixo calcula o MACD para o preço de fechamento.
Pode-se escolher parâmetros variáveis ​​para médias rápidas, lentas e de sinal, dependendo dos requisitos de negociação. Aqui nós nos mantemos com os parâmetros padrão. MACD é a função em quantmod que calcula a divergência de convergência da média móvel, dados são o preço de fechamento para NSE, nFast é a média móvel rápida, nSlow é a média móvel lenta, maType = SMA indica que escolhemos média móvel simples, percentual = FALSE Isso implica que estamos calculando a diferença entre a média móvel rápida e a média móvel lenta. Definir como TRUE retornaria a diferença percentual entre a média móvel rápida e a média móvel lenta.
O comando a seguir plota o gráfico para o preço de fechamento do NSE juntamente com os parâmetros MACD.
Como discutido antes, definimos nosso sinal de negociação da seguinte forma:
Se o sinal MACD cruzou acima da linha de sinal, ficamos muito tempo no NSE. Se o sinal MACD cruzou abaixo da linha de sinal, ficamos sem NSE.
O comando a seguir gera o sinal de negociação de acordo. Usamos o operador lag para eliminar o viés antecipado.
Aplicaremos essa estratégia nos dados históricos da NSE de 2007-09-17 a 2015-09-22. O sinal de negociação é aplicado ao preço de fechamento para obter os retornos de nossa estratégia.
A função ROC fornece a diferença percentual entre os dois preços de fechamento. Podemos escolher a duração para a qual queremos ver os retornos. O seguinte comando escolhe os retornos entre 2008-06-02 e 2015-09-22.
Devoluções cumulativas podem ser calculadas e plotadas usando os seguintes comandos:
A quarta etapa do teste de retorno está avaliando as métricas de desempenho. O pacote de análise de desempenho em R fornece uma plataforma consolidada para observar os parâmetros relacionados ao desempenho. Várias métricas como draw-downs, downside risk, podem ser observadas em R.
O seguinte comando fornece um resumo dos parâmetros acima mencionados e muito mais!
Aqui está a versão sucinta do código.
Depois de seguir esse exemplo, você aprendeu noções básicas de como projetar uma estratégia de negociação de quant usando R. Agora você pode começar a aprender sobre como começar a usar o pacote quantmod em R. Depois de aprender com sucesso essas noções básicas, você pode testar habilidades em nosso curso de datacamp interativo de 10 horas de duração individualizada 'Modele uma Estratégia de Negociação Quantitativa em R'

Modelar uma estratégia de negociação quantitativa em R.
Curso interativo de 10 horas em ritmo individual em R para iniciantes!
R é amplamente utilizado por analistas e comerciantes em todo o mundo para desenvolver estratégias de negociação quantitativas que podem ser executadas manualmente ou através de negociação de programas. Este é um curso introdutório para iniciantes em R para se familiarizar com uma estratégia de negociação e experiência codificando um indicador técnico em R. Você aprenderá os termos técnicos associados a uma estratégia de negociação, trabalhará com data. tables em R e manipulará os dados de entrada para criar sinais de negociação e colunas de ganhos e perdas. Você também aprenderá sobre como otimizar os parâmetros para maximizar os lucros. Este curso é para todos que têm interesse em negociação algorítmica e querem começar! Nenhum conhecimento prévio é necessário!
Obtenha um vislumbre da estratégia - Vídeo de discussão de estratégia.
O que você aprenderá com este curso?
Este é um curso introdutório para iniciantes em R,
familiarize-se com uma experiência de estratégia de negociação codificando um indicador técnico em R aprenda termos técnicos associados a uma estratégia de negociação trabalhe com data. tables em R manipule os dados de entrada para criar sinais de negociação e as colunas de ganhos e perdas aprendam a otimizar parâmetros para poder para maximizar os lucros.
Atualize suas habilidades participando de um curso extenso.
Depois de concluírem este curso gratuito, os participantes alcançarão os conhecimentos e as habilidades acima mencionados, mas, para adquirir conhecimentos e insights práticos profundos, você poderá participar do nosso Programa Executivo em Comércio de Algoritmos (EPAT). É um programa de 4 meses (100 horas de contato). Também fornecemos aos nossos participantes acesso a várias ferramentas e testamos dados de mercado para fins de projeto.

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 deslizamento. 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.

Комментарии