Documentação
Aplicações
Última atualização em 26. 2. 2019 por Kornel Mazur
Verificações cruzadas - testes automatizados de robustez da estratégia
Conteúdo da página
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.
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.
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:
- 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
- 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
- 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.
- 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.
- 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.
- 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
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?
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