Testes e análises de robustez

Estratégia de ajuste de curvas aos dados históricos sobre os quais foi construída é o maior perigo das estratégias geradas usando qualquer processo de aprendizagem de máquina.
Após desenvolver uma nova estratégia, você deve se certificar de que sua estratégia seja robusta - o que deve aumentar a probabilidade de que ela funcione também no futuro.

O que é robustez?
É simplesmente a propriedade da estratégia de ser capaz de lidar com a mudança das condições.
- Em primeiro lugar, a estratégia deve trabalhar com dados desconhecidos (se as características do mercado não mudassem) com ou sem reoptimização periódica dos parâmetros.
- Não deve quebrar se alguns ofícios forem perdidos.
- A estratégia robusta não deve ser muito sensível aos parâmetros de entrada - ela deve funcionar mesmo que você altere ligeiramente os valores dos parâmetros de entrada, como o período indicador ou alguma constante.

Como testar estratégias para a robustez

1. Fazer uso dos períodos Dentro e Fora da Amostra

o teste mais básico para a robustez é testar a estratégia sobre os dados fora da amostra. Se você executar a evolução genética, a estratégia é desenvolvida apenas na parte In Sample dos dados. A parte Fora da Amostra é "desconhecida" da estratégia, de modo que pode ser usada para determinar se a estratégia também atua sobre a parte desconhecida dos dados.

A parte azul de cada gráfico são os dados da amostra (desconhecidos), Podemos ver que a estratégia à esquerda também funciona bem nesta parte, enquanto que a estratégia à direita falha nos dados desconhecidos - é quase certo que seja ajustada em curva.

2. Estratégia de teste em múltiplos símbolos e/ou prazos

O segundo teste de robustez é muito importante - significa testar a mesma estratégia em símbolos diferentes e/ou em outro(s) período(s) de tempo. A estratégia robusta deve funcionar idealmente em múltiplos símbolos/tempo.

Na realidade, porque cada mercado tem suas próprias características, volatilidade diária, etc., não será fácil encontrar uma estratégia que tenha o mesmo desempenho perfeito em vários símbolos usando apenas um conjunto de configurações.
Podemos ficar satisfeitos se a estratégia se executar em outros mercados com pelo menos algum grau de lucratividade, ou apenas um pouco perdendo.

StrategyQuant permite especificar símbolos adicionais para a construção/teste das estratégias na seção Dados adicionais. Você pode até mesmo testar a estratégia no mesmo símbolo com um período de tempo diferente.


(clique na imagem para ver a versão maior)

Nos dois gráficos acima você pode ver o teste de estratégia em EURUSD (linha verde), GBPUSD (linha cian) e portfólio de ambos (linha azul).
Enquanto no gráfico da esquerda a estratégia funciona bem em ambas as moedas, no gráfico da direita você pode ver que o desempenho em GBPUSD é ruim. Esta estratégia provavelmente não é suficientemente robusta.

3. Use a ferramenta de testes de robustez em StrategyQuant

StrategyQuant permite que você ligue os Testes de Robustez. A ferramenta Testes de Robustez simplesmente testa repetidamente a estratégia com diferentes mudanças aleatórias nos parâmetros de entrada e dados executando a simulação Monte Carlo.

A idéia por trás deste teste de robustez é verificar quão bem a estratégia funciona quando há pequenas mudanças nos insumos, dados históricos ou outros componentes da estratégia.

Você pode simular diferentes propriedades:

Randomizar a ordem de comércio - este é o teste mais simples, ele baralha aleatoriamente a ordem dos ofícios. Isto não altera o Lucro Líquido resultante, mas é muito útil no exame de diferentes variações de Drawdown que podem ser resultado de diferentes ordens de negócios.

Saltar aleatoriamente - ele saltará aleatoriamente as negociações com dada probabilidade. Em negociações reais você pode muitas vezes perder uma negociação devido a uma falha na plataforma ou na Internet, ou simplesmente porque você pausou as negociações por algum tempo. Este teste lhe dará uma idéia de como a curva de equidade pode parecer se algumas negociações forem ignoradas aleatoriamente.

Randomize a barra inicial - isto testará o comportamento da estratégia quando os testes começarem em uma barra inicial diferente. É óbvio que uma boa estratégia não pode ser sensível à barra em que se inicia o teste.

Randomizar os parâmetros estratégicos - toda estratégia utiliza parâmetros, tais como o período de um indicador ou constante que é usado em comparação. Este teste verifica a sensibilidade da estratégia a uma pequena alteração do valor do parâmetro. A probabilidade de mudança é uma probabilidade de que qualquer parâmetro mude seu valor. A mudança máxima do parâmetro é a porcentagem máxima para a qual o parâmetro muda seu valor. Por exemplo, se você definir a mudança máxima do parâmetro para 10%, então um parâmetro com valor 60 pode ser mudado aleatoriamente para uma faixa 54 - 66 (+- 10% de seu valor original de 60).

Randomizar dados históricos - Um caso muito comum de ajuste de curvas é quando a estratégia depende demais dos dados do histórico. Esta opção verifica o comportamento da estratégia a uma mudança nos dados do histórico.
A Probabilidade de mudança estabelece para cada barra o quão provável é que o preço aberto, alto, baixo ou fechado será alterado. A variação máxima do preço é um valor percentual da variação em relação à ATR (Average True Range).
Portanto, se, por exemplo, o preço fechado for escolhido aleatoriamente para ser alterado, o valor ATR é 10 pips, e a alteração do preço máximo é 20%, então o preço pode ser alterado em +- 2 pips

Interpretando os resultados
Os testes de robustez produzem os resultados como um conjunto de gráficos de equidade para cada teste executado E uma tabela mostrando os resultados da simulação de Monte Carlo.

Neste exemplo, realizamos 10 simulações, com mudanças aleatórias nos parâmetros de estratégia, dados de histórico e negócios ignorados aleatoriamente.
Podemos ver qual seria a equidade para cada uma dessas simulações e a tabela à esquerda nos fornece informações valiosas sobre as propriedades da estratégia durante essas simulações.

O que significam estes valores?
A primeira linha exibe valores de Lucro Líquido, Máximo % Drawdown etc. da estratégia original para comparação.
O resto das filas exibe valores em diferentes níveis de confiança.
Estes números são o resultado da análise de Monte Carlo aplicada em nossas 10 simulações aleatórias.

Por exemplo, valores no nível de confiança 80% significam que há 20% chances de que o Lucro Líquido, Drawdown etc. sejam piores que os valores do nível de confiança.
Valores no nível de confiança 90% significam que há 10% chances de que o Lucro Líquido, Drawdown etc. sejam piores do que os valores do nível de confiança.
Valores no nível de confiança 95% significam que há apenas uma chance de 5% de que o Lucro Líquido, o Sorteio, etc. sejam piores do que esses valores.

Portanto, a simulação Monte Carlo de nossa estratégia nos mostra que, saltando o 10% de negócios aleatórios e pequenas mudanças aleatórias nos parâmetros de entrada e dados, nosso lucro líquido pode diminuir de $ 6990 para $ 3943, e o Drawdown máximo pode aumentar de 6.97% para 11.36%.
Isto significa que há apenas 5% chances de que o lucro líquido seja inferior a $ 3943. Olhando para os níveis de confiança mais altos, podemos ver que nenhum de nossos testes teve resultados piores do que o $ 3943, portanto a estratégia parece ser relativamente robusta às mudanças a que a expusemos.

Como os testes de robustez são gerados aleatoriamente, os gráficos de equidade e os valores na tabela serão ligeiramente diferentes cada vez que a estratégia for re-testada. Além disso, quanto mais simulações você fizer, maior será a significância estatística deste teste.

4. Use a Matriz de Avanço como um teste de robustez

O quarto tipo de verificação de robustez é o teste usando a Matriz Walk-Forward. Se a estratégia passar neste teste significa que com a ajuda da reoptimização de parâmetros é adaptável a uma grande variedade de condições de mercado.

Verifique estes links para artigos detalhados sobre Otimização do Walk-Forward e Matriz de Avanço.

Assine
Notificação de
0 Comentários
Feedbacks em linha
Ver todos os comentários

Continuar lendo