Estratégia de negociação em r


Obter através da App Store Leia esta publicação em nosso aplicativo!


R: Backtesting uma estratégia de negociação. Iniciantes para quantmod e R.


Eu sou muito novo para a R e tentando testar 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 consigo os Close Prices muito bem em um vetor. ou algum tipo de vetor, mas ele começa com a 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 (series) 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.


Começando com a segunda pergunta.


Então, se você quiser trabalhar no objeto xts real, você precisa usar get.


Sobre sua primeira pergunta - eu não acho que você realmente precisa puxar os dados como um vetor - o objeto xts é uma matriz indexada por data e é fácil de trabalhar. Se você ainda deseja obter os dados que você pode usar.


Agora, para que você comece com um simples teste de respostas de estratégias, sugerirei trabalhar nas seguintes etapas.


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 por muito tempo, 0 para nenhuma posição e -1 para breve (mais tarde você pode jogar com o número de alavancagem). 3. multiplique cada dia retorna com a posição e você obterá seu vetor de retorno de estratégia. 4. examine os resultados - minha recomendação é PerformanceAnalytics.


Estratégia simples - compre quando estiver perto da SMA20, venda abaixo.


Backtesting uma Estratégia de Negociação.


Eu pedi Análise da Série de Tempo e suas Aplicações: Com Exemplos R (Springer Texts in Statistics) para me ajudar na série temporal na curva de aprendizado de 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.


Entretanto, encontrei uma estratégia comercial ao ler um artigo no serviço "Over My Shoulder" de John Mauldin (que eu recomendo). O ponto crucial disso foi que, no mercado-negro que começou com o choque da tecnologia, uma estratégia de apostar na reversão média do S & P500 gerou retornos significativos. Naturalmente, queria testar.


Por favor, note que não estou recomendando nada a seguir. Faça sua lição de casa e fale com um profissional de investimento se tiver dúvidas.


A estratégia é passar o S & P500 quando o mercado se fechar no máximo nos últimos 3 dias. Inverta o comércio e vá muito tempo quando o mercado fecha ao mínimo durante os 3 dias anteriores. Os ETFs tornam essa estratégia relativamente fácil de negociar. SPY será o nosso veículo para ser longo o S & P500 e SH será o nosso veículo para ficar curto.


A SH começou a negociar em 21/06/2006. Concentramos nosso backtesting nesse ponto até agora.


Usando a função importSeries () que criamos anteriormente, obtenha todos os valores para SPY e SH.


Precisamos criar algumas horas adicionais para segurar.


Bandeira longa / curta - nos informa sobre o status atual de nossas explorações. Trade Flag - indica que nós instituímos uma negociação nesta data. Strat. Returns - retorno nominal para o dia com a estratégia. Montante em dólar - um valor em dólar bruto da carteira, assumindo um valor de $ 10.000 em dólares em 21/06/2006 e uma taxa de transação de US $ 2 quando negociamos.


Deve-se notar que esta estratégia NÃO é eficiente em impostos - quaisquer ganhos serão tributados na taxa de ganhos de capital de curto prazo. Havia 411 comércios. Um comércio envolve compra e venda, então 822 vezes você seria cobrado uma taxa de corretagem. Eu assumi 1 dólar por compra / venda - o que é cobrado pela Interactive Brokers. Usar alguém como o TD Ameritrade custaria muito mais. Isso também pressupõe que você pode comprar e vender no preço de fechamento do mercado. Algo que é possível, mas o deslizamento ocorrerá.


Comentários estão fechados.


Posts populares recentes.


Artigos mais visitados da semana.


Empregos para usuários R.


É alimentado pelo WordPress usando um design bavotasan.


Direitos autorais e cópia; 2017 R-bloggers. Todos os direitos reservados. Termos e Condições para este site.


FOSS Trading.


Comércio algorítmico com software livre de código aberto.


Sábado, 26 de março de 2011.


Como testar uma estratégia em R.


A função getSymbols no quantmod facilita este passo se você puder usar dados diários do Yahoo Finance. Há 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.


Etapa 2: crie seu indicador.


O pacote TTR contém uma multiplicidade 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.


Passo 3: Construa sua regra de negociação.


Uma vez que esta regra de negociação é simples - ficamos 100% longos se o DVI for inferior a 0,5 e curto de 100% caso contrário - pode ser escrito em uma única linha. Regras mais elaboradas e / ou posicionamentos de posição também podem ser feitas, 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.


Passo 4: A curva de negociação / equidade.


Tal como no exemplo de Damian, o código abaixo é uma abordagem simplificada que é fricção e não explica a derrapagem. O código abaixo leva 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: 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 os drawdowns, os riscos de downside e um resumo de desempenho.


Isso é tudo o que há para testar uma estratégia simples em R. Não foi tão intimidante, foi? Deixe comentários se você estiver movendo 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.


Estratégia de Negociação Quantitativa Usando R: Um Guia Passo a Passo.


Nesta publicação, discutiremos sobre a construção de uma estratégia de negociação usando R. Antes de morar nos jargões comerciais usando R, vamos passar algum tempo entendendo o que R é. R é uma fonte aberta. Existem mais de 4000 extras em pacotes, mais 18000 membros do grupo do LinkedIn e perto de 80 R grupos Meetup atualmente existentes. É uma ferramenta perfeita para análise estatística, especialmente para análise de dados. A configuração concisa da Rede de Arquivo Abrangente R sabe que o CRAN fornece a lista de pacotes junto com a instalação básica necessária. Há muitos pacotes disponíveis dependendo da análise precisa ser feita. Para implementar a estratégia de negociação, usaremos o pacote chamado quantstrat.


Processo em Quatro Passos de qualquer Estratégia de Negociação Básica.


Formação de hipóteses Testando a produção de refinação.


Nossa hipótese é formulada como "o mercado é reversão". A reversão média é uma teoria que sugere que os preços eventualmente retornem ao seu valor médio. O segundo passo consiste em testar a hipótese para a qual formulamos uma estratégia em nossa hipótese e computamos indicadores, sinais e métricas de desempenho. A fase de teste pode ser dividida em três etapas, obter os dados, escrever a estratégia e analisar a saída. Neste exemplo, consideramos NIFTY-Bees. É um fundo negociado em bolsa administrado pela Goldman Sachs. A NSE tem um enorme volume para o instrumento, portanto, consideramos isso. A imagem abaixo mostra o preço Open-High-Low-Close do mesmo.


Nós estabelecemos um nível limiar para comparar as flutuações no preço. Se o preço aumentar / diminuir, atualizamos a coluna do limite. O preço de fechamento é comparado com a banda superior e com a banda inferior. Quando a banda superior é cruzada, é um sinal para venda. Da mesma forma, quando a banda inferior é cruzada, é um sinal de venda.


A seção de codificação pode ser resumida da seguinte forma,


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 é um retorno significativo é suportada. Uma vez que este é o teste de volta, 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 configurando níveis de limiar diferentes, regras de entrada mais rígidas, perda de parada, etc. Pode-se escolher mais dados para back-testing, usar a abordagem bayseiana para configuração de limite, ter em conta a volatilidade.


Uma vez que você está confiante sobre a estratégia de negociação apoiada pelos resultados dos back-testing, você pode entrar em negociação 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 infra-estrutura genérica para modelo e estratégias quantitativas baseadas em sinal de backtest. É uma camada de abstração de alto nível (construída em xts, FinancialInstrument, blotter, etc.) que permite que você crie e teste 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 carteiras de ativos múltiplos Suporta tipos de ordem de mercado, limite, stoplimit e stoptrailing Suporta dimensionamento de ordem e otimização de parâmetros.


Nesta publicação, construímos uma estratégia que inclui indicadores, sinais e regras.


Para um modelo baseado em sinal genérico, os seguintes objetos devem ser considerados,


Instrumentos - Contém dados de mercado Indicadores - 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 muito tempo, vamos discutir a parte de codificação. Preferimos o estúdio R para codificação e insistimos em usar o mesmo. Você precisa ter determinados pacotes instalados antes de programar a estratégia.


O seguinte conjunto de comandos instala os pacotes necessários.


Depois de instalar os pacotes, você os importa para uso posterior.


Leia os dados do arquivo csv e converta-o em objeto xts.


Inicializamos o portfólio com o estoque, moeda, capital inicial e o tipo de estratégia.


Adicione o limite de posição se desejar negociar mais de uma vez no mesmo lado.


Crie o objeto de estratégia.


Construímos uma função que calcula os limiares que queremos negociar. Se o preço se move por 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 veja o caderno de pedidos.


Atualize o portfólio e veja as estatísticas comerciais.


Aqui está o código completo.


Uma vez que você esteja familiarizado com esses conceitos básicos, você poderia dar uma olhada em como começar a usar o pacote quantimod em R. Ou no caso de você ser bom no C ++, veja uma estratégia de exemplo codificada em C ++.


Se você é um comerciante de varejo ou um profissional de tecnologia que procura iniciar sua própria mesa de negociação automatizada, comece a aprender algo trading hoje! 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.

Comments

Popular Posts