Resposta

Nem todos os Backtester Engine são iguais

2 respostas

hannahis

Assinante, bbp_participante, comunidade, 21 respostas.

Perfil da visita

7 anos atrás #116341

Nem todos os mecanismos de backtester são iguais.

 

O modo como um backtester "organiza" seus dados históricos afetará drasticamente a confiabilidade e a validade do software.

 

Em todo experimento científico, precisamos avaliar a validade do teste antes de avaliar a confiabilidade dos resultados.

 

É inválido usar uma máquina de pesagem para medir sua altura e, portanto, os "resultados" são irrelevantes, inválidos para comparação.

 

Além disso, se toda vez que você pisar na balança (dentro de um intervalo de 2 minutos) e supondo que todas as outras variáveis permaneçam as mesmas, você continuar obtendo resultados diferentes, então essa balança é um instrumento válido, mas altamente não confiável.

 

Da mesma forma, se um software de negociação forex não usar os dados históricos "corretamente" para simular o mais próximo possível o comportamento de um mercado real (como em sua conta real), então, por mais recursos fantásticos que um software de negociação forex tenha, ele é INVÁLIDO.

 

Confiamos tanto em todos esses testes estatísticos, mas muitas vezes não examinamos nem avaliamos, em primeiro lugar, como funciona o mecanismo de backtester do software. Não avaliamos se o uso de "valores de barras anteriores" na estratégia de vários períodos está sendo empregado corretamente.

 

Entendo que a SQ está no processo de adicionar recursos de quadros de tempo múltiplos ao SQ4 (e estou esperando para testar para ver se é melhor do que outros softwares) e, portanto, quero escrever para aumentar a conscientização sobre o "problema comum" que enfrentei com outros softwares forex que empregam metodologia defeituosa em sua lógica de quadros de tempo múltiplos, de modo a esperar que a SQ evite essas quedas.

 

O uso comum do "Valor da barra anterior (PBV) do período superior" no recurso de vários períodos é fundamentalmente errado, na minha opinião.

 

Aqui está um exemplo.

 

Uso um gráfico de 1 minuto e adiciono indicadores/regras M30, H1 e H4 à minha estratégia.

 

Quando usamos a barra de fechamento do PBV do período de tempo mais alto como parte do cálculo do meu EA, verdadeiro/falso e se devemos executar a negociação ou não, enfrentamos esse problema...

 

às 11h57, o EA terá que reunir vários valores de fechamento de barra de diferentes/múltiplos períodos de tempo para determinar se as regras do meu EA são verdadeiras ou falsas.

 

Para as regras de 1 minuto, será usado o valor do preço de fechamento da barra de 1 minuto às 11:57

 

Para as regras do M30, ele usará o fechamento da barra anterior do M30 às 11:30 (que tem um intervalo/diferença de tempo de 27 minutos do fechamento da minha barra atual)

 

Para as regras de H1, ele usará o fechamento da barra anterior de H1 às 11:00 (que tem um intervalo de tempo de 57 minutos em relação ao fechamento da minha barra atual)

 

Para as regras do H4, ele usará o fechamento da barra anterior do H4 às 8:00 (porque o intervalo do H4 é às 00:00, 04:00, 08:00 e 12:00 etc.), o que representa um intervalo/diferença de 3 horas e 57 horas em relação ao fechamento da minha barra atual).

 

 

Vamos dar uma olhada em outro exemplo: Imagine que seu EA, em um intervalo diferente, usará 4 valores de preço diferentes (em vez de usar apenas o nível de preço de fechamento da barra atual de 1 minuto) para calcular suas regras de abertura/fechamento e determinar se deve ou não executar uma negociação.

 

Às 15:46h

 

As regras de 1 minuto usarão o valor do preço de fechamento da barra às 3:46 do valor atual do preço de fechamento da barra em seu cálculo

 

As regras do M30 pegarão/usarão o valor do preço de fechamento da barra às 3:30 (intervalo de tempo = 16 minutos) (o exemplo anterior tem um intervalo de tempo de 27 minutos)

 

As regras de H1 tomarão/usarão o valor do preço de fechamento da barra às 3:00 (intervalo de tempo = 46 minutos) (exemplo anterior, tem intervalo de tempo de 57 minutos)

 

As regras de H4 pegarão/usarão o valor do preço de fechamento da barra às 00:00 (intervalo de tempo = 3 horas e 46 minutos) (o exemplo anterior tem um intervalo de tempo de 3 horas e 57 minutos)

 

 

Então, qual é a implicação desse uso "indevido" da barra anterior do período superior e quais são as dificuldades que isso representa para os usuários?

 

 

1. Para que qualquer objetivo de EA alcance resultados consistentes, é necessário ter uma fórmula consistente.  

 

A fórmula do seu EA é consistente? (ou seja, qual método ele usa para calcular os preços de mercado/dados históricos para determinar se deve ou não executar uma negociação, se as regras são verdadeiras ou falsas).

 

Se usarmos um nível de preço e o aplicarmos a todos os diversos/últiplos períodos de tempo, por exemplo, se usarmos apenas o valor de fechamento/abertura/preço atual da barra do gráfico de tempo e o aplicarmos a todos os outros períodos de tempo múltiplos, estaremos "produzindo" uma fórmula consistente.

 

No entanto, se usarmos valores de barras anteriores de vários períodos de tempo, criamos uma fórmula "variável". Uma fórmula que muda o tempo todo porque você está utilizando diferentes valores de preço obtidos em diferentes intervalos de tempo.

 

É senso comum que uma fórmula variável/alterada produzirá resultados variáveis/alterados (resultados inconsistentes) e uma fórmula fixa produzirá resultados fixos, consistentes com sua aplicação. Ela permanece fiel à intenção e à execução do usuário.

 

Portanto, não espero resultados consistentes de um EA gerado por um software que usa um "valor de barra anterior" diferente quando uso regras de vários períodos de tempo em meu EA. Na verdade, não desperdiçarei meu tempo/dinheiro com esse tipo de software.

 

2. Imagine como você vai estabelecer suas regras de negociação se estiver usando os valores de barras anteriores do H4 (ou outros períodos de tempo mais altos).  

 

Imagine que você queira que seu EA entre no fechamento da barra atual quando o MA do H4 cruzar. Como você vai colocar essa regra se o software está usando o valor da barra anterior do H4?  

 

Você precisa pensar "para trás", ou seja, como é a condição antes do crossover H4, em outras palavras, como você acha que seus indicadores H4 deveriam estar 4 horas antes do rompimento (porque o software usa a barra anterior do H4, que estava 4 horas atrás).  

 

Às vezes, o indicador H4 permanece o mesmo por muitas barras antes de realmente cruzar, como você vai colocar essas regras de "barra anterior"? Não seria mais fácil colocar as regras como estão, no fechamento da barra atual?

 

Se o software usar o fechamento da barra atual de 1 minuto para calcular o indicador do H4, poderei simplesmente colocar minhas regras como: executar uma negociação quando o MA 100 do H4 cruzar o MA 200, sempre que estiver no fechamento da barra de 1 minuto. É muito mais fácil do que inserir a condição de fechamento da barra anterior do H4, que é de 4 horas atrás.

 

 

O problema está na metodologia do desenvolvedor do software ao usar dados históricos. Portanto, nem todos os backtester são (projetados) da mesma forma.  

 

O uso de valores de barras anteriores de outros períodos de tempo múltiplos como um ponto de decisão/execução produz um desempenho irreal e impreciso (EA).

 

backtesting realistaEmbora nenhuma aproximação possa ser 100% perfeita, fizemos de tudo para recriar com precisão as condições de mercado passadas e a execução de ordens para a negociação de estratégias. Os mecanismos típicos de backtesting têm muitas suposições e atalhos, o que resulta em testes irrealistas e resultados não confiáveis. O MultiCharts é uma plataforma de negociação de nível institucional que minimiza as suposições e considera muitos fatores.

 

 

Não estou aqui para promover o MC, mas para destacar e enfatizar a importância de usar corretamente os dados históricos para recriar condições de mercado passadas, de modo a produzir resultados de backtesting confiáveis/validados para que você selecione qual EA descartar ou manter.

 

 

 

O uso de dados históricos tem duas funções diferentes/primárias

 

1) Fornecer rastreamento/movimento de preços em um determinado período de tempo (qual é o intervalo de seus dados históricos) 

 

     Portanto, esses dados são empacotados em barras de tempo OHLC. Assim, você pode ver no gráfico MT4 os movimentos de preço ao longo de meses ou anos.

 

2) Para que o software utilize os valores de preço para calcular se as regras do seu EA são verdadeiras ou falsas. Para execução ou abertura/fechamento de uma negociação em um ambiente de backtesting simulado.

 

 Embora eu esteja usando o indicador do H4, não preciso depender dos valores de preço do OHLC do H4 para decidir se, no nível de preço atual/fechamento da barra, há um cruzamento na MA do H4? Esse é um erro comum em que muitos softwares caem. O fato de eu estar usando indicadores H4 como parte da fórmula do meu EA não significa que os valores da barra OHLC do H4 só podem ser utilizados.  

 

Como o H4 é composto de vários valores de barra de 1 minuto, é mais preciso usar o valor da barra atual ou o fechamento da barra de 1 minuto e aplicar esse valor em todos os indicadores para cálculo e, assim, determinar se a negociação deve ser executada em tempo hábil, em vez de usar o valor da barra anterior do H4 "fora dos dados". Em um mercado tão volátil, o que aconteceu há 4 horas, a diferença de mercado/tendência/preço teria mudado drasticamente.

 

 

A precisão é a chave

    

De fato, se houver vários períodos de tempo disponíveis no SQ, o ideal é usar apenas o gráfico de 1 minuto para inserir todas as nossas regras de negociação. O gráfico de tempo que você usa determina a rapidez/frequência com que você deseja que o EA examine o mercado em busca de oportunidades de negociação. Isso não tem nada a ver com as estratégias que você está usando. Você pode inserir H4, H1 ou qualquer outro indicador de tempo no gráfico de 1 minuto. O problema é uma questão de velocidade. Com que rapidez você quer que seu EA reaja às mudanças do mercado. Um EA com atraso provavelmente não terá execuções precisas de entrada/saída.  

 

Nas atuais condições voláteis do mercado, é fundamental que nosso EA seja rápido e preciso. Se for muito lento, com essa diferença/intervalo de tempo, será muito difícil obter um EA altamente preciso e lucrativo. A maioria dos meus EAs pode gerar entre $3000 e $5000 por semana (considerando a volatilidade do mercado atual). Não conseguirei obter esses resultados se usar qualquer período de tempo superior a 1 minuto.

 

Com que velocidade você quer que seu EA examine o mercado e continue procurando as oportunidades certas? A cada minuto, a cada hora ou a cada 4 horas? Com que rapidez você deseja que seu EA responda às mudanças do mercado, a cada minuto ou a cada hora?  

 

O uso de um EA de gráfico de tempo de 1 minuto me permite desenvolver um EA com regras de entrada/saída elevadas. Com o uso de vários períodos de tempo e a prevenção do uso "errôneo" de vários valores de barras anteriores (em vez de um valor de barra atual), temos uma esperança maior de obter bons lucros com todos os movimentos do mercado (é claro que o resto depende da solidez de seu plano/estratégia de negociação).

 

 

 

Por que você acha que o Multi Chart tem essa função abaixo?

 

Simulação tick-by-tick

O Bar Magnifier é essencial para aumentar precisão durante o backtesting. O MultiCharts pode construir barras maiores a partir de componentes menores 'barras de segundos e minutos a partir de ticks, barras de horas e dias a partir de minutos. Você pode recriar os movimentos exatos de preço em cada barra usando a Bar Magnifier. Por exemplo, a Bar Magnifier pode carregar invisivelmente minutos que compõem a horae a estratégia será testada em um backtested minuto a minuto

 

Portanto, ao usar o gráfico de tempo de 1 minuto para o seu EA, você estará fazendo o backtesting do seu EA minuto a minuto (desde que o desenvolvedor esteja usando o fechamento da barra de 1 minuto como ponto de cálculo para todas as outras entradas/regras de vários períodos de tempo).

 

Ps: Não estou aqui para promover o MC, pois acho que o MC e o SQ são dois softwares muito diferentes. O SQ é mais para quem não é programador. Mas podemos aprender com a experiência de outras pessoas.

 

 

Conclusão

Como o SQ4 está incorporando recursos de período múltiplo, por favor, não use a barra anterior do período superior como metodologia de backtesting. Eu definitivamente nunca compraria um software com esses métodos de backtesting. Porque qualquer que seja o EA que eu desenvolva usando os recursos de valor da barra anterior, esse EA (com fórmula variável/intervalo de tempo) nunca produzirá resultados consistentes e confiáveis para que eu coloque meu EA em uma conta real. 

Estou impressionado com a equipe de desenvolvimento da SQ e, portanto, quero que a SQ tenha sucesso em encontrar maneiras de fornecer ferramentas eficazes e poderosas para seus usuários dedicados, que são todos tão solidários e apreciam os membros da equipe da SQ. O sucesso da SQ resultará no sucesso dos usuários (em sua busca por um EA lucrativo). 

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

7 anos atrás #141579

Obrigado pelo longo artigo, entendi o que você quis dizer. Em geral, você está dizendo que não é uma boa ideia usar o valor da barra anterior em estratégias multi-TF.

 

Não vejo isso de forma tão rígida, depende e, às vezes, é vantajoso usar valores de barras anteriores. Mas o novo SQ4 não limitará sua escolha, ele tem a possibilidade de usar o valor da barra atual (por exemplo, a barra H4 que está atualmente em desenvolvimento), você não está limitado ao valor da barra anterior.

 

Você mencionou o MultiCharts, que sem dúvida é um bom software, mas a SQ tem um mecanismo de backtesting comparável ou até melhor, usando a precisão real dos ticks de forma limpa e compreensível.

Sempre achei confusa a opção do Tradestation/MultiCharts de usar a simulação de barra interna.

Marcar
EstratégiaQuant arquiteto

0

hannahis

Assinante, bbp_participante, comunidade, 21 respostas.

Perfil da visita

7 anos atrás #141580

Excelente!!!

 

Marca,

 

É reconfortante saber que o SQ4 não tem essa restrição, mas oferece muito mais flexibilidade do que eu poderia imaginar.

 

Agora vale a pena esperar, porque eu estava me perguntando como o mecanismo de backtest do SQ4 é organizado e se ele repetiria algum tipo de queda.  

 

Fico muito feliz em saber que o SQ4 é muito mais "avançado" do que eu gostaria que fosse. Bom trabalho.  

 

As coisas boas valem a pena esperar....Estou aguardando com grande expectativa.

0

Visualizando 2 respostas - 1 até 2 (de um total de 2)