Capítulo 8. Backtesting e Stress Testing Home R e código Matlab Capítulo 8. Testes de Backtesting e Stress Copyright 2017 Jon Danielsson. Licenciado sob a Licença Apache, Versão 2.0 (a Licença) você não pode usar este arquivo, exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em. Apache. org/licenses/LICENSE-2.0. A menos que seja exigido pela lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído de acordo com a forma como é, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Veja a Licença para o idioma específico que regem as permissões e limitações sob o License. Listing 8.1: Carregar dados em R Última edição: Agosto de 2017 Listagem 8.2: Carregar dados no Matlab Última edição: Agosto de 2017 Listagem 8.3: Set backtest up in R Última edição: Agosto de 2017 Listagem 8.4: Definir backtest em Matlab Última edição: Agosto de 2017 Listagem 8.5: Executar backtest em R Última edição: Agosto de 2017 Listagem 8.6: Executar backtest em Matlab Última edição: Agosto de 2017 Listagem 8.7: Análise de backtesting em R Última edição: Agosto 2017 Listagem 8.10: Teste de cobertura de Bernoulli em Matlab Última revisão: 2017 Listagem 8.11: Teste de cobertura de Bernoulli em R Última edição: Agosto de 2017 Listagem 8.10: Teste de cobertura de Bernoulli em Matlab Última revisão: 8.12: Teste de cobertura de independência no Matlab Última revisão: 2017 Listagem 8.13: Backtesting SP-500 em R Última edição: Agosto de 2017 Listagem 8.14: Backtesting SP-500 no Matlab Última edição: 201713. Testes de Backtesting e Stress Peter F. Christoffersen Disponível online 22 Novembro de 2017. Resumo do editor Este capítulo considera as previsões de medidas de risco ex ante do modelo e as compara com o retorno da carteira realizada ex post. A previsão da medida de risco assume a forma de um Value-at-Risk (VaR), um Esvaziamento Esperado (ES), a forma de toda a distribuição de retorno ou talvez a forma da cauda esquerda da distribuição apenas. O backtesting de um modelo de risco é visto como uma etapa final no procedimento de construção de modelo. O agrupamento em tempo de violações de VaR representa uma séria ameaça à saúde financeira da instituição. Devido às limitações práticas decorrentes da gestão de grandes carteiras, os gerentes de risco geralmente trabalham com amostras de dados relativamente curtas. Esta situação pode ser grave se os dados históricos disponíveis não reflectirem adequadamente os potenciais riscos em curso. Para compensar as insuficiências dos dados disponíveis, pode ser útil gerar artificialmente cenários extremos dos principais fatores que impulsionam os retornos da carteira e, em seguida, avaliar a saída resultante do modelo de risco. Palavras-chave VaR em tempo real VaR violações dependência distribuição avaliação de projeção teste de estresse coerente Resumo O objetivo deste capítulo é considerar as previsões de medidas de risco ex ante do modelo e compará-las com o retorno de carteira realizado ex post. A previsão da medida de risco pode assumir a forma de um Value-at-Risk (VaR), um déficit esperado (ES), a forma de toda a distribuição de retorno, ou talvez a forma da cauda esquerda da distribuição apenas. Precisamos ser capazes de testar qualquer uma dessas medidas de risco de interesse. Os procedimentos de backtest desenvolvidos neste capítulo podem ser vistos como uma verificação diagnóstica final do modelo de risco agregado, complementando os vários diagnósticos específicos abordados nos capítulos anteriores. A discussão sobre backtesting é seguida por uma seção sobre stress testing no final do capítulo. Figura 13.1. Figura 13.2. Figura 13.3. Figura 13.4. Figura 13.5. Copyright 2017 Elsevier Inc. Todos os direitos reservados. Artigos de citação () Teste de estresse para estratégia de negociação Robustness por Michael R. Bryant No artigo sobre estratégias de negociação de multi-mercado. Discuti o conceito de robustez, que descrevi como insensibilidade às variações nos dados em que a estratégia se baseia. Construir um sistema comercial em vários mercados é uma maneira de aumentar a robustez. No entanto, o que se você já tem uma estratégia e você quer ver o quão robusto é Testando uma estratégia de negociação para robustez é muitas vezes referida como análise de sensibilidade, ou mais coloquialmente como stress testing. A idéia básica é ver o que acontece quando pequenas mudanças são feitas aos insumos de estratégia, dados de preços ou outros elementos da estratégia ou do ambiente de negociação. Uma estratégia robusta exibe uma reação proporcional e relativamente silenciosa a tais mudanças, ao passo que uma estratégia que não é robusta reagirá desproporcionalmente e às vezes fracassará quando pequenas mudanças forem feitas em seus insumos ou no ambiente. Por que isso é importante Ponha simplesmente, a robustez é importante porque os mercados nunca permanecem os mesmos. Tome as entradas de estratégia, por exemplo. Entradas como o comprimento de look-back para uma média móvel podem ser otimizadas durante o período de back-test, mas, no futuro, valores diferentes podem ser ótimos. Queremos saber o quão bem a estratégia irá funcionar quando as entradas não são mais otimizadas. Uma maneira de resolver isso é ver como os resultados mudam quando os valores de entrada são alterados. Como explicado no artigo anterior, a idéia de robustez está relacionada com a superação de estratégias. Nós queremos certificar-se de que a estratégia não foi cabida tão firmemente ao mercado durante o processo de desenvolvimento que não pode resistir a quaisquer mudanças no mercado. De um modo geral, podemos testar para que, alterando o mercado, alterando a estratégia, ou ambos. Uma estratégia que não resiste bem a mudanças relativamente pequenas não é robusta e é provável que seja excessiva. Tal estratégia não deve ser esperada para fazer bem no futuro. Tipos de Testes de Stress Há muitas maneiras diferentes que uma estratégia pode ser testada stress. Podemos fazer alterações na própria estratégia ou nos dados de preços nos quais o back-testamos. Podemos alterar os custos de negociação, como a quantidade de deslizamento, ou alterar o dimensionamento de posição. Em princípio, qualquer coisa que afeta os resultados de back-testing da estratégia pode ser variada. Neste artigo, serão discutidos os seguintes três tipos de testes de estresse: Alterando as entradas da estratégia. Fazer pequenas alterações nos preços individuais. Mudando a barra de partida. A justificativa para mudar os insumos da estratégia foi discutida acima. Para alterá-los, uma porcentagem será escolhida aleatoriamente entre - Max e Max, onde Max pode ser da ordem de 1 ou 5. Essa porcentagem será aplicada ao intervalo de valores para cada entrada. Por exemplo, se escolhermos o comprimento do look-back para um indicador do intervalo de valores de 1 a 100, então o intervalo seria 100 e a porcentagem de alteração escolhida aleatoriamente seria aplicada a 100. O valor da alteração, positivo ou negativo Negativo, seria então adicionado ao valor de entrada original para torná-lo maior ou menor por esse valor. Bem, também especificar uma quantidade mínima possível alteração, como 1 para a quantidade para alterar um indicador look-back comprimento. Dessa forma, se a porcentagem de alteração aleatória for um número pequeno, a entrada ainda será alterada. Uma maneira que uma estratégia pode ser over-fit, e, portanto, não robusto, é se o seu ajuste muito próximo a preços específicos no back-test. Por exemplo, se a estratégia entra muito tempo em uma parada e vários grandes negócios rentáveis entrar no preço elevado do dia, que deve levantar uma bandeira vermelha. O que os resultados pareceriam se o alto tivesse sido um tique menos nesses dias Se uma mudança tão pequena arruinasse os resultados, a estratégia não é claramente robusta. Uma técnica de teste de estresse para detectar esse tipo de ajuste excessivo é fazer mudanças aleatórias nos preços individuais e avaliar os resultados. Para alterar aleatoriamente os dados de preço, bem usar duas configurações. Uma é a probabilidade de mudar um preço. Por exemplo, se a probabilidade for 50, isso significa que há uma chance de 50 que qualquer preço - aberto, alto, baixo, próximo de cada barra - seja alterado. A segunda configuração é a alteração percentual máxima que será aplicada a um preço que está sendo alterado. Tal como com os valores de entrada, a quantidade real da alteração é escolhida aleatoriamente entre - Max e Max, onde Max é a alteração de preço percentual máximo. O valor de Max é tomado como uma porcentagem do intervalo verdadeiro médio nas últimas 100 barras. Por exemplo, se o intervalo verdadeiro médio for 10 pontos ea alteração percentual máxima for 20, então o valor da alteração é um número escolhido aleatoriamente entre -2 e 2 pontos. Vamos dizer que o número real é -1,25 pontos, eo preço de fechamento é 1250,50. O fechamento modificado seria 1249,25. Finalmente, é possível que a mudança de um preço irá invalidar o preço normal ordenação, como a redução do aberto de modo que seu abaixo do baixo. Para evitar que, os preços podem ter de ser ajustado após fazer a alteração para manter o aberto e fechar dentro da gama alta / baixa. O último método de teste de estresse que será discutido envolve a mudança da barra de partida. É provavelmente óbvio que uma boa estratégia não deve desmoronar quando você iniciar o back-teste em uma barra diferente. Pode ser menos óbvio como isso pode acontecer. Considere uma estratégia hipotética que entra muito tempo em um crossover de média móvel. Em seguida, mantém o comércio exatamente cinco barras antes de sair no mercado. Deixando de lado a adequação da lógica, imagine o que a história do comércio pode parecer em um gráfico de preços. Se a condição de entrada média móvel utilizar uma média de cruzamento de curto prazo acima de uma média de longo prazo, é perfeitamente possível que, em uma tendência ascendente sustentada, a condição de entrada possa ser verdadeira por um longo período de tempo, ou seja, a média de curto prazo Ser maior do que a média de longo prazo para muitas barras em uma fileira. Se o back-test foi iniciado durante esse período, o primeiro comércio entraria na próxima barra após a barra de partida, e cada comércio duraria cinco barras, seguido imediatamente pela próxima entrada, e assim por diante. Agora considere o que aconteceria se a barra de partida fosse alterada. Se a barra de partida era uma barra mais tarde, por exemplo, toda a série de comércios seria deslocada uma barra para a direita. É perfeitamente possível que algumas dessas séries de negociações de cinco barras sejam muito mais rentáveis do que outras, dependendo de como os negócios alinharam com qualquer ciclo de tendência subjacente de cinco barras que existisse. Assim, dependendo da barra de partida, a estratégia pode ser altamente rentável ou não rentável por causa de onde os comércios começou e terminou. Pode não ser óbvio durante o desenvolvimento que a lógica de estratégia tinha esse tipo de dependência na barra de partida, particularmente para tipos mais complexos de lógica. Para testar o efeito da barra de partida, a barra na qual o back-test de estratégia é iniciado será variada por um número aleatório escolhido entre 1 e N. No exemplo abaixo, N foi escolhido para ser 300. Assim, a barra de partida Foi variada por adição de um número escolhido aleatoriamente entre 1 e 300 para o número de barra de partida original. A Monte Carlo Approach Variando as entradas, os preços ou a barra de partida por uma quantidade aleatória só fornece uma alternativa para comparar contra os resultados originais. Para obter uma imagem mais completa de como uma estratégia é robusta, podemos repetir o processo muitas vezes até que tenhamos uma distribuição de resultados. De um modo geral, variando as variáveis de entrada aleatoriamente sobre um grande número de iterações para gerar uma distribuição estatística de resultados para a função que depende desses inputs é chamada de análise de Monte Carlo. Neste caso, a função é a estratégia de negociação e as entradas de função são as entradas de estratégia, os preços de mercado e / ou a barra de início. Ao repetir o teste de estresse muitas vezes, acabamos com vários conjuntos de resultados de negociação. Para entender como funciona o processo Monte Carlo, considere o exemplo mostrado na Fig. 1. Figura 1. Curva de equidade original para uma estratégia de negociação forex. A curva de equidade representada na Fig. 1 é para uma estratégia de negociação desenvolvida para o mercado de divisas EURUSD em barras diárias, com um lote padrão (100.000) por comércio e 50 por lote para os custos de negociação. Esta é uma das estratégias de bônus incluídas no Adaptrade Builder. Foi desenvolvido em março de 2018. Os últimos 100 comércios ou assim foram desde a liberação, que mostra que prendeu para fora bem em tempo real fora-da-amostra que segue. Para ilustrar como os resultados dos testes de estresse podem ser analisados usando uma abordagem de Monte Carlo, considere os resultados do teste de estresse da estratégia de forex sobre os dados de preços, como mostrado na Fig. 2, que representa um total de 20 curvas patrimoniais, das quais 19 correspondem a um conjunto diferente de dados de preços aleatoriamente modificados. A série de preços originais para o EURUSD foi modificada 19 vezes como descrito acima, usando uma probabilidade de mudança de preço de 50 com uma mudança percentual máxima de 20. Juntamente com a curva original, mostrada como a linha verde mais espessa, há um total de 20 Conjuntos de resultados. O número total foi mantido tão pequeno quanto possível para fins ilustrativos, mais iterações serão usadas abaixo nos exemplos restantes. Figura 2. Teste de estresse a estratégia de forex, variando os dados de preço 19 vezes. O lucro líquido total correspondente a cada curva patrimonial na Fig. 2 é como segue: 147855.00 133286.00 87771.00 92707.00 132149.00 88384.00 126019.00 96581.00 105466.00 102946.00 86753.00 96127.00 116611.00 68459.00 109427.00 96242.00 111020.00 50201.00 130076.00 104181.00 O valor mais alto, 147.855, corresponde ao ficheiro original de dados de preços. O valor mais baixo é 50.201. Em uma análise de Monte Carlo, podemos perguntar o que o lucro líquido é provável que seja com um determinado grau de confiança dada a variação nos resultados. Um nível de confiança de 95 é típico, o que significa que haveria 5 chances de o lucro líquido ser menor do que o nosso valor selecionado. Para obter o valor do lucro líquido em 95 confiança, a lista acima é classificada de mais alto para mais baixo e o valor 95 da maneira para baixo a lista está selecionada. Como temos 20 itens na lista, selecionamos o item 19 na lista ordenada, que seria um lucro líquido de 68.459, ou seja, o segundo valor mais baixo na lista. Podemos interpretar este resultado da seguinte maneira: se a randomização dos dados de preço é representativa do tipo de diferenças aleatórias que esperamos no mercado, então podemos esperar que 95 do tempo, o lucro líquido será pelo menos 68.459. A mesma abordagem pode ser aplicada a qualquer métrica de desempenho que possamos desejar acompanhar. Se a métrica é aquela em que um valor inferior é melhor, como a redução máxima, a lista seria classificada na ordem oposta antes de selecionar o valor 95 da maneira para baixo na lista. Exemplos de Teste de Estresse Agora considere um exemplo mais representativo, no qual um total de 100 amostras foram geradas para a análise de Monte Carlo. FIG. 3 mostra as diferentes curvas patrimoniais resultantes da variação do arquivo de preços 99 vezes (mais a curva original). Figura 3. Teste de estresse a estratégia de forex, variando os dados de preço 99 vezes, para um total de 100 curvas de patrimônio. Aplicando a abordagem de Monte Carlo aos resultados para o teste de estresse, os resultados na Tabela 1 foram gerados a 95% de confiança (mostrado ao lado dos resultados para os dados originais para comparação). Tabela 1. Estresse testando a estratégia cambial variando os dados de preços. Como esperado, os resultados Monte Carlo de modificar os dados de preços mostram uma redução no desempenho em comparação com os resultados para os dados do preço original. No entanto, os resultados do teste de estresse ainda são positivos, indicando que a estratégia é pelo menos moderadamente robusta. Na Fig. 4, abaixo, a mesma abordagem tem sido aplicada aos valores de entrada da estratégia. A porcentagem de modificação foi estabelecida em 1, o que, para muitas entradas, significou que o valor mínimo de alteração foi aplicado. Todos os inputs foram modificados pelo menos pelo valor mínimo para cada avaliação. A curva de patrimônio original é mostrada na parte superior do gráfico como a linha verde mais espessa. Em comparação com os resultados das modificações de preços, a modificação dos insumos de estratégia teve um efeito mais forte no desempenho. Figura 4. Stress testando a estratégia de forex, variando os inputs da estratégia 99 vezes, para um total de 100 curvas de equidade. Os resultados de Monte Carlo para a mesma amostra de métricas de desempenho como acima são mostrados na Tabela 2 abaixo, que inclui os resultados para os valores de entrada originais. Tabela 2. Estresse testando a estratégia cambial variando as entradas da estratégia. Monte Carlo Results, 95 Os resultados da variação da barra de partida para a mesma estratégia forex são mostrados abaixo na Fig. 5. Comparado com os resultados dos outros dois testes, observa-se relativamente pouco efeito da variação da barra de partida, sugerindo que a estratégia é principalmente insensível a esta variável. Figura 5. Stress testando a estratégia cambial variando a barra de partida 99 vezes, para um total de 100 curvas de patrimônio. Os resultados de Monte Carlo deste teste são mostrados na Tabela 3 abaixo, onde são comparados com os resultados para a barra de partida original. Tabela 3. Teste de estresse a estratégia de forex, variando a barra de partida. Resultados Monte Carlo, 95 Resultados, Dados Originais Também é possível modificar tudo em conjunto ou modificar combinações de variáveis, como modificar as entradas da estratégia ao mesmo tempo que os dados de preço. Na Fig. 6, abaixo, os três testes de esforço foram realizados em conjunto. Isso significa que as entradas de estratégia, dados de preços e barra de início foram modificadas aleatoriamente ao mesmo tempo antes de avaliar a estratégia. Figura 6. Teste de estresse a estratégia de forex, variando a barra de partida 99 vezes, para um total de 100 curvas patrimoniais. Claramente, esta combinação de testes de estresse é um teste severo da robustez das estratégias. Uma ou duas das curvas de equidade mostradas na Fig. 6 parecem mostrar um lucro líquido negativo (ou quase). Apenas uma curva de equidade se aproxima da original. Os resultados de Monte Carlo baseados neste teste são mostrados abaixo na Tabela 4. Tabela 4. Teste de estresse da estratégia de forex, variando os dados de preços, entradas de estratégia e barra de partida. Resultados de Monte Carlo, 95 Resultados, Resumo dos Dados Originais e Conclusões O ajuste excessivo é sempre uma preocupação ao desenvolver uma estratégia de negociação. Os chamados testes de estresse medem o quão robusta é uma estratégia de negociação, que é uma indicação de se a estratégia é excessiva ou não. Enquanto qualquer variável que afeta os resultados de uma estratégia de negociação pode potencialmente ser o objeto de um teste de estresse, este artigo se concentrou em três fatores importantes na determinação de resultados de back-test: os dados de preço, os valores de entrada strategys ea barra de partida para o back - teste. A estratégia utilizada para ilustrar cada teste de estresse demonstrou robustez moderada em relação aos dados de preço e valores de entrada e boa robustez em relação à barra de partida. Vale ressaltar que a estratégia de exemplo teve um registro de três anos de resultados positivos de rastreamento em tempo real, mas, em alguns casos, os resultados do teste de estresse foram piores do que os resultados reais fora da amostra alcançados pela estratégia. Isto sugere que os testes de esforço podem ter sido demasiado severos nesses casos. Isto foi particularmente evidente quando os três testes foram combinados, como mostrado na Fig. 6 e Tabela 4. O teste de estresse para os insumos de estratégia pode ter sido irrealisticamente rigoroso na medida em que modificou todas as entradas para cada iteração de teste. Uma melhor abordagem pode ser a de aplicar o mesmo método utilizado para modificar os dados de preços, em que um preço foi modificado com uma probabilidade especificada. Em vez de modificar todas as entradas de cada vez, uma probabilidade poderia ser aplicada para determinar se uma determinada entrada deve ser modificada. Se assim for, seria modificado da maneira descrita acima caso contrário, a entrada seria não modificado. Foi mostrado como os resultados do teste de estresse poderiam ser analisados usando a análise de Monte Carlo. Isso nos permitiu quantificar os resultados e fornecer uma estimativa de desempenho que foi geralmente mais conservadora do que os resultados de back-teste com base nos dados originais. O foco do artigo foi testar uma estratégia de negociação depois de ter sido desenvolvido. Em princípio, no entanto, a mesma abordagem poderia ser utilizada como parte do processo de desenvolvimento da estratégia. No Adaptrade Builder, as estratégias são desenvolvidas com base no desempenho back-tested no período da amostra. Em vez de usar o desempenho obtido a partir do back-testing da estratégia sobre os dados originais, os resultados de Monte Carlo em 95 confiança do teste de estresse poderiam ser usados. As principais estratégias da população seriam aquelas com os melhores resultados de Monte Carlo, que tenderiam a conduzir a população para estratégias robustas. Infelizmente, se cada análise de Monte Carlo fosse baseada em simulações de N, o processo de construção levaria N vezes mais tempo usando essa abordagem. Junto com testes fora da amostra e outros métodos discutidos nesta série de artigos, testes de estresse fornece outra ferramenta para ajudar a identificar estratégias de negociação robusto e evitar excesso de montagem. Se aplicado como parte do processo de avaliação de estratégia, o teste de estresse pode ajudar a eliminar estratégias que são excessivamente sensíveis às mudanças no ambiente comercial, o que poderia ajudar a evitar perdas e aumentar suas chances de sucesso nos mercados. Todos os testes de estresse foram realizados com o Adaptrade Builder. Este artigo foi publicado na edição de março de 2017 do boletim Adaptrade Software. RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. DESCONHECIDO UM REGISTO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, SENDO QUE OS COMÉRCIOS NÃO FORAM REALMENTE EXECUTADOS, OS RESULTADOS PODERÃO TER OU NÃO COMPENSADO PARA O IMPACTO, SE HOUVER, DE CERTOS FATORES DE MERCADO, COMO A FALTA DE LIQUIDEZ. OS PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE SÃO PROJETADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ SENDO SENDO QUE QUALQUER CONTA PODERÁ OU É POSSÍVEL CONSEGUIR LUCROS OU PERDAS SEMELHANTES AOS MOSTRADOS. Se você gostaria de ser informado sobre novidades, novidades e ofertas especiais da Adaptrade Software, por favor junte-se à nossa lista de e-mails. Obrigado.
No comments:
Post a Comment