Relação de borda na EstratégiaQuant X

Uma questão comum de muitos comerciantes que usam StrategyQuant X é: Como posso comparar a qualidade dos sinais de entrada da estratégia? Qual sinal tem uma vantagem melhor e maior probabilidade de sucesso?  Neste artigo, mostrarei como utilizar a nova ferramenta EDGE Ratio para avaliar a qualidade dos sinais comerciais. O Edge Ratio foi mencionado pela primeira vez publicamente em um livro muito bom de Curtis Faith Way of the Turtle. 

Na mais nova versão do StrategyQuant X - build 131 adicionamos a capacidade de trabalhar com o valor ATR(14) em um momento de abertura de posição. Este valor pode ser acessado através de ordem de campo ATROnOpen, que é uma característica chave para o uso da ferramenta EDGE ratio.

 

 

Qual é a Relação de Bordos?

A Razão de Borda é a razão MFE / MAE normalizada pela volatilidade do instrumento no momento da abertura da posição

Expliquemos agora os componentes individuais a partir dos quais a relação de borda é calculada:

Excursão adversa máxima (MAE) mede o prejuízo máximo sofrido por um único comércio enquanto ele estiver aberto.

Em contraste, Excursão máxima favorável (MFE) mede o maior lucro possível obtido por um único comércio enquanto ele está aberto.

ATR - Alcance médio verdadeiro mede a volatilidade do instrumento.

 

A figura acima mostra melhor a relação entre MAE / MFE e Lucro/Perda.

A primeira linha mostra que o Lucro/Perda da posição foi de 5,7 , enquanto o MAE - maior drawdown durante o comércio foi de 32,5 Pips. O maior lucro observado da MFE durante uma negociação foi de 45,6 Pips. Assim, podemos ver que enquanto o lucro final da posição foi moderado, a MFE foi muito maior, de modo que o potencial do comércio não foi satisfeito.

A análise destas proporções pode ajudá-lo a descobrir se seus métodos de saída são suficientemente bons. No caso do MAE, pode ajudar você a saber se suas saídas são boas o suficiente. Mais sobre estas relações você pode ler neste bom artigo link.

 

Voltemos ao cálculo da relação de borda propriamente dito. A Razão de Borda é calculada da seguinte forma

  1. Registro de MAE em pips e MFE em pips para cada comércio
  2. Dividir cada um deles por ATR(14) para ajustar a volatilidade e normalizar para futuras análises intermarcas
  3. Somar cada valor ( MAE normalizado e MFE normalizado ) e dividir com o número total de negócios
  4. A razão de borda é a volatilidade média normalizada da MFE dividida pela volatilidade média normalizada da MAE

Portanto, quanto mais alta a MFE e simultaneamente mais baixa a MAE leva a uma relação de borda mais alta. Isto significa que o sinal tem uma borda mais alta. ( O potencial de lucro comercial é maior do que o potencial de perda ).

 

Como podemos usar a relação de borda em StrategyQuant X?

Em primeiro lugar, podemos usar a relação de borda como um indicador de desempenho da estratégia. Podemos trabalhar com a hipótese de que estratégias com uma relação de borda mais alta podem ser mais resistentes a possíveis mudanças fora da amostra / Real Trading. Entretanto, esta é uma hipótese que deve ser apoiada por extensas análises de validação, idealmente com várias centenas de milhares de estratégias testadas ao longo de vários períodos.

Em 2020, realizei uma pesquisa sobre a amostra de 1,2 milhões de estratégias geradas aleatoriamente e tentei identificar características (Sharpe Ratio, Fator de Lucro, etc. ) cujos valores podem afetar o verdadeiro desempenho fora da amostra de uma estratégia. Basicamente, tentei identificar o ranking (Condições de Filtragem da Estratégia) para selecionar estratégias para negociação ao vivo. Usei a razão Pseudo Edge em meus cálculos MFE / MAE e surpreendentemente a razão pseudo-edge provou ser um bom preditor de seleção de estratégias de alta qualidade. No entanto, esta pesquisa ainda não está concluída, portanto, cobriremos este tópico em um artigo futuro.

O tipo de pedidos afeta os resultados da relação de borda. Eu uso principalmente ordens de mercado para medir a qualidade do sinal de fechamento aberto, pois as ordens Stop/Limit envolvem outros fatores/dimensões que afetam o valor real do sinal.

 

Outras perguntas

Neste ponto, outros fatores importantes devem ser considerados. Sabemos que a StrategyQuant tem um construtor de motores genéticos muito eficiente, que também está sendo constantemente aperfeiçoado.

Entretanto, precisamos contar que podemos trabalhar com bilhões de combinações de blocos de construção de estratégias. O número de condições e possibilidades é chamado - graus de liberdade. Do ponto de vista da aprendizagem da máquina e da ciência dos dados, quanto maiores os graus de liberdade, maior o risco de sobreajustar a estratégia, mesmo que a estratégia passe nos testes MC e outros testes de robustez.

Isto não é apenas um problema para nós desenvolvedores de algo, mas também para os cientistas que trabalham no campo dos algoritmos evolutivos. Em qualquer caso, o excesso de adaptação durante o desenvolvimento de estratégias pode levar ao fracasso da estratégia em condições de tempo real e, finalmente, ao colapso de sua borda.

É a razão Edge que pode ser um componente significativo da ponte entre estratégias de desenvolvimento de fluxo de trabalho puramente genético e um desenvolvimento IDEA FIRST. Um papel chave neste processo é desempenhado pelo Blocos personalizados - Recurso SQX, disponível a partir da versão 127, que nos permite definir nossas próprias partes da estratégia. Acredito que os blocos personalizados são uma verdadeira mudança de jogo e uma parte importante do fluxo de trabalho de criação de estratégia em StrategyQuant.

Você pode definir filtros de regime, pré-definir condições de entrada de fuga e preparar seu projeto estratégico de uma maneira muito sofisticada. Com um projeto de estratégia razoável e uma configuração moderada do motor genético, na minha opinião, é possível eliminar significativamente o fator de sobreajuste no desenvolvimento da estratégia a partir da perspectiva da complexidade da estratégia e da complexidade da configuração do motor genético.

Deve-se notar que mesmo durante todo o primeiro fluxo de trabalho da idéia é extremamente importante prestar atenção ao método de particionamento de dados trem/teste/validado.

StrategyQuantX é tão flexível que há várias maneiras de analisar a relação de borda. Há fluxos de trabalho complexos onde é preciso trabalhar com uma análise estratégica externa, extraindo regras de xml para sincronizá-las com SQX, etc. e há opções mais simples que podem ser usadas dentro do fluxo de trabalho SQX existente. Em nossa análise não utilizaremos nenhuma ferramenta externa, tudo o que precisamos está incluído no StrategyQuant.

 

Abordagem incremental aprimorada

Para esta abordagem, usaremos blocos personalizados, modelos e desenvolvimento de estratégias incrementais usando o motor genético da SQX. Como primeiro passo, usaremos a análise Edge ratio para avaliar a qualidade dos sinais e selecionar aqueles que têm o maior potencial.

Então, com base nesta análise, selecionaremos os grupos de blocos/estratégias com maior potencial e os utilizaremos no processo de desenvolvimento genético da StrategyQuantX. Desta forma, reduziremos os graus de liberdade e eliminaremos a possibilidade de que a SQX encontre estratégias que sejam muito sensíveis ao ruído.

 

1. Seleção da cesta de blocos de construção testados

Nesta etapa, selecionaremos a cesta dos blocos de construção que iremos testar em nossa análise.

Podemos selecionar blocos de construção que já estão implementados em StrategyQuant ou criar seus blocos usando a funcionalidade de blocos de construção personalizados.

Aqui estão vários links úteis onde você pode aprender como criar seu bloco de construção personalizado:

Não se esqueça de uma coisa importante. Se você usar blocos personalizados e examinar tanto sinais longos como curtos ao mesmo tempo, então você tem que definir o bloco oposto para cada bloco personalizado. Mais uma vez, precisamos entender completamente esta funcionalidade no SQX.

Você também pode usar blocos predefinidos que estão no Strategyquant X por padrão. Abaixo, na imagem, você pode encontrar blocos de construção selecionados que iremos testar em nossa análise.

Seleção de blocos de construção para nossa análise

2. Criação de um modelo de estratégia de teste para a realização de análises.

Os modelos de estratégia nos permitem gerar quase qualquer tipo de estratégia na StrategyQuant. Antes de prosseguirmos para a criação do modelo de estratégia para nossa análise, favor verificar a descrição detalhada de como os modelos funcionam em nossa documentação. aqui.

Para nossa análise, criaremos um modelo com a seguinte estrutura: A estratégia estará sempre no mercado. Entrará em um longo comércio sempre que ocorrer um longo sinal. Entrará em uma negociação curta sempre que ocorrer um sinal contrário à negociação longa.

Na figura abaixo podemos ver como definimos nossos sinais de entrada e saída.

Na figura abaixo podemos ver que não utilizamos nenhum método de saída e entramos no Enter/Reverse At Market.

Na figura abaixo, podemos ver que a lógica de saída é simples.

 

3. Estabelecendo o Construtor na EstratégiaQuant X

Primeiro, observe que quando o modelo de estratégia é usado, alguns ajustes são anulados. Em outras palavras, o modelo de estratégia é substituído: O que definimos no modelo de estratégia tem precedência sobre o que definimos no construtor.

Decidimos gerar a partir do modelo que criamos na segunda etapa. Mudamos as configurações na configuração adicional de construção para refletir nossa intenção:

  • utilizaremos a geração de estratégias aleatórias
  • usaremos o máximo de uma condição(sinal) para gerar.

Blocos/condições que escolhemos da lista de blocos que queremos analisar. Podemos escolher os blocos personalizados que preparamos na primeira etapa.

Não selecionamos nenhum método de entrada ou saída precisamente porque eles são anulados no modelo de estratégia.

Outra coisa essencial. É importante definir um número mínimo de sinais analisados - em outras palavras, o número de negócios.

A análise de sinais de borda com um pequeno número de negócios é, em minha opinião, um disparate estatístico. Um número de sinais muito alto resultará em um fator de baixo lucro para a estratégia, e provavelmente a maior parte de seus lucros será consumida pelos custos de negociação. Por outro lado - um número baixo de sinais pode ser estatisticamente insignificante.

Se quisermos estimar o número mínimo de negócios estatisticamente correto, o Fórmula do tamanho da amostra da Cochran pode nos ajudar.

 

4. Geração de estratégias

Depois de termos preparado todas as configurações, podemos executar o Builder em StrategyQuantX. Executamos o construtor por algumas horas para obter uma grande amostra de estratégias com sinais.

Na figura abaixo, você pode ver nosso banco de dados após algumas horas. Note que temos estratégias no banco de dados que terminaram em prejuízo - elas têm um Lucro Líquido negativo, mas têm uma alta relação de vantagem. Nós não nos importamos com o resultado da estratégia. Nos preocupamos se o sinal tem uma relação de vantagem positiva.

Selecionaremos as estratégias com sinais que tenham uma relação de borda maior do que nosso limite. Escolhemos as estratégias com uma relação de borda superior a 1,5 .

Na imagem abaixo, você pode ver como será a estratégia aleatória. A partir do pseudo-código, você pode ver que a estratégia usa uma regra para entrar longo e seu sinal oposto para entrar curto. Esta é exatamente a forma como queremos medir a qualidade dos sinais. Nenhuma outra saída, apenas o sinal puro.

 

 

5. Avaliando a robustez do sinal

É uma boa idéia pensar em uma possível avaliação mais profunda dos sinais. Tendo estratégias com muito baixa complexidade ( Temos apenas um sinal sem outras variáveis), podemos analisar mais facilmente a robustez.

Neste ponto, recomendo a realização de um teste Monte Carlo para randomizar os parâmetros. Dessa forma, você pode ter uma idéia se um determinado sinal não é uma chance aleatória estatisticamente exagerada. Ou você pode otimizar uma determinada estratégia de sinal para ver se os parâmetros do sinal dado são robustos. Permutação de parâmetros do sistema - SPP é bom para nos mostrar onde se encontram as configurações dos parâmetros do sinal dentro da distribuição dos resultados.

 

6. Usando o Improver para procurar métodos adequados de saída e entrada

Selecionamos estratégias robustas ( sinais ) e queremos construir estratégias a partir delas. Para este fim, existe o Strategy Improver. Agora podemos definir algumas configurações na configuração de construção adicional de forma mais flexível. Neste caso, definimos Stop Loss como a opção necessária. Também carregamos estratégias que selecionamos anteriormente no passo 4 no banco de dados "Strategies to Improve".

 

Nesta etapa, definimos quais peças queremos melhorar. Deixaremos os sinais ou condições de entrada como estão, melhoraremos apenas os métodos de entrada/saída.

Nos blocos de construção, definimos os tipos de entrada e saída. Não se esqueça de adicionar indicadores e blocos de entrada stop/limite. Se você não adicioná-los, o improvisador não encontrará nenhuma melhoria.

Algumas configurações em Improver funcionam de diferentes maneiras. A diferença está principalmente nos rankings de estratégia. Ao atualizar estratégias, você define quantas estratégias atualizadas devem estar no banco de dados, pelo menos para que o improvisador pule a atualização para a próxima estratégia. Se você definir um valor alto, o improvisador pode não encontrar estratégias suficientes para atualizar e ficar preso.

Há um pequeno bug no StrategyQuantX 131 a partir de 22.4.2021 que torna impossível usar corretamente a configuração do ranking de tempo. Ele deve ser corrigido em poucos dias de qualquer forma, agora temos que adaptar e ajustar nosso fluxo de trabalho para que ele não seja um problema.

O objetivo é garantir que o improvisador encontre estratégias, por isso, eu defini o improvisador para me encontrar pelo menos dez estratégias de cada estratégia base. Também é importante reduzir o número de trocas, pois é provável que o motor genético selecione estratégias com ordens de parada/limite e, portanto, o número de trocas será reduzido e será menor do que o número original de sinais.

 

Conclusão

O que é ótimo nesta abordagem incremental é o fato de que podemos separar as fases de avaliação. Na etapa 6, pudemos analisar a qualidade do sinal separadamente. Agora, depois de adicionar as novas saídas, podemos avaliar separadamente a robustez dos métodos de saída. Analisar problemas multidimensionais de uma só vez é muito difícil e, no mínimo, propenso a erros.

Você deve ter se perguntado como determinar se este é um fluxo de trabalho melhor do que o seu fluxo de trabalho atual. A solução que utilizo é reservar dois anos de dados contra os quais validar minhas conclusões. Basta tentar gerar alguns milhares de estratégias de acordo com seu fluxo de trabalho e validar o desempenho em relação a dois anos de dados reais fora da amostra. Depois, tente usar esse fluxo de trabalho para comparar a distribuição dos resultados e fazer uma estimativa estatística sobre se a diferença média no desempenho da estratégia é estatisticamente significativa. Em um posto posterior, analisaremos estatisticamente esse fluxo de trabalho e determinaremos quão eficiente ele é.

Você pode fazer o download do snippet da relação de borda aqui

 

 

Assine
Notificação de
8 Comentários
Mais antigo
Novidades Mais Votados
Feedbacks em linha
Ver todos os comentários
Um Casey
Um Casey
16. 5. 2021 5:55 am

ótimo post, aguardando o próximo!

Marco
Marco
22. 5. 2021 6:25 am

Eu experimentei este modelo. Se Não selecionamos nenhum método de saídaAs estratégias têm apenas uma profissão. Estou errado em alguns ajustes?

clonex
clonex
Responder a  Marco
28. 5. 2021 4:08 pm

Você tem que definir um método de saída em etapas de latas ....

eduardo
eduardo
2. 6. 2021 12:24 am

Você moldou o que eu estava pensando sem saber há muito tempo. É um trabalho espetacular, ouro puro, estou ansioso para conhecer seu progresso no próximo blog

Emmanuel
19. 1. 2022 12:50 am

Excelente artigo!!! e muito útil!!! obrigado Clonex!

tonyc
tonyc
7. 5. 2022 3:42 am

Você pode compartilhar o EdgeRatio.sqx?

tomas262
Admin
Responder a  tonyc
11. 5. 2022 11:39 am

Você pode encontrar mais arquivos para o Edge Ration aqui https://strategyquant.com/codebase/trade-edge-ratio/ em nosso Codebase

Farhan
13. 7. 2022 9:21 am

Obrigado pela ótima idéia. na primeira etapa Se eu configuro o #of trade filter para >200 então ele filtra todas as estratégias porque eles só levaram 1 trade. então eu não tenho nenhuma estratégia para continuar na segunda etapa para melhorar

Última edição 1 ano atrás por Farhan

Continuar lendo