Friday 23 March 2018

Estratégia de negociação de rotação


Estratégia de negociação de rotação setorial da Faber.


Índice.


Estratégia de negociação de rotação setorial da Faber.


As estratégias de negociação baseadas no Roteamento Setorial são populares porque podem melhorar os retornos ajustados ao risco e automatizar o processo de investimento. O investimento em momento, que está no centro da estratégia de rotação do setor, busca investir em setores que mostram o desempenho mais forte em um período de tempo específico. O investimento em momentum é outra forma de investimento de força relativa. Este artigo explicará a estratégia e mostrará aos investidores como implementar essa estratégia usando as ferramentas do StockCharts.


Faber e O & # 039; Shaunessey.


Há muitos documentos que apoiam o conceito de investimento momentâneo e investimento de força relativa. Em seu livro, What Works on Wall Street, James O Shaunessey detalha as estratégias de melhor desempenho nos últimos cinquenta anos. Agora em sua quarta edição, O & # 039; Shaunessey descobriu que as estratégias de força relativa estavam consistentemente no topo da lista de desempenho. Os investidores são recompensados ​​por comprar as ações mais fortes e evitar os mais fracos. Os fortes tendem a ficar mais fortes, enquanto os fracos tendem a ficar mais fracos. Isso faz sentido porque Wall Street ama seus vencedores e odeia seus perdedores.


Mebane Faber, da Cambria Investment Management, escreveu um white paper intitulado Estratégias de Força Relativa para Investir. Google seu nome e o nome do papel para detalhes. Usando dados do setor / grupo da indústria que remontam à década de 1920, Faber descobriu que uma estratégia de momentum simples superou o buy-and-hold aproximadamente 70% do tempo. Em outras palavras, a compra do setor / grupos industriais com os maiores ganhos superou a compra e manutenção durante um período de teste que excedeu 80 anos. Essa estratégia funcionou para intervalos de desempenho de 1 mês, 3 meses, 6 meses, 9 meses e 12 meses. Além disso, Faber também descobriu que o desempenho poderia ser melhorado adicionando um requisito simples de acompanhamento de tendências antes de considerar as posições.


Detalhes da Estratégia.


A estratégia mostrada agora é baseada nas descobertas do white paper da Faber. Primeiro, a estratégia é baseada em dados mensais e o portfólio é reequilibrado uma vez por mês. Cartistas podem usar o último dia do mês, o primeiro dia do mês ou uma data definida todo mês. A estratégia é longa quando o S & P 500 está acima de sua média móvel simples de 10 meses e fora do mercado quando o S & P 500 está abaixo de sua SMA de 10 meses. Esta técnica de temporização básica assegura que os investidores estejam fora do mercado durante tendências de baixa prolongadas e no mercado durante tendências de alta prolongadas. Tal estratégia teria evitado o mercado de urso de 2001-2002 e o declínio devastador em 2008.


No seu backtest, Faber usou os 10 grupos setoriais / setoriais da Biblioteca de Dados CRSP Francês-Fama. Estes incluem Consumidores Não Duráveis, Bens de Consumo, Manufatura, Energia, Tecnologia, Telecomunicações, Lojas, Saúde, Serviços Públicos e Outros. O último setor / grupo industrial (“Outros”) inclui Minas, Construção, Transporte, Hotéis, Serviços Comerciais, Entretenimento e Finanças. Em vez de procurar por ETFs individuais para corresponder a esses grupos, essa estratégia simplesmente usará os nove SPDRs do setor.


O próximo passo é escolher o intervalo de desempenho. Os cartistas podem escolher entre um mês e doze meses. Um mês pode ser um pouco curto e causar um reequilíbrio excessivo. Doze meses pode ser um pouco longo e perder muito do movimento. Como um compromisso, este exemplo usará três meses e definirá o desempenho com a Taxa de Mudança de três meses, que é o ganho percentual ao longo de um período de três meses.


Os cartistas devem então decidir quanto capital alocar para cada setor e para a estratégia como um todo. Os cartistas poderiam comprar os três principais setores e alocar quantidades iguais para os três (33%). Alternativamente, os investidores poderiam implementar uma estratégia ponderada, investindo mais no setor de topo e menores quantidades nos setores subsequentes.


Sinal de compra: quando o S & P 500 estiver acima de sua média móvel simples de 10 meses, compre os setores com os maiores ganhos em um período de três meses.


Sinal de venda: sai de todas as posições quando o S & P 500 se move abaixo da média móvel simples de 10 meses com base no fechamento mensal.


Reequilíbrio: Uma vez por mês, venda setores que saem do nível superior (três) e compre os setores que se movem para o nível superior (três).


Resumo do Sector StockCharts.


O Resumo do Setor em StockCharts pode ser usado para implementar essa estratégia mensalmente. Os nove SPDRs do setor são mostrados em uma página conveniente com uma opção para classificar por alteração percentual. Primeiro, selecione o período de desempenho desejado usando o menu suspenso logo acima da tabela. Este exemplo usa um desempenho de três meses. Segundo, clique no título "% Chg" para classificar por alteração percentual. Isso colocará os setores com melhor desempenho no topo.


Correndo o risco de ajuste de curva, parece que uma média móvel simples de 12 meses mantém uma forte tendência melhor do que uma SMA de 10 meses. No gráfico abaixo, as setas azuis mostram onde o S & P 500 quebrou o SMA de 10 meses, mas manteve o SMA de 12 meses. A diferença entre as duas médias móveis é bastante pequena e essas diferenças tendem a se igualar ao longo do tempo. Uma média móvel de 12 meses, no entanto, representa a média de um ano, que é um período de tempo atraente do ponto de vista de longo prazo. O preço tem um viés de alta quando acima dessa média móvel de um ano e um viés de baixa quando abaixo.


Conclusões


Essa estratégia de rotação setorial é construída com base na premissa de que certos setores terão um desempenho superior e o investimento nesses setores superará o mercado como um todo. Mesmo que um backtest de mais de 80 anos confirme essa suposição, o desempenho passado não é garantia de desempenho futuro. Como em qualquer estratégia, a autodisciplina e a aderência à estratégia são fundamentais. Haverá meses ruins, talvez até anos ruins. No entanto, evidências de longo prazo sugerem que os bons tempos superam os maus momentos. Essa estratégia também pode ser usada como um primeiro corte para a seleção de ações. Os comerciantes podem concentrar seus esforços nas ações dos três principais setores e evitar estoques nos seis últimos. Tenha em mente que este artigo foi concebido como um ponto de partida para o desenvolvimento de estratégias de negociação. Use essas ideias para aumentar seu processo de análise e preferências de risco-recompensa.


Negociação Rotacional: Um Conceito Simples E Poderoso.


Desta vez, quero abordar um tópico que não foi abordado aqui antes: negociação rotativa. Primeiro, darei a você algumas informações sobre o motivo pelo qual você deve investigar o comércio rotativo e, posteriormente, apresentarei um sistema rotacional simples, mas poderoso.


A idéia básica por trás do comércio rotativo é simples: você classifica uma lista de ações ou ETFs por qualquer tipo de medida. Então você decide comprar ou vender o pior ou o melhor número de ações desta lista. Você pode fazer isso assim que novas ações entrarem / saírem das cinco principais / segundas holdings ou em um cronograma predefinido, por exemplo. toda semana ou mês.


Aqui estão algumas das razões pelas quais você deve olhar para o comércio rotacional:


Diversificação: há momentos em que certas estratégias funcionam melhor que outras. Não se deve colocar todos os ovos na mesma cesta. Portanto, além da negociação de swing ou de reversão à média, isso pode ser uma alternativa interessante. Compre em força: Você se lembra do tempo de meados de fevereiro a meados de abril deste ano? Dois meses sem quase nenhum revés. Tempos bastante difíceis para o comércio de swing. Os sistemas de negociação rotativos geralmente adquirem força; Daí os que fazem bem sob estas condições. Sem dependência do timing do mercado: estamos tão focados em encontrar a melhor entrada ou a melhor saída. Os sistemas de negociação rotativos são menos sensíveis a encontrar a melhor entrada. Você monta os melhores estoques contanto que eles estejam entre os melhores estoques, então você muda cavalos e vai novamente. Simples na execução: se a alternância entre as ações ou os ETFs não for feita com muita frequência, a execução da negociação pode ser bastante relaxante em comparação com outras estratégias. Além disso, o custo de negociação é menos oneroso, pelo menos para modelos de rotação infrequentes. Fácil de desenvolver. Com o software de negociação correto, isso pode ser uma tarefa bastante fácil. Isso pode não ser um problema para muitos de vocês, mas certamente há pessoas que não são desenvolvedores de software sofisticados. Uma das razões pelas quais eu mudei do meu antigo software (Tradesignal) para o Amibroker é a sua capacidade de configurar estes modelos muito fácil e rapidamente (com apenas algumas poucas linhas).


Precisamos responder algumas perguntas antecipadamente:


O que queremos negociar e por quê? Eu gosto de negociar ações NASDAQ100 para este fim, porque os melhores ou piores desempenhos geralmente mostram uma forte tendência em qualquer direção. Basta pensar na Apple, Bidu e co. Quantas ações queremos negociar? Eu escolho de 5 a 10 ações para negociar. Se você chegou a muitos, então você pode entrar em ações que podem não chegar ao topo. Direção do comércio: Eu uso o comércio rotativo para longos negócios. As tendências ascendentes são mais lentas (= maiores) no desenvolvimento em comparação com as tendências rápidas e agudas para baixo. Portanto, os movimentos para cima são mais fáceis de pegar. Como classificar ações? Ter uma boa maneira de classificar as ações para decidir o que é fraco e o que é forte é fundamental para o sucesso de um sistema rotacional. Usar um indicador de curto prazo como o RSI (2) para medir a força não é uma boa ideia, pois no curto prazo muitas ações tendem a se reverter. Portanto, o sistema entraria em vigor e deixaria em fraqueza (conforme o ranking do RSI (2) cai). Então, você precisa de um método que olhe além da tendência de curto prazo e seja capaz de medir a força real da tendência. Agora, vamos examinar os detalhes do sistema, conforme descrito acima. Deixe-me afirmar claramente que não negocio o sistema conforme descrito abaixo. No entanto, eu uso o mesmo conceito e ingredientes similares. Eu sugiro que você use o sistema como ponto de partida para sua própria pesquisa.


Caso sua plataforma de negociação atual não ofereça recursos de negociação rotativa, você deve definitivamente procurar a Amibroker. São apenas 199 dólares. Eu não estou associado ao AmiBroker, mas acho que ele oferece um ótimo BANG para o BUG.


Um dos princípios básicos da negociação rotacional: você monta as melhores ações, desde que elas estejam entre as melhores ações, então você muda de cavalo e vai de novo. Para que isso aconteça, quero encontrar as ações mais fortes, já que elas prometem continuar por algum tempo. Minha maneira preferida de medir a força da tendência é o TSI. Então, classifico as ações de acordo com seu valor de TSI (maior valor de TSI no topo).


Deixe-me dar uma ideia de como eu fiz o teste.


Eu olhei para as ações da Nasdaq 100 de hoje. O primeiro ano de negociação é de 2001. Eu não quero que os tempos de "bolha" sejam incluídos nos meus resultados de teste. Nenhuma comissão. Eu tomo as 5 principais ações e atribuo 20% do capital.


O resultado já é muito bom, dado o fato de que o princípio é extremamente simples e sólido. Cerca de 32% CAGR, alta média de vencedores, bem como quase 55% dos vencedores.


No entanto, o sistema tem um problema: quase 60% de MaxDD (= máx. Draw down). Emocionalmente, isso será muito difícil de negociar! O que você não vê; um dos momentos mais rentáveis ​​do sistema está certo APÓS este severo empate. Não tenho certeza se poderia negociar isso! Então ou você se esconde, e. encurtando o índice, ou você adiciona um componente de temporização ao seu sistema rotacional. Eu faço as duas coisas, dependendo do estado do mercado.


Evitando graves draw downs.


Mas vamos analisar a adição de um componente de tempo ao sistema. Eu só negocio o sistema em momentos em que o índice está acima de 200 MA ou 30 MA. Normalmente, esses rebaixamentos severos acontecem abaixo da média de 200 MA e a segunda média de 30 MA me ajudará a entrar quando a recuperação acontecer. Então, essa pequena mudança irá melhorar significativamente o desempenho, tornando muito mais fácil de negociar. Eu sei que isso é parcialmente contra a filosofia da negociação rotacional (= estar sempre no mercado e evitar o timing do mercado), então você precisa descobrir o seu próprio nível de tolerância ao risco.


Freqüência de negociações.


Atualmente, o sistema produz 585 negociações em cerca de 10 anos. Não é muito. Portanto, o custo de negociação não deve ser um problema. De um ponto de vista prático e emocional, o sistema pode ser melhorado. O TSI não é um indicador que está mudando rapidamente, mas dos 585 negócios existem cerca de 120 negociações com duração de apenas dois bares. Isso indica que a classificação muda para freqüentemente e, portanto, produz essas negociações evitáveis. Portanto, sugiro que você execute os negócios apenas uma vez por semana. Então escolha um dia da semana que seja mais conveniente para você. Eu escolhi terça-feira para este teste, no entanto todos os outros dias da semana produzem bons resultados semelhantes.


Como você pode ver, as métricas de desempenho permanecem as mesmas enquanto o número de negociações foi reduzido significativamente.


O sistema apresentado tem um desempenho decente de 37% ao ano, enquanto é possível negociar emocionalmente. Dá-lhe um bom ponto de partida para o seu próprio sistema rotacional. No entanto, mais importante do que o sistema que apresentei é o fato de que você deve procurar diversificar suas estratégias de negociação por causa das razões que descrevi no início deste artigo.


SetPositionSize (20, spsPercentOfEquity);


Pontuação = IIf (idx & gt; MA (idx, 200) ou idx & gt; MA (idx, 30), pontuação, 0);


PositionScore = IIf (Year () & gt; = 2001 E DayOfWeek () == 2, pontuação, scoreNoRotate);


Sobre o autor System Trader Success Contributor.


Autores contribuintes são participantes ativos nos mercados financeiros e totalmente envolvidos em análises técnicas ou quantitativas. Eles desejam compartilhar suas histórias, insights e descobertas no System Trader Success e esperam fazer de você um melhor operador de sistema. Entre em contato conosco se você quiser ser um autor colaborador e compartilhar sua mensagem com o mundo.


Posts Relacionados.


Sharpe Ratio - a resposta certa para a pergunta errada?


Usando metais para o comércio de títulos.


Indicador de MCVI e estratégia em gráficos diários.


Veja esta parte do código:


QQQQ mudou para QQQ desde 23/03/2011. Isso só pode significar que o código (sistema) não foi verificado por um longo tempo.


Sim, o artigo foi escrito há algum tempo. No entanto, a premissa permanece a mesma e o conceito de rotação continua sendo uma técnica válida. Este artigo ainda pode fornecer inspiração para aqueles que desejam construir sistemas de negociação. Outra estratégia baseada em rotação é o Ivy Portfolio.


Negociação rotacional: um conceito simples e poderoso [System Trader Success] Desta vez eu quero cobrir um tópico que não tenha sido abordado aqui antes: negociação rotacional. Primeiro, darei a você algumas informações sobre o motivo pelo qual você deve investigar o comércio rotacional e, mais tarde, apresentarei um sim & # 8230; [& # 8230;]


Oi Jeff Este é um bom artigo. Você pode informar se você tem o código disponível para TS? Eu gostaria de explorar as estratégias rotacionais com mais detalhes e atualmente uso o TS.


Outro ótimo artigo Jeff. Eu usei um sistema semelhante para negociar as ações na minha corretora & # 8220; COMPRE & # 8221; Lista. Eu uso um sistema separado para o meu filtro de regime e só durmo muito quando estou nos mercados de BULL.


Minha pergunta é re: TSI. Eu uso o Metastock e converti o TSI da seguinte maneira:


Proporção: = Abs (CLOSE & # 8211; Ref (CLOSE, -10)) / ATR (10);


Isso parece a fórmula usada em seu artigo?


Desde já, obrigado.


Siga até o comentário acima: Eu tirei ABS para classificar apenas com força positiva. Funciona muito bem agora.


Como um aparte eu o comparei ao meu sistema de ranking existente (um cálculo de combinação do ROC) e ele dá quase o mesmo resultado.


Então, o TSI é uma média móvel suavizada dupla da variação de preço nos últimos 10 períodos como uma% de ATR nos últimos 10 períodos?


Isso parece certo. Para ser claro, você pode encontrar o código TSI neste post. Ele está na versão de arquivo de texto dos arquivos para download. O cálculo é o seguinte:


Proporção = AbsValue ((fechar - fechar [ShortLookback])) / AvgTrueRange (ShortLookback);


Eu sei que este artigo foi publicado há algum tempo, mas você pode me dizer se os resultados foram ajustados para o viés de sobrevivência? Você sabe tão bem quanto qualquer um quão grande impacto isso pode ter nos resultados.


Desde já, obrigado.


Isso é um bom ponto. Eu não acredito que os resultados foram ajustados para viés de sobrevivência.


Obrigado pela resposta rápida. Está bem. Eu não duvido que o conceito ainda é válido, mas para qualquer um interessado em testar as idéias, provavelmente valeria a pena replicar os testes usando um banco de dados livre de viés de sobrevivência.


Obrigado pelo blog. Sempre goste de ler.


Pergunta estúpida desculpa por alguém que não pode ler o código Amibroker & # 8230 ;.


Como a rotação é feita? Você classifica todas as ações com base no TSI e compra o top 5. Você as vende assim que elas saem do top 5 com base no seu valor TSI? Isso está correto? E você só faz isso às terças-feiras?


Obrigado pelo artigo e se você pode esclarecer-apenas não tenho certeza qual é o critério de saída.


Posts populares.


Atualização de RSI de 2 períodos do Connors para 2013.


Este indicador simples faz dinheiro de novo e de novo.


O portfólio Ivy.


Melhorando a estratégia do intervalo simples, parte 1.


Copyright © 2011-2018 pela Capital Evolution LLC. - projetado por prosperar temas | Alimentado por WordPress.


Por favor faça login novamente. A página de login será aberta em uma nova janela. Após o login, você pode fechá-lo e retornar a esta página.


O Trader R.


Usando R e ferramentas relacionadas em Finanças Quantitativas.


Arquivo para as Estratégias de Negociação & # 8216; & # 8217; Categoria.


Vinculando R ao IQFeed com o pacote QuantTools.


O IQFeed fornece serviços de dados de fluxo contínuo e soluções de negociação que cobrem o mercado agrícola, de energia e financeiro. É um provedor de feed de dados bem conhecido e reconhecido, voltado para usuários de varejo e pequenas instituições. O preço da assinatura começa em cerca de US $ 80 / mês.


Stanislav Kovalevsky desenvolveu um pacote chamado QuantTools. É um pacote tudo em um projetado para melhorar a modelagem de negociação quantitativa. Ele permite baixar e organizar dados históricos de mercado de várias fontes, como Yahoo, Google, Finam, MOEX e IQFeed. O recurso que mais me interessa é a capacidade de vincular o IQFeed à R. Eu uso o IQFeed há alguns anos e estou feliz com ele (não estou afiliado à empresa em nenhum caminho). Mais informações podem ser encontradas aqui. Eu tenho procurado uma integração dentro de R por um tempo e aqui está. Como resultado, depois que fiz alguns testes, mudei meu código que ainda estava em Python para R. Apenas para completar, aqui está um link que explica como baixar dados históricos do IQFeed usando Python.


A QuantTools oferece quatro funcionalidades principais: Obter dados de mercado, Armazenar / Recuperar dados de mercado, Dados de séries temporais de plotagem e Testes reversos.


Primeiro, verifique se o IQfeed está aberto. Você pode baixar dados diários ou intradiários. O código abaixo faz o download dos preços diários (Aberto, Alto, Baixo, Fechado) para o SPY de 1º de janeiro de 2017 a 1º de junho de 2017.


O código abaixo faz o download dos dados intraday de 1º de maio de 2017 a 3 de maio de 2017.


Observe o parâmetro do período. Pode usar qualquer um dos seguintes valores: tick, 1min, 5min, 10min, 15min, 30min, hora, dia, semana, mês, dependendo da freqüência que você precisa.


O QuantTools facilita o processo de gerenciar e armazenar dados do mercado de ticks. Você acabou de configurar os parâmetros de armazenamento e está pronto para começar. Os parâmetros são onde, desde que data e quais símbolos você gostaria de armazenar. Sempre que você puder adicionar mais símbolos e se eles não estiverem presentes em um armazenamento, o QuantTools tentará obter os dados da data de início especificada. O código abaixo salvará os dados no seguinte diretório: & # 8220; C: / Usuários / Arnaud / Documentos / Dados de Mercado / iqfeed & # 8221 ;. Há uma subpasta por instrumento e os dados são exibidos em arquivos. rds.


Você também pode armazenar dados entre datas específicas. Substitua a última linha de código acima por uma das abaixo.


Agora, se você quiser recuperar alguns dos dados armazenados, basta executar algo como:


Observe que apenas os ticks são suportados no armazenamento local, portanto, o período deve ser & # 8216; tick & # 8217;


O QuantTools fornece a função plot_ts para plotar dados de séries temporais sem fins de semana, feriados e lacunas durante a noite. No exemplo abaixo, primeiro recupero os dados armazenados acima, depois seleciono as primeiras 100 observações de preço e, finalmente, desenho o gráfico.


Duas coisas para notar: primeiro espião é um objeto data. table, portanto, a sintaxe acima. Para obter uma visão geral rápida dos recursos do data. table, dê uma olhada nesta excelente folha de dicas do DataCamp. Segundo, o parâmetro local é TRUE, pois os dados são recuperados do armazenamento interno.


O QuantTools permite escrever sua própria estratégia de negociação usando sua API C ++. Eu não vou elaborar sobre isso, pois isso é basicamente código C ++. Você pode consultar a seção Exemplos no site da QuantTools.


No geral, acho o pacote extremamente útil e bem documentado. O único bit faltante é o feed ao vivo entre R e IQFeed, que fará do pacote uma solução real de ponta a ponta.


Como de costume, qualquer comentário é bem-vindo.


BERT: um recém-chegado na conexão R Excel.


Há alguns meses, um leitor me mostrou essa nova maneira de conectar R e Excel. Eu não sei há quanto tempo isso acontece, mas nunca me deparei com isso e nunca vi nenhum post ou artigo de blog sobre isso. Então eu decidi escrever um post enquanto a ferramenta realmente vale a pena e antes que alguém pergunte, eu não estou relacionado à empresa de forma alguma.


BERT significa Basic Excel R Toolkit. É gratuito (licenciado sob a GPL v2) e foi desenvolvido pela Structured Data LLC. No momento em que escrevo, a versão atual do BERT é 1.07. Mais informações podem ser encontradas aqui. De uma perspectiva mais técnica, o BERT é projetado para suportar a execução de funções R a partir de células da planilha do Excel. Em termos do Excel, é para escrever Funções definidas pelo usuário (UDFs) em R.


Neste post eu não vou mostrar como R e Excel interagem via BERT. Há muito bons tutoriais aqui, aqui e aqui. Em vez disso, quero mostrar como usei BERT para construir uma torre de controle & # 8220; & # 8221; para minha negociação.


Meus sinais de negociação são gerados usando uma longa lista de arquivos R, mas eu preciso da flexibilidade do Excel para exibir os resultados de forma rápida e eficiente. Como mostrado acima, o BERT pode fazer isso para mim, mas também quero adaptar o aplicativo às minhas necessidades. Combinando o poder do XML, VBA, R e BERT, posso criar um aplicativo bonito, mas poderoso, na forma de um arquivo do Excel com código VBA mínimo. Em última análise, eu tenho um único arquivo do Excel reunindo todas as tarefas necessárias para gerenciar meu portfólio: atualização de banco de dados, geração de sinal, submissão de pedidos etc & # 8230; Minha abordagem pode ser dividida nos três passos abaixo:


Use XML para criar menus e botões definidos pelo usuário em um arquivo do Excel. Os menus e botões acima são essencialmente chamadas para funções do VBA. Essas funções do VBA são encapsuladas em torno das funções R definidas usando BERT.


Com essa abordagem, posso manter uma clara distinção entre o núcleo do meu código mantido em R, SQL e Python e tudo o que é usado para exibir e formatar os resultados mantidos no Excel, VBA & amp; XML Nas próximas seções, apresento o pré-requisito para desenvolver tal abordagem e um guia passo a passo que explica como o BERT poderia ser usado para simplesmente passar dados de R para o Excel com o mínimo de código VBA.


1 & # 8211; Baixe e instale o BERT neste link. Quando a instalação estiver concluída, você deve ter um novo menu Add-Ins no Excel com os botões, conforme mostrado abaixo. É assim que o BERT se materializa no Excel.


2 & # 8211; Faça o download e instale o editor de interface do usuário personalizada: O Editor de interface do usuário personalizado permite criar menus e botões definidos pelo usuário na faixa de opções do Excel. Um procedimento passo a passo está disponível aqui.


1 & # 8211; Código R: A função R abaixo é um código muito simples apenas para fins ilustrativos. Calcula e retorna os resíduos de uma regressão linear. É isso que queremos recuperar no Excel. Salve isso em um arquivo chamado myRCode. R (qualquer outro nome é bom) em um diretório de sua escolha.


2 & # 8211; functions. R em BERT: No Excel selecione Add-Ins - & gt; Diretório base e abra o arquivo chamado functions. R. Neste arquivo, cole o seguinte código. Certifique-se de inserir o caminho correto.


Isso é apenas o fornecimento de BERT no arquivo R que você criou acima. Em seguida, salve e feche as funções do arquivo. Se você quiser fazer qualquer alteração no arquivo R criado na etapa 1, terá que recarregá-lo usando o botão BERT & # 8220; Recarregar o arquivo de inicialização & # 8221; do menu Add-Ins no Excel.


3 & # 8211; No Excel: Crie e salve um arquivo chamado myFile. xslm (qualquer outro nome é bom). Este é um arquivo habilitado para macro que você salva no diretório de sua escolha. Depois que o arquivo for salvo, feche-o.


4 & # 8211; Abra o arquivo criado acima no editor da interface do usuário personalizada: Depois que o arquivo estiver aberto, cole o código abaixo.


Você deve ter algo parecido com isto no editor de XML:


Essencialmente, este pedaço de código XML cria um menu adicional (RTrader), um novo grupo (My Group) e um botão definido pelo usuário (New Button) na faixa de opções do Excel. Quando terminar, abra myFile. xslm no Excel e feche o Custom UI Editor. Você deveria ver algo assim.


5 & ​​# 8211; Abra o editor VBA: Em myFile. xlsm, insira um novo módulo. Cole o código abaixo no módulo recém-criado.


Isso apaga os resultados anteriores na planilha antes de lidar com os novos.


6 & # 8211; Clique no botão New: Agora volte para a planilha e no menu RTrader, clique no botão & # 8220; New Button & # 8221; botão. Você deve ver algo como o abaixo aparece.


O guia acima é uma versão muito básica do que pode ser obtido usando o BERT, mas mostra como combinar o poder de várias ferramentas específicas para criar seu próprio aplicativo personalizado. Da minha perspectiva, o interesse de tal abordagem é a capacidade de colar R e Excel, obviamente, mas também incluir pedaços de código XML (e em lote) do Python, SQL e muito mais. Isso é exatamente o que eu precisava. Por fim, gostaria de saber se alguém tem alguma experiência com o BERT?


Estratégia de negociação: aproveitando ao máximo os dados da amostra.


Ao testar estratégias de negociação, uma abordagem comum é dividir o conjunto de dados inicial em dados de amostra: a parte dos dados projetados para calibrar o modelo e os dados de amostra: a parte dos dados usada para validar a calibração e garantir que o desempenho criado na amostra será refletido no mundo real. Como regra geral, cerca de 70% dos dados iniciais podem ser usados ​​para calibração (ou seja, na amostra) e 30% para validação (ou seja, fora da amostra). Em seguida, uma comparação entre os dados de entrada e de saída ajuda a decidir se o modelo é suficientemente robusto. Este post visa dar um passo adiante e fornece um método estatístico para decidir se os dados fora da amostra estão alinhados com o que foi criado na amostra.


No gráfico abaixo, a área azul representa o desempenho fora da amostra de uma das minhas estratégias.


Uma inspeção visual simples revela um bom ajuste entre o desempenho de entrada e saída da amostra, mas que grau de confiança eu tenho nisso? Nesta fase não muito e esta é a questão. O que é realmente necessário é uma medida de similaridade entre os conjuntos de dados de entrada e de saída. Em termos estatísticos, isso pode ser traduzido como a probabilidade de que os números de desempenho dentro e fora da amostra sejam provenientes da mesma distribuição. Existe um teste estatístico não paramétrico que faz exatamente isso: o teste de Kruskall-Wallis. Uma boa definição deste teste pode ser encontrada no R-Tutor Uma coleção de amostras de dados é independente se eles vêm de populações não relacionadas e as amostras não afetam umas às outras. Usando o Teste de Kruskal-Wallis, podemos decidir se as distribuições populacionais são idênticas, sem presumir que elas sigam a distribuição normal. & # 8221; O benefício adicional desse teste não está assumindo uma distribuição normal.


Existem outros testes da mesma natureza que poderiam se encaixar nessa estrutura. O teste de Mann-Whitney-Wilcoxon ou os testes de Kolmogorov-Smirnov se encaixam perfeitamente na estrutura descrita aqui, porém isso está além do escopo deste artigo para discutir os prós e contras de cada um desses testes. Uma boa descrição junto com exemplos de R pode ser encontrada aqui.


Aqui está o código usado para gerar o gráfico acima e a análise:


No exemplo acima, o período de amostragem é maior do que o período de amostragem, portanto, eu criei aleatoriamente 1.000 subconjuntos dos dados da amostra, cada um deles tendo o mesmo comprimento que os dados fora da amostra. Então, testei cada um em um subconjunto de amostras em relação aos dados fora da amostra e gravei os valores p. Esse processo não cria um único valor p para o teste Kruskall-Wallis, mas uma distribuição que torna a análise mais robusta. Neste exemplo, a média dos valores de p é bem acima de zero (0,478), indicando que a hipótese nula deve ser aceita: há fortes evidências de que os dados de entrada e saída da amostra são provenientes da mesma distribuição.


Como de costume, o que é apresentado neste post é um exemplo de brinquedo que apenas arranha a superfície do problema e deve ser adaptado às necessidades individuais. No entanto, penso que propõe um quadro estatístico interessante e racional para avaliar os resultados fora da amostra.


Este post é inspirado nos dois artigos seguintes:


Vigier Alexandre, Chmil Swann (2007), "Efeitos de várias funções de otimização no desempenho fora da amostra de estratégias de negociação geneticamente evoluídas", prevendo a conferência sobre mercados financeiros.


Vigier Alexandre, Chmil Swann (2010), «Um processo de otimização para melhorar a consistência da amostra, um caso da Bolsa de Valores», JP Morgan Cazenove Equity Quantitative Conference, Londres, outubro de 2010.


Apresentando o fidlr: LoanceR de Dados Financeiros.


O fidlr é um suplemento do RStudio projetado para simplificar o processo de download de dados financeiros de vários provedores. Esta versão inicial é um wrapper em torno da função getSymbols no pacote quantmod e somente o Yahoo, Google, FRED e Oanda são suportados. Eu provavelmente adicionarei funcionalidades ao longo do tempo. Como de costume, com essas coisas apenas um lembrete: "O SOFTWARE É FORNECIDO" COMO ESTÁ, SEM GARANTIA DE NENHUM TIPO "# 8230; & # 8221;


Como instalar e usar o fidlr?


Você pode obter o addin / package do seu repositório Github aqui (eu vou registrá-lo no CRAN mais tarde) Instale o addin. Existe um excelente tutorial para instalar o RStudio Addins aqui. Depois que o addin é instalado, ele deve aparecer no menu Addin. Basta escolher fidlr no menu e uma janela como abaixo deve aparecer. Escolha um provedor de dados no menu suspenso Origem. Selecione um intervalo de datas no menu Data Insira o símbolo que você deseja baixar na caixa de texto do instrumento. Para baixar vários símbolos basta digitar os símbolos separados por vírgulas. Use os botões de opção para escolher se deseja baixar o instrumento em um arquivo csv ou no ambiente global. O arquivo csv será salvo no diretório de trabalho e haverá um arquivo csv por instrumento. Pressione Executar para obter os dados ou Fechar para fechar o suplemento.


Mensagens de erro e avisos são manipulados pelos pacotes subjacentes (quantmod e Shiny) e podem ser lidos no console.


Esta é uma primeira versão do projeto, então não espere a perfeição, mas esperamos que melhore com o tempo. Por favor, informe qualquer comentário, sugestão, erro etc & # 8230; para: thertrader @ gmail.


Manter um banco de dados de arquivos de preços em R.


Fazer pesquisa quantitativa implica muita análise de dados e é preciso dados limpos e confiáveis ​​para conseguir isso. O que é realmente necessário são dados limpos que sejam facilmente acessíveis (mesmo sem uma conexão com a Internet). A maneira mais eficiente de fazer isso para mim foi manter um conjunto de arquivos csv. Obviamente, este processo pode ser tratado de várias maneiras, mas eu achei um tempo extra muito eficiente e simples para manter um diretório onde eu armazeno e atualizo arquivos csv. Eu tenho um arquivo csv por instrumento e cada arquivo é nomeado após o instrumento que ele contém. A razão pela qual eu faço isso é dupla: Primeiro, eu não quero baixar dados (de preço) do Yahoo, Google, etc & # 8230; toda vez que eu quiser testar uma nova ideia, mas mais importante, uma vez que eu identifiquei e consertei um problema, eu não quero ter que fazer isso novamente na próxima vez que eu precisar do mesmo instrumento. Simples, mas muito eficiente até agora. O processo é resumido no gráfico abaixo.


Em tudo o que se segue, presumo que os dados estão vindo do Yahoo. O código terá que ser alterado para os dados do Google, Quandl, etc & # 8230; Além disso, apresento o processo de atualização dos dados diários de preços. A configuração será diferente para dados de frequência mais alta e outro tipo de conjunto de dados (ou seja, diferente dos preços).


1 & # 8211; Download de dados inicial (listOfInstruments. R & amp; historicalData. R)


O arquivo listOfInstruments. R é um arquivo contendo apenas a lista de todos os instrumentos.


Se um instrumento não é parte da minha lista (ou seja, nenhum arquivo csv na minha pasta de dados) ou se você fizer isso pela primeira vez, você terá que baixar o conjunto de dados históricos inicial. O exemplo abaixo faz o download de um conjunto de cotações diárias dos ETFs do Yahoo Finance até janeiro de 2000 e armazena os dados em um arquivo csv.


2 & # 8211; Atualizar dados existentes (updateData. R)


O código abaixo começa a partir de arquivos existentes na pasta dedicada e atualiza todos eles um após o outro. Eu costumo executar este processo todos os dias, exceto quando eu estou de férias. Para adicionar um novo instrumento, basta executar o passo 1 acima apenas para este instrumento.


3 & # 8211; Crie um arquivo de lote (updateDailyPrices. bat)


Outra parte importante do trabalho é criar um arquivo em lotes que automatize o processo de atualização acima (eu sou um usuário do Windows). Isso evita abrir o R ​​/ RStudio e executar o código a partir dele. O código abaixo é colocado em um arquivo. bat (o caminho deve ser alterado com a configuração do leitor). Note que eu adicionei um arquivo de saída (updateLog. txt) para rastrear a execução.


O processo acima é extremamente simples, pois descreve apenas como atualizar dados diários de preços. Eu tenho usado isso por um tempo e tem funcionado muito bem para mim até agora. Para dados mais avançados e / ou freqüências mais altas, as coisas podem ficar muito mais complicadas.


Como de costume, qualquer comentário é bem-vindo.


Avaliação fatorial na gestão quantitativa de portfólios.


Quando se trata de gerenciar uma carteira de ações versus um benchmark, o problema é muito diferente de definir uma estratégia de retorno absoluto. No primeiro, é preciso manter mais estoques do que no segundo, onde nenhuma ação pode ser detida se não houver oportunidade suficiente. A razão para isso é o erro de rastreamento. Isso é definido como o desvio padrão do retorno da carteira menos o retorno de referência. Quanto menos ações forem mantidas em relação a um benchmark, maior será o erro de rastreamento (por exemplo, maior risco).


A análise a seguir é amplamente inspirada no livro "Active Portfolio Management" # 8221; por Grinold & amp; Kahn Esta é a bíblia para qualquer pessoa interessada em administrar um portfólio em relação a um benchmark. Eu encorajo fortemente qualquer pessoa com interesse no tópico a ler o livro do começo ao fim. É muito bem escrito e estabelece as bases da gestão sistemática de carteiras ativas (não tenho nenhuma afiliação ao editor ou aos autores).


Aqui, estamos tentando classificar com a maior precisão possível as ações no universo de investimento em uma base de retorno a termo. Muitas pessoas criaram muitas ferramentas e inúmeras variantes dessas ferramentas foram desenvolvidas para conseguir isso. Neste post concentro-me em duas métricas simples e amplamente utilizadas: Coeficiente de Informação (IC) e Quantiles Return (QR).


O CI fornece uma visão geral da capacidade de previsão do fator. Mais precisamente, isso é uma medida de quão bem o fator classifica os estoques em uma base de retorno a termo. O IC é definido como a correlação de classificação (ρ) entre a métrica (por exemplo, fator) e o retorno para a frente. Em termos estatísticos, a correlação de postos é uma medida não paramétrica da dependência entre duas variáveis. Para uma amostra de tamanho n, as n pontuações brutas são convertidas em classificações e ρ é calculado a partir de:


O horizonte para o retorno para frente tem que ser definido pelo analista e é uma função do turnover da estratégia e da decadência alfa (isso tem sido objeto de extensa pesquisa). Obviamente, os CIs devem ser o mais alto possível em termos absolutos.


Para o leitor atento, no livro de Grinold & amp; Kahn é uma fórmula que liga a Relação de Informação (IR) e IC: com amplitude sendo o número de apostas independentes (trades). Essa fórmula é conhecida como a lei fundamental do gerenciamento ativo. O problema é que, muitas vezes, definir com precisão a amplitude não é tão fácil quanto parece.


Para ter uma estimativa mais precisa do fator poder preditivo, é necessário dar um passo além e agrupar os estoques por quantis de valores de fatores e, em seguida, analisar o retorno médio a termo (ou qualquer outra métrica de tendência central) de cada um deles. quantis. A utilidade desta ferramenta é simples. Um fator pode ter um bom IC, mas seu poder preditivo pode ser limitado a um pequeno número de ações. Isso não é bom, pois um gerente de portfólio terá que escolher ações dentro de todo o universo para cumprir sua restrição de erro de rastreamento. Bons retornos quantílicos são caracterizados por uma relação monótona entre os quantis individuais e os retornos futuros.


Todas as ações no índice S & amp; P500 (no momento da redação). Obviamente, há um viés de sobrevivência: a lista de ações no índice mudou significativamente entre o início e o final do período de amostragem, no entanto, é bom o suficiente apenas para fins ilustrativos.


O código abaixo faz o download dos preços das ações individuais no S & amp; P500 entre janeiro de 2005 e hoje (leva um tempo) e transforma os preços brutos em retorno nos últimos 12 meses e no último mês. O primeiro é o nosso fator, o último será usado como medida de retorno para frente.


Abaixo está o código para calcular o Coeficiente de Informação e o Retorno de Quantiles. Observe que eu usei quintis neste exemplo, mas qualquer outro método de agrupamento (terciles, deciles, etc.) pode ser usado. isso realmente depende do tamanho da amostra, do que você quer capturar e do tempo em que deseja ter uma visão geral ampla ou se concentrar nas caudas de distribuição. Para estimar os retornos dentro de cada quintil, a mediana tem sido usada como o estimador de tendência central. Essa medida é muito menos sensível a outliers do que a média aritmética.


E finalmente o código para produzir o gráfico de retorno Quantiles.


3 & # 8211; Como explorar as informações acima?


No gráfico acima, o Q1 é mais baixo nos últimos 12 meses e o Q5, o mais alto. Há um aumento quase monótono no retorno dos quantis entre Q1 e Q5, o que indica claramente que os estoques que caem em Q5 superam aqueles que caem em Q1 em cerca de 1% ao mês. Isso é muito significativo e poderoso para um fator tão simples (não é realmente uma surpresa, ainda que & # 8230;). Portanto, há maiores chances de vencer o índice superpondo as ações no Q5 e subestimando as que caem no primeiro trimestre em relação ao benchmark.


Um IC de 0,0206 pode não significar muito em si, mas é significativamente diferente de 0 e indica um bom poder de previsão dos últimos 12 meses de retorno geral. Testes de significância formal podem ser avaliados, mas isso está além do escopo deste artigo.


A estrutura acima é excelente para avaliar a qualidade dos fatores de investimento, no entanto, há várias limitações práticas que precisam ser abordadas para a implementação na vida real:


Reequilíbrio: Na descrição acima, é assumido que no final de cada mês a carteira é totalmente reequilibrada. Isso significa que todas as ações que caíram no 1T estão abaixo do peso e todas as ações que caíram no 5ºT estão com sobrepeso em relação ao benchmark. Isso nem sempre é possível por razões práticas: algumas ações podem ser excluídas do universo de investimentos, existem restrições sobre o peso da indústria ou do setor, há restrições no volume de negócios etc. & # 8230; Custos de Transação: Isso não foi levado em conta na análise acima e isso é um sério freio para a implementação da vida real. Considerações de rotatividade são geralmente implementadas na vida real em uma forma de penalidade na qualidade do fator. Coeficiente de transferência: Esta é uma extensão da lei fundamental da gestão ativa e relaxa a suposição do modelo de Grinold de que os gerentes não enfrentam restrições que os impeçam de traduzir suas percepções de investimentos diretamente em apostas de portfólio.


E, finalmente, estou espantado com o que pode ser alcançado em menos de 80 linhas de código com o R & # 8230;


Como de costume, qualquer comentário é bem-vindo.


Risco como uma Variável de Sobrevivência & # 8221;


Me deparo com muitas estratégias na blogosfera, algumas são interessantes, algumas são uma completa perda de tempo, mas a maioria compartilha uma característica comum: pessoas desenvolvendo essas estratégias fazem sua lição de casa em termos de análise do retorno, mas muito menos atenção é dada ao lado do risco sua natureza aleatória. Eu vi comentários como "um rebaixamento de 25% em 2011, mas um excelente retorno geral". Bem, a minha aposta é que ninguém na terra permitirá que você experimente uma perda de 25% com seu dinheiro (a menos que acordos especiais estejam em vigor). No mundo dos fundos de hedge, as pessoas têm muito pouca tolerância ao saque. Geralmente, como um novo operador em um fundo de hedge, supondo que você não tenha reputação, você tem muito pouco tempo para se provar. Você deve ganhar dinheiro a partir do primeiro dia e continuar fazendo isso por alguns meses antes de ganhar um pouco de credibilidade.


Primeiro, digamos que você começou mal e perdeu dinheiro no começo. Com um rebaixamento de 10%, você certamente está fora, mas mesmo com um rebaixamento de 5%, as chances de ver sua alocação reduzida são muito altas. Isso tem implicações significativas em suas estratégias. Suponhamos que, se você perder 5%, sua alocação será dividida por 2 e você voltará à sua alocação inicial somente quando ultrapassar a marca d'água alta novamente (por exemplo, o levantamento voltará a 0). No gráfico abaixo, simulei o experimento com uma das minhas estratégias.


Você começa a operar em 1º de junho de 2003 e tudo vai bem até 23 de julho de 2003, onde sua curva de rebaixamento atinge o limite de -5% (** 1 **). Sua alocação é reduzida em 50% e você não cruza o limite máximo até 05 de dezembro de 2003 (** 3 **). Se você mantiver a alocação inalterada, o nível da marca d'água alta teria sido ultrapassado em 28 de outubro de 2003 (** 2 **) e até o final do ano você teria ganho mais dinheiro.


Mas vamos empurrar o raciocínio um pouco mais. Ainda no gráfico acima, suponha que você tenha muito azar e comece a negociar em meados de junho de 2003. Você atingiu o limite de rebaixamento de 10% no início de agosto e está provavelmente fora do jogo. Você teria começado no início de agosto a sua alocação não teria sido cortada e você acaba fazendo um bom ano em apenas 4 meses completos de negociação. Nesses dois exemplos, nada mudou, mas sua data de início & # 8230 ;.


O sucesso comercial de qualquer indivíduo tem alguma forma de dependência de caminho e não há muito o que fazer sobre isso. No entanto, você pode controlar o tamanho do drawdown de uma estratégia e isso deve ser tratado com muito cuidado. Um portfólio deve ser diversificado em todas as dimensões possíveis: classes de ativos, estratégias de investimento, frequências de negociação, etc & # 8230 ;. Dessa perspectiva, o risco é a sua "variável de sobrevivência". Se gerenciado corretamente, você tem a chance de permanecer no jogo por tempo suficiente para perceber o potencial de sua estratégia. Caso contrário, você não estará lá no próximo mês para ver o que acontece.


Como de costume, qualquer comentário é bem-vindo.


Um aplicativo simples e brilhante para monitorar as estratégias de negociação & # 8211; Parte II.


Esta é uma continuação do meu post anterior & # 8220; Um aplicativo simples e simples para monitorar as estratégias de negociação & # 8220 ;. Eu adicionei algumas melhorias que tornam o aplicativo um pouco melhor (pelo menos para mim!). Abaixo está a lista de novos recursos:


Um arquivo. csv de amostra (aquele que contém os dados brutos) A & # 8220; EndDate & # 8221; caixa suspensa que permite especificar o final do período. A & # 8220; Risco & # 8221; página contendo uma análise de VaR e um gráfico de pior desempenho ao longo de vários horizontes A & # 8220; How To & # 8221; página explicando como usar e adaptar o aplicativo às necessidades individuais.


Eu também fiz o aplicativo totalmente auto-contido. Agora ele está disponível como um produto autônomo e não é necessário ter o R ​​/ RStudio instalado em seu computador para executá-lo. Ele pode ser baixado da conta do Google R Trader Google. Esta versão do aplicativo é executada usando o R portátil e o Chrome portátil. Para o leitor atento, este link explica detalhadamente como empacotar um aplicativo Shiny em um aplicativo de desktop (somente Windows por enquanto).


1 & # 8211; Como instalar o & amp; execute o aplicativo no seu computador.


Criar uma pasta específica Descompacte o conteúdo do arquivo. zip nessa nova pasta. Altere os caminhos no arquivo runShinyApp para corresponder às suas configurações Para executar o aplicativo, basta ativar o arquivo run. vbs. Eu também incluí um ícone (RTraderTradingApp. ico) se você quiser criar um atalho na sua área de trabalho.


ui. R: controla o layout e a aparência do servidor de aplicativos. R: contém as instruções necessárias para criar o aplicativo. Você pode carregar quantas estratégias quiser, contanto que o arquivo csv correspondente tenha o formato correto (veja abaixo). shinyStrategyGeneral. R: carrega os pacotes necessários e inicia o aplicativo.


3 & # 8211; Como adicionar uma estratégia de negociação?


Crie o arquivo. csv correspondente no diretório direito Crie uma nova entrada na função reativa de dados (dentro do arquivo server. R) Adicione um elemento extra ao parâmetro choice na primeira selectInput no sidebarPanel (dentro do arquivo ui. R) . O nome do elemento deve corresponder ao nome da nova entrada acima.


Remova a entrada na função reativa de dados correspondente à estratégia que você deseja remover (dentro do arquivo server. R). Remova o elemento no parâmetro choice na primeira selectInput no sidebarPanel correspondente à estratégia que você deseja remover (dentro da interface do usuário). Arquivo. R).


Por favor, sinta-se à vontade para entrar em contato caso tenha alguma sugestão.


Um aplicativo simples e brilhante para monitorar as estratégias de negociação.


Em um post anterior, mostrei como usar R, Knitr e LaTeX para criar um relatório de estratégia de modelo. Este post vai um passo além, tornando a análise interativa. Além da interatividade, o Aplicativo Brilhante também resolve dois problemas:


Agora posso acessar todas as minhas estratégias de negociação a partir de um único ponto, independentemente do instrumento negociado. Juntamente com a interatividade brilhante, permite uma comparação mais fácil. Eu posso me concentrar em um período de tempo específico.


O código usado neste post está disponível em um repositório Gist / Github. Existem essencialmente 3 arquivos.


ui. R: controla o layout e a aparência do aplicativo. server. R: contém as instruções necessárias para criar o aplicativo. Ele carrega os dados e os formata. Há um arquivo csv por estratégia, cada um contendo pelo menos duas colunas: date e retorna com o seguinte formato: (& # 8220; 2010-12-22 & # 8243;, & # 8221; 0.04% & # 8221;). Você pode carregar quantas estratégias quiser, desde que elas tenham o formato correto. shinyStrategyG eneral. R: carrega os pacotes necessários e inicia o aplicativo.


Este aplicativo está provavelmente longe de ser perfeito e certamente o aprimorarei no futuro. Sinta-se à vontade para entrar em contato caso tenha alguma sugestão.


Um grande obrigado à equipe do RStudio / Shiny por uma ótima ferramenta.


Usando Algoritmos Genéticos no Comércio Quantitativo.


A pergunta que se deve sempre fazer quando se utiliza indicadores técnicos é o que seria um critério objetivo para selecionar os parâmetros dos indicadores (por exemplo, por que usar uma RSI de 14 dias em vez de 15 ou 20 dias?). Algoritmos genéticos (GA) são ferramentas adequadas para responder a essa pergunta. Neste post eu vou mostrar como configurar o problema em R. Antes de prosseguir, o lembrete usual: O que eu apresento neste post é apenas um exemplo de brinquedo e não um convite para investir. Também não é uma estratégia acabada, mas uma ideia de pesquisa que precisa ser mais pesquisada, desenvolvida e adaptada às necessidades individuais.


O que são algoritmos genéticos?


A melhor descrição do GA que eu descobri vem da Cybernatic Trading, um livro de Murray A. Ruggiero. Os algoritmos genéticos foram inventados por John Holland em meados da década de 1970 para resolver problemas difíceis de otimização. Este método usa a seleção natural, sobrevivência do mais apto & # 8221;. O processo geral segue as etapas abaixo:


Codifique o problema em cromossomos Usando a codificação, desenvolva uma função de adequação para avaliar o valor de cada cromossomo na solução de um determinado problema Inicialize uma população de cromossomos Avalie cada cromossomo na população Crie novos cromossomos acasalando dois cromossomos. Isso é feito mutando e recombinando dois pais para formar dois filhos (os pais são selecionados aleatoriamente, mas influenciados por sua aptidão) Avaliar o novo cromossomo Excluir um membro da população que está menos apto do que o novo cromossomo e inserir o novo cromossomo na população . Se o critério de parada for atingido (número máximo de gerações, os critérios de aptidão são bons o suficiente & # 8230;) então retorne o melhor cromossomo ou vá para o passo 4.


De uma perspectiva de negociação, GA é muito útil porque é bom em lidar com problemas altamente não-lineares. No entanto, eles exibem algumas características desagradáveis ​​que valem a pena mencionar:


Over fitting: Este é o principal problema e cabe ao analista configurar o problema de forma a minimizar esse risco. Tempo de computação: Se o problema não for definido corretamente, pode ser extremamente longo para chegar a uma solução decente e a complexidade aumenta exponencialmente com o número de variáveis. Daí a necessidade de selecionar cuidadosamente os parâmetros.


Existem vários pacotes R lidando com GA, eu escolhi usar o mais comum: rgenoud.


Preços de fechamento diários para a maioria dos ETFs líquidos do Yahoo finance, que remontam a janeiro de 2000. O período de amostragem vai de janeiro de 2000 a dezembro de 2010. O período fora da amostra começa em janeiro de 2011.


A lógica é a seguinte: a função de adequação é otimizada durante o período de amostragem para obter um conjunto de parâmetros ótimos para os indicadores técnicos selecionados. O desempenho desses indicadores é então avaliado no período fora da amostra. Mas antes disso, os indicadores técnicos devem ser selecionados.


O mercado de ações apresenta duas características principais que são familiares para qualquer pessoa com alguma experiência de negociação. Momento de longo prazo e reversão de curto prazo. Essas características podem ser traduzidas em termos de indicadores técnicos por: médias móveis cross over e RSI. Isto representa um conjunto de 4 parâmetros: Períodos de look-back para médias móveis de longo e curto prazo, período de retorno para o RSI e limiar RSI. Os conjuntos de parâmetros são os cromossomos. O outro elemento-chave é a função de fitness. Podemos querer usar algo como: máximo retorno ou taxa de Sharpe ou rebaixamento médio mínimo. A seguir, optei por maximizar o índice de Sharpe.


A implementação de R é um conjunto de 3 funções:


FunçãoFuncional: define a função de adequação (por exemplo, o índice máximo de Sharpe) a ser usado no mecanismo de negociação do Google Analytics: resumo das estatísticas de negociação para dentro e fora dos períodos de amostra para fins de comparação genoud: o mecanismo GA do pacote rgenoud.


A função genoud é bastante complexa, mas eu não vou explicar o que cada parâmetro significa, pois quero manter este post curto (e a documentação é realmente boa).


Na tabela abaixo, apresento para cada instrumento os parâmetros ótimos (período de retorno do RSI, limiar do RSI, média móvel de curto prazo e média móvel de longo prazo) juntamente com as estatísticas de entrada e saída da amostra.


Antes de comentar os resultados acima, quero explicar alguns pontos importantes. Para corresponder à lógica definida acima, limitei os parâmetros para garantir que o período de look-back para a média móvel de longo prazo seja sempre maior que a média móvel mais curta. Eu também limitei o otimizador a escolher apenas as soluções com mais de 50 negociações no período de amostragem (por exemplo, significância estatística).


No geral, os resultados fora da amostra estão longe de serem impressionantes. Os retornos são baixos mesmo se o número de negociações for pequeno para tornar o resultado realmente significativo. No entanto, há uma perda significativa de eficiência entre o período de amostragem dentro e fora do Japão (EWJ), o que muito provavelmente significa um ajuste excessivo.


Este post é destinado a dar ao leitor as ferramentas para usar corretamente o GA em uma estrutura de negociação quantitativa. Mais uma vez, é apenas um exemplo que precisa ser mais refinado. Algumas melhorias potenciais para explorar seriam:


função de fitness: maximizar o índice de Sharpe é muito simplista. A & # 8220; mais inteligente & # 8221; A função certamente melhoraria o padrão de estatísticas de negociação fora da amostra: tentamos capturar um padrão muito simples. Uma pesquisa de padrões mais aprofundada é definitivamente necessária. otimização: há muitas maneiras de melhorar a maneira como a otimização é conduzida. Isso melhoraria tanto a velocidade de cálculo quanto a racionalidade dos resultados.


O código usado neste post está disponível em um repositório Gist.


Rotação Setorial.


O que é 'Rotação Setorial'


A rotação setorial é a ação de transferir ativos de investimento de um setor da economia para outro. A rotação setorial envolve a utilização dos recursos provenientes da venda de títulos relacionados a um determinado setor de investimento para a compra de títulos em outro setor. Essa estratégia é usada como um método para capturar retornos de ciclos de mercado e diversificar as participações ao longo de um período de detenção especificado.


QUEBRANDO 'Rotação Setorial'


Uma estratégia de rotação setorial pode ser implementada por indivíduos ou gerentes de portfólio. A rotação do setor exige muita liquidez e ampla latitude para a aprovação de posições de investimento. Se uma ampla flexibilidade comercial estiver disponível, a rotação setorial pode ser uma forma viável de posicionar portfólios de investimento para aproveitar os ciclos de mercado e as tendências que prevêem o potencial de valorização de capital em áreas específicas do universo de investimento.


A rotação setorial busca capitalizar a teoria de que nem todos os setores da economia têm um bom desempenho ao mesmo tempo. Os gestores que usam estratégias de rotação setorial pretendem transferir o capital de investimento para setores que identificam como oferecendo oportunidades de investimento rentáveis. A pesquisa aprofundada sobre a economia e os dados do Departamento Nacional de Pesquisa Econômica ajuda a apoiar o investimento em rotação setorial. Outros tipos de investimento em rotação setorial podem centrar-se em torno de tendências sazonais ou anuais, com dados que sustentam as vantagens de entrar e sair de diferentes categorias lucrativas ao longo do ano.


Em linhas gerais, pesquisas sobre ciclos de mercado formam a base da teoria do investimento em torno do investimento em rotação setorial. O amplo investimento no setor de rotação de mercado procura acompanhar os ciclos de mercado da economia. Esses ciclos podem ser caracterizados de várias maneiras, mas são geralmente associados a perspectivas otimistas e pessimistas, bem como recessões, recuperações, expansões e contrações.


As estratégias de rotação setorial após os ciclos do mercado econômico geralmente buscam identificar oportunidades otimistas do setor em mercados em expansão e mitigar as perdas por meio da rotação do setor para portos seguros em mercados recessivos. Em certo sentido, a rotação setorial é um conceito que os gerentes de portfólio mais ativos têm em mente ao considerar todos os tipos de investimentos. No entanto, a implementação de estratégias de rotação setorial com profundidade de mercado significativa requer visão abrangente e acesso a uma pesquisa de mercado aprofundada para o sucesso. Os fundos de rotação setorial geridos profissionalmente podem ser um bom investimento, porque procuram manter posições nas áreas mais rentáveis ​​do mercado em todas as fases do ciclo económico de uma economia. (Veja também: Rotação Setorial: os Essenciais.)


Limitações da rotação do setor.


As estratégias de rotação setorial podem ser dispendiosas de implementar devido aos custos potenciais associados à ampla negociação no mercado, o que pode afetar negativamente os retornos. Movendo capital dentro e fora dos setores pode ser caro devido a taxas de negociação e comissões. Por essa razão, a rotação setorial é tipicamente uma estratégia considerada para gerentes institucionais ou investidores de alto patrimônio líquido.


A rotação do setor também requer uma análise muito ativa de investimentos e dados econômicos. Normalmente, é uma consideração para gerentes de portfólio profissionais devido às restrições de tempo e acesso aos dados envolvidos.


Fundos de Investimento Rotativo Setorial.


Os fundos de investimento de rotação setorial não são amplamente oferecidos para investidores de varejo no universo de investimentos. A Fidelity administra um fundo, o Fundo de Rotatividade Setorial, que agora está fechado para novos investidores. O Fundo foi lançado em dezembro de 2009 e registra um retorno anual de 9,04% desde o início. O Fundo investe em várias classes de ativos. Ele usa uma estratégia de fundos de fundos com ETFs investidos em todos os setores do mercado. Ponderações dos setores de mercado são ajustadas com base nas visões de rotação do setor.


Vários gestores de investimentos institucionais também oferecem estratégias de investimento em rotação setorial. Esses gerentes geralmente usam uma estratégia de fundos de fundos para obter exposição no mercado. Os gestores de investimento institucional oferecem fundos de rotação setorial com base nos setores de uma única economia ou também podem usar a rotação setorial para desenvolver uma carteira de investimentos em vários países.


Estratégias de rotação do setor de hedge.


INSTRUMENTOS COMERCIALIZADOS: Famílias de Fundos Mútuos como Fidelity, Rydex e Profunds. Apenas nenhum fundo de carga é usado.


ROTAÇÃO DO SETOR HEDGED A cx é uma estratégia inovadora de momentum de força relativa que usa hedging para proteger sua conta durante desacelerações do mercado. O sistema capitaliza no fato de que os diferentes setores têm personalidades diferentes - eles não sobem e descem em conjunto.


Os setores entrarão e sairão de moda durante as diferentes fases do ciclo econômico, e certos setores tenderão a responder a eventos geopolíticos particulares. O sistema executa seu algoritmo de classificação no final de cada mês para mantê-lo investido em setores com o impulso mais forte. Durante as desacelerações do mercado, as alocações setoriais serão reduzidas e a cobertura será dimensionada.


O gráfico abaixo ilustra como o nosso fator de momentum proprietário evolui ao longo do tempo. Abaixo, são apresentados os rankings mensais dos fundos setoriais da Fidelity Select em um período de 10 anos. Verde indica momentum mais forte e vermelho indica momentum mais fraco:


IMPLEMENTANDO O SISTEMA DE NEGOCIAÇÃO.


Este sistema é uma estratégia de baixa manutenção, uma vez que é negociado uma vez por mês. Nós executamos o sistema após o fechamento antes do último dia de cada mês e você receberá um email com um link para entrar no nosso site, que lhe dará o portfólio alvo para o qual você irá rebalancear. O portfólio alvo lista cada símbolo de ticker necessário e os pesos correspondentes dentro do portfólio.


Se você não for capaz de negociar o sistema sozinho devido a limitações de tempo ou falta de nível de conforto, ele pode ser negociado automaticamente em sua própria conta por um gerente financeiro profissional. Para mais detalhes, visite nossa página de negociação automática para obter detalhes.


Uma estratégia de negociação de rotação setorial que você pode seguir.


Uma estratégia de negociação de rotação setorial que você pode seguir.


Se você assistir a qualquer um dos canais de notícias de negócios por mais de uma hora por semana, é provável que você ouça um especialista dizer que os investidores estão transferindo dinheiro para setores específicos. Eles podem dizer que "o dinheiro está fluindo para fora das finanças e para os estoques de mineração de ouro", por exemplo. Embora pareça que declarações como essa exigem conhecimento real do que os outros investidores estão pensando, esse não é o caso. Às vezes os comentários são baseados em observações de indicadores de fluxo monetário e outras vezes podem ser baseados em um modelo teórico de rotação setorial como o mostrado abaixo.


Este modelo foi popularizado por John Murphy, CMT. Ele tenta amarrar os altos e baixos do ciclo de negócios às mudanças no mercado de ações. Sob este modelo, esperamos que o mercado de ações conduza a economia. Quando a economia está na parte mais baixa da recessão, em outras palavras, quando as condições econômicas estão em seu pior nível, com altos níveis de desemprego, devemos esperar que o mercado de ações esteja em um nível mais baixo e começando a subir. Sob esta teoria, a economia acabará por acompanhar o mercado de ações. De maneira semelhante, um topo do mercado de ações deve se desenvolver quando a economia está forte e o desemprego está baixo. Esse modelo explica o ditado popular de que “os mercados em alta escala afloram a uma parede de preocupação”. Más notícias econômicas criam a má notícia que um mercado altista ignora. Também explica por que “boas notícias são más notícias” para o mercado, já que boas notícias econômicas prevalecem quando o mercado está nos primórdios de um mercado em baixa.


Na figura acima, no topo do modelo estão os nomes dos setores que devem se sair bem com base em onde a economia está no ciclo de negócios. À medida que os mercados caem, os investidores inteligentes estão olhando para frente e comprando. Esperamos que os estoques de tecnologia fiquem baixos e liderem o caminho mais alto. Quando ficar claro que a economia está em recuperação, os investidores devem se transformar em ações industriais, já que essas serão as empresas que devem se sair bem em uma expansão econômica. À medida que as indústrias se tornam supervalorizadas, a rotação continua com um movimento para os estoques de energia e as empresas básicas de consumo, como empresas de alimentos embalados. À medida que o mercado supera, os investidores inteligentes devem se preocupar com o iminente mercado de baixa e devem estar se movendo para ações defensivas com altos dividendos, como serviços públicos e financeiros.


Esse é um modelo atraente, mas cada ciclo de negócios é diferente. De acordo com o Bureau Nacional de Pesquisas Econômicas, as expansões econômicas duraram apenas 10 meses e até 120 meses. As recessões variaram de 8 meses a 65 meses de duração. Dada a variabilidade da economia, é duvidoso que o mercado de ações siga uma estratégia de rotação precisa como a mostrada no gráfico acima.


Este padrão pouco conhecido precedeu movimentos de 578% em ARWR, 562% em LCI, 513% em ICPT, 439% em EGRX, 408% em ADDUS e muito mais. Para obter todos os detalhes, clique aqui.


Nos mercados, há uma rotação, mas a rotação é impossível prever antecipadamente. Os gestores de investimento que giram com fundos de rotação setorial geralmente dependem de modelos que se adaptam ao ambiente atual de mercado para dizer a eles onde o dinheiro está fluindo. Podemos ver o quão grande os investidores se sentem em setores diferentes com uma estratégia simples que depende da força relativa. Esses modelos podem ser difíceis de manter para investidores individuais, porque pode haver muita matemática envolvida. Vejamos um desses modelos mais complexos e, em seguida, criaremos uma versão simplificada que você poderá monitorar com apenas alguns minutos por mês.


Qualquer modelo de investimento começa com um grupo de ações ou ETFs que serão negociados. Para um modelo de rotação setorial, os ETFs setoriais podem ser usados. Nove ETFs do setor comercial são mostrados na tabela a seguir.


Para decidir quais comprar, você poderia calcular a taxa de variação de seis meses (ROC) de cada ETF uma vez por mês. Os ETFs seriam então classificados do maior valor ROC para o mais baixo. Nesse modelo, os três principais fundos seriam comprados. No mês seguinte, você calcularia o ROC novamente. Se os fundos que você possui estão entre os cinco principais ETFs classificados, você os mantém. Quando um dos ETFs cai entre os cinco primeiros, você o vende e passa para o ETF mais bem classificado que você não possui atualmente. Muitos gerentes seguem um modelo como este, usando mais ETFs e calculando ROC ou outra medida de força relativa semanalmente.


Quando o ROC do ETF está subindo mais rápido do que o mercado de ações amplo, o dinheiro está fluindo para esse setor. Quando o ROC está abaixo da média, o dinheiro está saindo desse setor. Isso é tudo o que precisamos saber para determinar se o dinheiro está entrando ou saindo de um setor. Não requer conhecimento especializado sobre o que os investidores estão fazendo em tempo real ou matemática avançada. Os preços sobem quando há mais compradores do que vendedores e eles caem quando há mais vendedores do que compradores. Ao rastrear o ROC de vários setores, podemos identificar se há mais compradores ou vendedores.


A pesquisa mostrou que essa estratégia simples pode vencer o mercado, mas requer algum esforço para seguir. Uma estratégia mais simples faz o mesmo, superando o mercado e reduzindo o risco. Os resultados do sistema, conforme explicado em Estratégias de Força Relativa para Investir, de Mebane Faber, são mostrados no gráfico a seguir.


As regras são bastante simples. Você usa os mesmos nove ETFs mostrados acima para a estratégia ROC. Uma vez por mês, você calcula a média móvel de 10 meses (MA) para cada ETF. Este MA está disponível em vários sites. Se o ETF estiver acima do MA, compre ou guarde se você já o possui. Você vende quando o ETF cai abaixo do MA de 10 meses. Existem mais algumas regras que tratam de como alocar capital. Você investe igualmente em cada ETF acima do MA. Se houver nove ETFs acima do MA, você investe 11,1% do seu capital em cada um. Se houver apenas oito ETFs acima do MA, 12,5% do capital é investido em cada um.


Se apenas 4 dos setores estiverem acima do MA, mova 25% da sua conta em dinheiro para proteger o capital. Os fundos remanescentes seriam divididos em partes iguais e investidos nos 5 fundos negociados acima de sua MA de 10 meses. Se 6 dos ETFs estiverem abaixo de seu AM, segure 50% da sua conta em dinheiro e divida o restante nos outros três ETFs. Se houver apenas 2 ETFs acima do MA, aloque 75% do valor da sua conta a dinheiro e divida o restante nos 2 fundos acima do seu MA. Quando nenhum ETF está acima de seu MA, você está 100% em dinheiro.


As regras podem parecer confusas no começo, mas são simples de seguir. Os resultados valem o esforço. Em média, essa estratégia supera o S & P 500 em uma média de 3% a 6% ao ano. Esses retornos extras podem ajudá-lo a manter sua aposentadoria no rumo certo ou a atender a quaisquer outras metas financeiras que você possa ter.


Você pode fazer melhor? Você pode, mas os riscos serão maiores. Em vez de usar ETFs, você poderia usar ações individuais. Por exemplo, você poderia usar uma das participações menores no ETF. Você poderia classificar as dez principais posições de ETF da ROC, comprando as ações mais bem classificadas em vez do ETF. Mas possuir uma ação sempre será mais arriscado do que possuir um ETF porque os ETFs são investimentos diversificados. Uma ação carrega mais risco do que um investimento diversificado.


No geral, muitos investidores encontrarão a estratégia simples de MA de 10 meses para fornecer potencial de crescimento suficiente ao gerenciar os riscos que acompanham qualquer investimento.


Santa Monica, CA 90405.


Ligação gratuita 800-670-8332.


Reivindique sua assinatura gratuita em nosso premiado boletim informativo sobre investimentos.

No comments:

Post a Comment