Documentação

Aplicações

Última atualização em 26. 2. 2019 por Kornel Mazur

Verificações cruzadas - testes automatizados de robustez da estratégia

O maior perigo das estratégias geradas utilizando qualquer processo de aprendizagem de máquinas é o excesso (ou ajuste de curvas) das estratégias aos dados históricos sobre os quais foram construídas.

Durante ou após o desenvolvimento de uma nova estratégia você deve certificar-se 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 re-otimizaçã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 - deve funcionar mesmo se você alterar ligeiramente os valores dos parâmetros de entrada, tais como período indicador ou alguma constante ou se os dados históricos forem ligeiramente alterados - o spread ou o slippage é aumentado, e assim por diante.

o teste mais básico para a robustez é testar a estratégia em dados desconhecidos (Fora da amostra).

Se você executar a evolução genética, a estratégia é desenvolvida apenas na parte In Sample dos dados. A parte Out of Sample é "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.

 

Evitar estratégias de sobre-equipamento (ajuste de curvas)

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.

 

Verificações cruzadas automáticas de robustez no SQ X

As verificações cruzadas são métodos adicionais opcionais que podem ser aplicados a cada estratégia depois que ela é gerada e passa os primeiros filtros.

Verifique este artigo como simplesmente Usar cheques cruzados construídos em Builder e Retester

As verificações cruzadas podem verificar a robustez da estratégia a partir de mais pontos de vista - comercializando-a em mercados adicionais, ou usando os métodos Monte Carlo para simular curvas de equidade diferentes de 100s, ou mesmo usando a otimização Walk-Forward ou Matrix.

O importante é que você pode usar filtros de verificação cruzada para dispensar a estratégia se ela não passar no teste de verificação cruzada. Isto permite criar funis, onde a estratégia é examinada por métodos cada vez mais avançados (e mais demorados), e a estratégia que falha é automaticamente descartada.

Funil de teste de robustez automatizado em StrategyQuant X

Um exemplo de funil de filtragem usando verificações cruzadas durante a construção

Depende de você quantas verificações cruzadas você vai empregar e como você vai configurar seus filtros.

As verificações cruzadas são divididas em três grupos - Básico, Padrão, Extensivo - dependendo de quão demoradas são.

Elas também são aplicadas desde as mais simples até as mais complicadas. Portanto, se a estratégia não passar no Cross check 1, ela é descartada e não testada pelo Cross check 2.

 

Note que a verificação cruzada de uma estratégia pode levar um tempo significativo!
Alguns métodos de verificação cruzada fazem simulações complicadas e centenas ou até milhares de testes cruzados da estratégia com parâmetros diferentes e levam milhares de vezes mais tempo do que a geração da estratégia inicial e o teste inicial.

 

As verificações cruzadas podem ser usadas também no Retester (sem filtragem), de modo que não é necessário usar todas as verificações cruzadas no modo de construção.

Possível uso de checagens cruzadas

Uma possível aplicação de checagem cruzada poderia ser a utilização:

  • Verificação cruzada Reteste com maior precisão
  • Verificação cruzada Manipulação do comércio de Monte Carlo
  • Verificação cruzada Reteste em mercados adicionais
  • Opcionalmente cheque cruzado Métodos de reteste Monte Carlo

StrategyQuant executará então as seguintes etapas para cada estratégia gerada:

  1. A estratégia é gerada aleatoriamente e testada com a mais rápida precisão "Selected timeeframe" - isto depende de sua configuração, mas é o padrão
  2.  A estratégia é automaticamente filtrada e jogada fora (descartada) se não passar por seus filtros globais, por exemplo, se não tiver negócios suficientes ou se o lucro líquido < $1000
  3. Verificação cruzada Reteste com maior precisão irá testar esta estratégia com precisão mínima ou mesmo real - para ter certeza de que a estratégia foi testada de forma confiável usando a precisão básica. Note que somente as estratégias que passarem o ponto 2. chegarão aqui. Se a estratégia não passar nesta primeira verificação cruzada, ela será descartada.
  4. Verificação cruzada Manipulação do comércio de Monte Carlo fará várias simulações de diferentes curvas de equidade manipulando as negociações existentes - para garantir que a curva de equidade original não tenha sido alcançada apenas por sorte. Você filtrará estratégias que não passam neste teste de Monte Carlo.
  5. Verificação cruzada Reteste em mercados adicionais testará a estratégia em mercados ou prazos adicionais. Se não for lucrativa em outros mercados, ela será filtrada.
  6. Verificação cruzada opcional Métodos de reteste Monte Carlo A simulação será executada em número de simulações onde cada simulação é um novo backtest da estratégia usando pequenas variações nos parâmetros indicadores da estratégia, opções de negociação como spread, slippage, ou em dados históricos. Note que cada simulação deste tipo é um backtest independente, então se levou 0,2 segundos para fazer o backtest da estratégia no passo 1., levará 100 x 0,2 s. = 20 segundos para terminar esta verificação cruzada para esta estratégia se você usar 100 simulações Monte Carlo.
    Se a estratégia passar também esta verificação cruzada, ela é salva no banco de dados e você pode ter bastante confiança de que ela é robusta o suficiente.

 

Você pode encontrar uma descrição mais detalhada das verificações cruzadas na seção Verificações cruzadas - testes de robustez seção.

Este artigo foi útil? O artigo foi útil O artigo não foi útil

Assine
Notificação de
2 Comentários
Mais antigo
Novidades Mais Votados
Feedbacks em linha
Ver todos os comentários
James Colton
17. 1. 2023 10:38 pm

Eu defino um teste com configurações padrão e tive resultados bem sucedidos a cada minuto ou mais. Observando então que muitos resultados foram significativamente maiores que os critérios mínimos de aceitação, recomecei o teste com padrões mínimos moderadamente mais altos que deveriam ter capturado talvez 10% tantas estratégias quanto os parâmetros de teste anteriores gerados. Após 6 horas, nem um único resultado passou na revisão inicial. O construtor precisa de exemplos de sucesso para aconselhá-lo onde procurar? Em outras palavras, devo esperar melhores resultados se eu inicialmente estabelecer meus padrões abaixo do que eu consideraria uma negociação?

tomas262
Admin
Responder a  James Colton
19. 1. 2023 7:22 pm

você pode nos enviar o fluxo de trabalho para análise, nós verificamos seus arquivos de configuração CFX o que poderia ser definido incorretamente