Release of SQX 139 Dev 1 and what’s planned for year 2024
We’d like to announce the release of the new SX 139 Dev 1 version – note that this is a development version for testing, not the final 139 version. Most …
Přejít k obsahu | Přejít k hlavnímu menu | Přejít k vyhledávání
O teste de robustez é um componente importante das ferramentas StrategyQuant X que ajudam os usuários a avaliar a estabilidade, a confiabilidade e a adaptabilidade de suas estratégias de negociação sob várias condições de mercado e incertezas potenciais. .
O principal objetivo do teste de solidez é avaliar o desempenho de uma estratégia de negociação em diferentes condições de mercado, cenários e configurações de parâmetros.
O StrategyQuant contém várias ferramentas específicas para avaliar a robustez das estratégias. Neste documento, analisamos a eficácia das ferramentas selecionadas. Essa avaliação garante que a estratégia não seja superotimizada para um determinado dado e possa se adaptar às mudanças nas condições do mercado, aumentando assim a probabilidade de um desempenho comercial bem-sucedido.
Um exemplo de uma estratégia robusta e não robusta
A parte azul de cada gráfico são os dados fora da amostra (desconhecidos). Podemos ver que a estratégia da esquerda tem um bom desempenho também nessa parte, enquanto a estratégia da direita falha nos dados desconhecidos - é quase certo que eles sejam ajustados à curva.
O objetivo do estudo é examinar a eficácia de vários tipos de testes de robustez em StrategyQuant X in.
Os resultados desse estudo devem abordar os seguintes pontos-chave:
Concluindo, o estudo deve avaliar minuciosamente a eficácia de vários tipos de testes de robustez no StrategyQuant X e fornecer percepções sobre seus pontos fortes, pontos fracos e aplicações práticas.
Os resultados ajudarão os traders e investidores a entender melhor o valor de cada teste e a tomar decisões informadas ao desenvolver e validar suas negociações
O resultado da análise é a constatação de que o o teste mais eficaz da robustez sob as configurações escolhidas parece ser testar a estratégia em vários mercados. Ao testar a estratégia em vários mercados, estamos nos referindo à seleção de estratégias de acordo com os valores médios mais altos das métricas de estratégia fornecidas em vários mercados. Em média, eles melhoram o desempenho da estratégia em 14%. No StrategyQuant, é muito fácil testar a robustez de uma estratégia em vários mercados usando o Teste na verificação cruzada de mercados adicionais.
A segunda melhor verificação de robustez é a randomização de Monte Carlo de dados históricos. Nas páginas seguintes, você pode ler os resultados detalhados de nossa análise e a metodologia que usamos na análise. A análise foi projetada para ser útil aos usuários do programa StrategyQuant X.
Você pode ler mais sobre todos os testes de robustez no Strategy Quant X em nossa documentação
Na análise, usamos as seguintes configurações e tipos de testes de robustez:
Observe que esse resultado é válido somente para uma determinada configuração de compilação e teste que você pode ver abaixo - forex, período de tempo 4H, determinado conjunto de símbolos e configurações exatas de compilação.
É um trabalho para o futuro - que planejamos fazer como continuação desta série - verificar se esse resultado também se aplica a outros ativos, outros prazos e outras configurações de construção.
Na parte seguinte, preparei um estudo para você, no qual trabalhei por dois meses. Desenvolvi dezenas de páginas de código Python para ele. É um grande projeto em que você precisa trabalhar com enormes conjuntos de dados, realizar operações numéricas, analisar os dados e interpretá-los posteriormente. O objetivo era descobrir como um determinado teste de robustez pode ajudar a selecionar estratégias com maior probabilidade de produzir resultados robustos no futuro. O documento segue a lógica do procedimento na análise.
Primeiro, carregamos 5 conjuntos de dados com classificações gerais de estratégias de stick para cada teste de robustez. Por conjunto de dados, queremos dizer 100.000 estratégias selecionadas com base em uma classificação muito geral.
Vou repetir esse procedimento em diferentes períodos de tempo
Cada conjunto de dados tinha uma configuração de IS = 30% e OOS 70%, sendo que o tempo real fora da amostra era de 2 anos.
Exemplo na figura abaixo: O conjunto de dados 2003-2017 termina em 31.12.2016 e tem um período fora da amostra real de 2 anos, de 1.1.2017 a 31.12.2018.
Em outras palavras, simularemos a geração de estratégias com o fim da geração em 2017, 2018, 2019, 2020, 2021. Depois de cada janela de tempo, as estratégias seguirão na chamada verdadeira fora da amostra. ( + 2 anos )
Primeiro, geramos conjuntos de dados sem testes de robustez e, em seguida, aplicamos testes selecionados em períodos fora da amostra a cada conjunto de dados.
Para cada período fora da amostra, seleciono as estratégias no top 1% de valores com a métrica de estratégia de teste de solidez determinada, descubro o desempenho dessas estratégias no período fora da amostra e comparo seu desempenho com todas as estratégias no período fora da amostra. Obtenho os dados para cada período de tempo e, em seguida, sei como uma determinada verificação de robustez ajudaria na média
No final do artigo, você encontrará uma tabela na qual descrevi quais testes funcionam melhor... e vice-versa, o que não confirmei de forma alguma. Você pode usar essa tabela ao criar sua própria estratégia. Os testes que foram confirmados devem definitivamente ser incluídos em seu fluxo de trabalho.
Vamos começar...
Primeiro, geramos 5 conjuntos de dados. Por conjunto de dados, queremos dizer 100.000 estratégias selecionadas com base em uma classificação muito geral.
Filtrei as estratégias geradas pelo SQX com base nesses critérios básicos:
Vou repetir esse procedimento em diferentes períodos de tempo
Cada conjunto de dados tinha uma configuração de IS = 30% e OOS 70%, sendo que o tempo real fora da amostra era de 2 anos.
Gerei um tipo simples de estratégia para um período de 4 horas. A estratégia só poderia entrar por Enter At market. Defini o stop loss e a meta de lucro com base no ATR. Usei apenas indicadores integrados e condições. As estratégias poderiam ter no máximo duas condições de entrada...
Escolhemos o período de 4 horas, mas minha experiência diz que os períodos de tempo, os mercados e as configurações individuais podem ter suas idiossincrasias, portanto, não é possível tirar conclusões gerais após uma única análise. O objetivo do estudo foi mostrar tendências ao usar testes de robustez para preparar o fluxo de trabalho para análise adicional e levantar questões para discussão.
Criar e limpar um conjunto de dados tão grande (5* 100.000) exige muito tempo e esforço. Criei as estratégias em 2 estações de trabalho AMD Threadripper 2950 com 32 processadores. Demorou cerca de 12 dias para criar a estratégia com um projeto personalizado.
Spreads, Swaps são definidos de acordo com a corretora Darwinex, todos os spreads são aumentados em 0,5 pip ou arredondados para cima. Para cada negociação, foi cobrada uma comissão de 2,2 USD.
Vamos dar uma olhada nas características dos conjuntos de dados individuais. Na figura a seguir, podemos ver as características qualitativas de cada conjunto de dados de estratégias criadas para um determinado período.
No coluna verde Temos os valores das métricas de estratégia obtidas no período fora da amostra
Na coluna azul temos os valores das estratégias no verdadeiro fora da amostra período
Como podemos ver no gráfico acima, as estratégias perdem seu desempenho em períodos realmente fora da amostra. Vamos observar a instabilidade do desempenho das estratégias em seus períodos realmente fora da amostra.
Há anos em que a média do Profit Factor das estratégias dentro e fora da amostra está acima de 1 e há anos (2018 / 2019 / 2020) abaixo de 1. Em outras palavras, as estratégias, em média, estão perdendo. Da mesma forma, valores instáveis e baixos são observados no caso do Avg. Trade e Ret/DD Ratio.
Payout Ratio , Avg. Horas de negociação e Avg. As negociações por mês são relativamente semelhantes fora da amostra e fora da amostra verdadeira.
Na figura abaixo, vemos na caixa verde a mudança absoluta (delta) entre o fora da amostra e o verdadeiro fora da amostra dessas métricas de estratégia:
Na parte esquerda (quadro verde), vemos o delta (diferença) das métricas selecionadas entre o fora da amostra e o verdadeiro fora da amostra.
Na parte direita (quadro azul), podemos ver o coeficiente de correlação de Sheppard no caso de Profit Factor, Payout Ratio, Avg.Trade, Ret/ DD Ratio entre os valores desses indicadores fora da amostra e fora da amostra verdadeira. Podemos ver que as correlações para Profit Factor, Avg. Trade, Ret/ DD Ratio são bastante baixas e instáveis. Em outras palavras, os valores baixos indicam baixo valor preditivo entre fora da amostra e fora da amostra verdadeira.
As análises de outros conjuntos de dados e outros tipos de estratégias mostram um desempenho diferente das estratégias com e sem blocos de ação de preço. Agora, dividirei todo o conjunto de dados da estratégia 5*100.000 em conjuntos de dados
Então, vamos dar outra olhada no conjunto de dados de base particionada
Nas figuras abaixo, podemos ver as mesmas estatísticas acima, mas exibidas para estratégias em que pode haver indicador + blocos de ação de preço. A estrutura dos dados exibidos é exatamente a mesma da análise de todo o conjunto de dados acima.
Nas imagens abaixo, podemos ver as características básicas do conjunto de dados Somente com blocos de ação de preço.
Minha hipótese se baseia em uma análise semelhante sobre índices e pressupõe que as estratégias com APENAS blocos de preço-ação têm melhor desempenho tanto fora da amostra quanto fora da amostra verdadeira. Acontece que, nessa análise, a suposição não foi atendida e o melhor desempenho das estratégias com indicadores e blocos de preço-ação foi mantido. Observe que, para fora da amostra, o desempenho é melhor para estratégias com APENAS blocos de ação de preço e, para fora da amostra verdadeira, o desempenho é pior para estratégias com apenas blocos de ação de preço. Embora possamos encontrar algumas diferenças, elas não são muito significativas e consistentes.
O conjunto de dados de linha de base consiste em estratégias que atendem aos requisitos básicos de fora da amostra, e não realizamos testes de robustez. A pergunta a seguir é se podemos obter resultados estatisticamente melhores entre os verdadeiros fora da amostra com as estratégias selecionadas em comparação com o conjunto de dados de linha de base verdadeiros fora da amostra (sem testes de robustez, apenas com as classificações básicas mencionadas acima) executando os testes de robustez selecionados.
O processo de análise
Observação. Não excluí os valores discrepantes da análise.
Monitoraremos o desempenho dos testes de robustez nessas métricas:
Analisaremos os seguintes testes de robustez
Nota: O teste Monte Carlo Randomize Strategy Parameters só será aplicado a estratégias com indicadores e blocos de ação de preço. Não aplicamos esse teste a estratégias com apenas blocos de ação de preço porque randomizamos SOMENTE os períodos dos indicadores fornecidos
Vamos dar uma breve olhada em como definimos os testes de robustez individuais.
Proporção de métricas OOS/IS
A proporção de métricas fora da amostra para métricas dentro da amostra.
Média das Matrizes de Mercados Adicionais
Fizemos backtests dos mercados usando a parte dos dados fora da amostra para cada conjunto de dados. Ele mostra o valor médio de uma determinada métrica de backtests em todos os mercados adicionais.
Você pode fazer o download desses trechos em nosso servidor de compartilhamento aqui.
Testamos esses mercados:
Métodos Monte Carlo Retest: Randomizar dados históricos da OHLC
Usamos os dados do histórico do Randomize OHLC, que foram adicionados na versão 136. As configurações podem ser vistas na imagem abaixo.
Métodos Monte Carlo Retest: Randomizar parâmetros de estratégia - Períodos
Para o teste de parâmetros de estratégia aleatórios, usei um trecho modificado em que apenas os períodos dos parâmetros eram aleatórios.
Monte Carlo Randomize Trades Manipulation : Randomizar ordens de negociação
Na figura abaixo, vemos as métricas de robustez classificadas por Avg. Profit Factor in true out of sample vs. Avg.Profit Factor All in true out of sample no conjunto de dados com nenhum teste de robustez aplicado.
Nas colunas azul e branca, vemos a comparação em cada período em que geramos o conjunto de dados.
Nota explicativa da tabela
Como avaliar a tabela acima
A primeira coluna no quadro azul à esquerda mostra o ano de 2017. Profit Factor Avg. representa o fator de lucro médio de 1% (99º percentil) das estratégias selecionadas após o teste de robustez. Profit Factor All Avg. representa o fator de lucro médio de todas as estratégias em um determinado valor real fora da amostra.
Portanto, selecionamos as estratégias de acordo com o teste de robustez fora da amostra, mas comparamos os resultados dessas estratégias na verdadeira fora da amostra. O delta é a mudança absoluta nos valores médios.
Nas caixas azuis, você encontrará todos os períodos de tempo (conjuntos de dados) em que realizamos o estudo e, na última coluna vermelha, verá a alteração percentual na média das estratégias selecionadas com base no teste de robustez e em todo o conjunto de dados.
Entre as três métricas examinadas, o desempenho multimercado das estratégias está em primeiro lugar.
O quarto teste de robustez eficiente é a seleção de estratégias 1% de acordo com MCRHD: Avg. Trade (MC retest, nível de Conf. 95%), que aumenta o desempenho em 7,8% em média.
Os outros dois são 1. TV: Avg. TV: Fator de lucro Pro (OOS). Se selecionássemos 1% dos estratagemas de acordo com essas métricas de estratégia, o fator de lucro em OOS aumentaria em cerca de 6% em média. As métricas OOS/IS também têm um desempenho muito bom.
Mais uma vez, aplico testes de robustez SOMENTE às estratégias filtradas no processo de construção usando os seguintes critérios.
Como essas são estratégias em que não aplicamos filtragem avançada, não simulamos um fluxo de trabalho fundamental. Portanto, considere os resultados como uma indicação da tendência.
A melhoria no desempenho das métricas básicas no OOS também se deve ao fato de termos usado apenas classificações básicas ao criar os conjuntos de dados. Em outras palavras, os critérios que usamos foram definidos para gerar o maior número possível de estratégias lucrativas o mais rápido possível. Na próxima parte, abriremos a possibilidade de simular as classificações atuais e aplicar testes de robustez a essas estratégias.
Na figura abaixo, anexei uma versão simplificada do gráfico acima.
Tipo de teste de robustez | Melhoria média de % do fator de Profit em True Out of Sample vs. fator de Profit no período Out of Sample |
Desempenho em vários mercados | 12.11 |
Métodos Monte Carlo Retest: Randomizar dados históricos da OHLC | 4.71 |
Proporção de métricas fora da amostra versus métrica na amostra | 4.61 |
Métricas fora da amostra (média do fator Profit, Avg.Trade, fator Profit) | 4.61 |
Relação dos métodos de reteste de Monte Carlo: Randomizar dados históricos de OHLC vs. métricas fora da amostra | 3.59 |
Monte Carlo Randomize trades Manipulation : Ordem de negociação aleatória | 3.44 |
Relação da manipulação de Monte Carlo Randomize Trades : Ordem de Negociações Aleatórias vs. métricas fora da amostra | 2.13 |
Métodos Monte Carlo Retest: Randomizar parâmetros de estratégia - Períodos | -6.06 |
Razão entre os parâmetros da estratégia de randomização de Monte Carlo e as métricas fora da amostra | -9.09 |
Na figura acima, vemos a melhoria média no fator prfot para um determinado tipo de robustez. O resultado é a primeira das três métricas usadas para avaliar os testes de robustez (média do fator Profit, Avg.Trade, fator Profit)
Desempenho em vários mercados ( OOS ) proporcionaria uma média de 12% de melhoria no fator de lucro da estratégia no período real fora da amostra. O segundo O melhor teste de robustez é o Método Monte Carlo Retest: Randomizar dados históricos da OHLC resultaria, em média, em uma melhoria de 4,7% no fator de lucro da estratégia em seu período real fora da amostra.
Na análise acima, usamos métricas básicas para a seleção de estratégias. Existem métricas de estratégia com maior valor preditivo? Esse problema pode ser esclarecido por diferentes métodos. Vamos aprender alguns métodos de aprendizado de máquina com problemas de extração de recursos. A lógica básica é que medimos a relação entre as métricas de estratégia fora da amostra e a relação entre a dependência de variáveis dentro da amostra verdadeira fora da amostra.
Coeficiente de informação máxima
Esse é um método não paramétrico para avaliar relações lineares e não lineares entre variáveis. No gráfico abaixo, vemos a relação entre as variáveis selecionadas (coluna da esquerda) da amostra fora da amostra e a relação entre as variáveis selecionadas (coluna da direita) da amostra fora da amostra e a relação entre as variáveis selecionadas (coluna da direita) da amostra fora da amostra. Profator de ajuste na amostra verdadeira em cada um dos conjuntos de dados. Esses cálculos são muito preliminares, mas observe que nem o fator Profit, nem o Avg.Trade nem a relação Ret/DD estão nas primeiras posições. Com base nessas informações, podemos concluir que há métricas de estratégia melhores para prever o desempenho futuro das startups que não estão na amostra.
Estenderemos a análise fornecida em várias etapas
Para onde iremos em outras análises após o lançamento da versão final do 137?
Na parte introdutória, sugerimos que o teste mais eficaz do período de 4 horas no EURUSD é testar uma estratégia multimercado - robustez multimercado. Descobrimos que algumas métricas de estratégia podem ter maior valor preditivo do que outras. Descobrimos que a randomização de dados históricos também pode levar a melhorias interessantes.
Voltarei a esse conjunto de dados em um artigo em outubro, no qual tentaremos aplicar alguns dos aprimoramentos mencionados no final do artigo. Em seguida, faremos um conjunto de dados semelhante em novembro e dezembro com os aprimoramentos e nos concentraremos nas estratégias e no período de hora em hora dos índices.
Aceito todas as sugestões e críticas construtivas.
We’d like to announce the release of the new SX 139 Dev 1 version – note that this is a development version for testing, not the final 139 version. Most …
Dive into Algorithmic Trading Without the Coding Headache! Are you intrigued by algorithmic trading but dread the thought of coding? Today marks the beginning of our exciting series that’s about …
Nesta entrevista, conversamos com Naoufel, um trader experiente, para explorar sua jornada no tempestuoso mercado de 2023. Naoufel é um operador bem-sucedido com histórico comprovado que ...
Artigo interessante. Muito obrigado. Pergunta: alguma ideia de usar o R-Square como uma função de aptidão?
Obrigado,
Vermelho
Olá, Redlock. Nesta pesquisa, não encontrei uma relação significativa entre o R Squared e o desempenho True Out Of sample.
"Excelente artigo. Como sempre! Você usou algum critério na seleção das moedas? Alguma correlação específica?"
Obrigado!
Olá, Diego. Escolhi com base na liquidez, mas da próxima vez escolherei mercados com base na correlação. Não foi uma escolha ideal.
Excelente artigo, muito obrigado.
Pergunta: também podemos incluir o efeito do Índice de Borda no teste de robustez do mercado Forex?
Olá, Stu. Você tem uma ideia concreta de como implementar o teste de robustez do Edge Ratio?
Que tal usar a mesma abordagem descrita neste blog:
https://strategyquant.com/blog/edge-ratio-in-strategyquant-x
Esse tipo de trabalho é muito bom, mas, no final das contas, queremos saber quais testes são realmente valiosos na negociação em tempo real, porque se você executar todos eles, isso consumirá muito tempo e quase nenhuma estratégia será lançada.
Mikael
Obrigado, Mikael, sim, concordo
Olá, que intervalo de correlação de pares de moedas deve ser usado ao escolher um Multi Market? Os pares de moedas com uma correlação próxima de zero devem ser usados para testes de robustez?