blocos de comparação

Criação de blocos consecutivos em um Quant de estratégia X

No StrategyQuant X 131, adicionamos dois novos blocos de comparação. Neste artigo, discutiremos esses blocos em mais detalhes. Os blocos de comparação são trechos que podem ser usados no Algo wizard ou no Builder e são usados para comparar dois valores. ( Esquerda e Direita )

Basicamente, Greater Count / Lower Count compara quantas barras a condição foi atendida.

  • Greater Count verifica a condição de que X é maior ou igual a Y, para o número especificado de barras.
  • Lower Count verifica a condição de que X é menor ou igual a Y, para o número especificado de barras.

Os blocos de comparação também são usados no Builder, onde o mecanismo genético procura novas combinações de blocos para criar uma estratégia algorítmica lucrativa.

Vamos agora mostrar dois exemplos de como criar e testar esses blocos:

 

Regras consecutivas do RSI

No primeiro exemplo, mostramos como criar um bloco personalizado - RSI ( 14 ) é maior que um valor de 50 X barras consecutivas em uma linha. Na primeira etapa, selecionamos o bloco de comparação É maior para barras X.

Podemos escolher várias configurações parametrizáveis para um determinado bloco

 

Podemos definir o Barras  - um número de barras que devem atender à condição e o Permitir os mesmos valores opção. Permitir os mesmos valores é útil em uma situação em que há uma condição em que os dois valores são iguais. Por exemplo, quando o RSI tem duas barras seguidas com o mesmo valor.

Depois de selecionarmos um bloco de comparação específico, o SQX nos oferece a configuração real do bloco. Definimos o indicador esquerdo e o indicador direito.

Em nosso caso, compararemos o RSI (14) e o valor 50.

É aconselhável parametrizar também o bloco personalizado fornecido. Escolhemos o número de barras durante as quais a condição dada é válida, o período do RSI e o valor acima do qual o RSI deve estar para X barras.

É uma boa prática criar uma regra oposta. Em nosso caso, criamos uma condição de espelho que é inferior para barras X, modificando ligeiramente nos parâmetros do bloco apenas o valor variável do RSI, que mudamos para o intervalo 20-50.

 

Barras consecutivas para cima/para baixo

Vamos agora mostrar um exemplo de criação de barras consecutivas para cima/para baixo. Defina a barra PARA CIMA quando o preço de fechamento for maior que o preço de abertura e vice-versa.

Semelhante aos exemplos acima, o uso é Contagem maior com a condição Fechar > Abrir.

Para o bloco oposto, usamos Lower Count para criar um bloco cujo corpo contém a seguinte condição Close < Open

 

Detecção de falsas fugas

Outra maneira, um pouco mais complicada, é usar a contagem maior/menor para detectar falsos rompimentos. Vamos começar com a definição de rompimento de alta semanal.

Um rompimento de alta semanal pode ser definido simplesmente como uma condição em que a última alta é igual à alta semanal atual.

 

Neste ponto, vamos considerar quando ocorre um falso rompimento? Ele ocorre quando o preço gera uma nova máxima, mas depois fica estagnado e não se move. Essa condição pode durar várias barras. Para resolver essa situação, podemos definir neste ponto que tais situações são cobertas somente pela parametrização do parâmetro Turno parâmetro.

Ao adicionar o Barras atrás Com base nos parâmetros, podemos capturar situações em que as barras semanais High Bars Ago foram quebradas no passado.

Para poder detectar que o preço está abaixo da máxima semanal atual e também do número de barras X atrás para romper o rompimento semanal, adicionamos o bloco de comparação Lower Count.

Um bloco preparado dessa forma nos permite filtrar essas situações com eficiência. Há um pequeno problema com dois parâmetros idênticos: Bars Ago e Bars Ago Int. Normalmente, eles são as mesmas variáveis, mas devem ser declarados separadamente. Isso é necessário para a funcionalidade correta das outras funções no SQX. De qualquer forma, temos duas maneiras de resolver esse problema.

  1. Deixamos que o mecanismo SQX encontre uma solução por si só, mas isso leva mais tempo durante a geração da estratégia
  2. Ajudamos o SQX definindo conjuntos de parâmetros na configuração do construtor

 

Na imagem abaixo, vemos um bloco personalizado HighWeekBreakout com conjuntos de parâmetros definidos e uma maior ponderação dessas configurações que garante que o construtor priorize os conjuntos de parâmetros que definimos.

Para o bloco oposto, usamos uma lógica semelhante com Low, Weekly Low e Greater Count.

Conclusão

Os procedimentos acima podem ser usados no design da estratégia diretamente no Algo Wizard ou no StrategyQuantX builder. Ao usar blocos personalizados, você pode direcionar melhor a estratégia de negociação desejada e reduzir os graus de liberdade. É preciso ser criativo ao criar blocos como esse. O ideal é que você tenha ideias semelhantes observando os gráficos e procurando cenários possíveis.

clonex / Ivan Hudec

Ivan Hudec — “Clonex” no fórum

Negocio há 15 anos e venho desenvolvendo com o StrategyQuant X desde 2014. Hoje em dia, faço três coisas: desenvolvo e testo estratégias automatizadas em condições reais de mercado, amplio o próprio SQX com indicadores personalizados, trechos de código e ferramentas em Python para aprendizado de máquina e pesquisa quantitativa, e ajudo outros traders a chegarem lá mais rápido — sem passar pelos anos de erros caros que cometi ao longo do caminho.
A maioria das estratégias de trading parece ótima em um backtest, mas desmorona na prática. Meu trabalho é exatamente o oposto: estratégias que são honestas, validadas e robustas o suficiente para que se possa confiar nelas com dinheiro real. Escrevo sobre esse processo — o que dá certo, o que dá errado e o sobreajuste de que ninguém fala — no meu site, algotrading.space.
Se você quiser se aprofundar no tema da validação, no desenvolvimento personalizado de SQX ou na criação de uma vantagem competitiva real com dados e código, é lá que eu compartilho tudo isso.  www.algotrading.space

0 Comentários
mais antigos
mais recentes Mais votado

Continuar lendo