Multi-Asset Backtest. Estratégias de Negociação Rotacional
Quero discutir a implementação de Rotational Trading Strategies usando a biblioteca de backtesting na Systematic Investor Toolbox. A estratégia Rotational Trading muda as alocações de investimento ao longo do tempo, apostando em poucos ativos de topo. Por exemplo, o ranking pode ser baseado na força relativa ou momentum. Alguns exemplos das Estratégias de Negociação Rotacional (ou Atribuição Táctica de Activos) são:
Quero ilustrar o Rotational Trading usando a estratégia introduzida no ETF Screen no post Estratégia do Setor ETF. A cada mês, esta estratégia investe nos dois primeiros dos 21 ETFs classificados por seus retornos de 6 meses. Para reduzir o volume de negócios, nos meses subsequentes as posições da ETF são mantidas desde que estes ETFs estejam entre os 6 primeiros.
Antes que possamos implementar essa estratégia, precisamos criar duas rotinas auxiliares. Primeiro, vamos criar uma função que irá selecionar as posições N superior para cada período:
Em seguida, vamos criar uma função que irá selecionar as posições N superior para cada período e mantê-los até que eles caem abaixo KeepN rank:
Agora estamos prontos para implementar essa estratégia usando a biblioteca de backtesting na Caixa de Ferramentas do Systematic Investor:
Há muitas maneiras de melhorar essa estratégia. Aqui está uma lista de exemplos de maneiras adicionais a considerar:
Considere uma variedade de métodos de classificação. I. e. Retornos 1/2/3/6/12 meses e suas combinações, classificação ajustada pelo risco.
Para controlar os levantamentos e aumentar o desempenho, considere o mecanismo de cronometragem apresentado em A Approach Quantitative to Tactical Asset Allocation by M. Faber (2006).
Considere um universo de ativos diferente. Incluir os ETFs que estão menos correlacionados aos outros ativos, como Commodities, Fixed Income e International Equity Markets. Por exemplo, dê uma olhada no post de Estratégia Internacional de País Único.
A única fronteira é a sua imaginação. Eu recomendaria também para fazer a análise da sensibilidade durante seu desenvolvimento da estratégia para certificar-se que seus não estão overfitting os dados.
Para ver o código-fonte completo para este exemplo, por favor, dê uma olhada na função bt. rotational. trading. test () em bt. test. r no github.
No comments:
Post a Comment