Metodologia de teste de qualidade de dados - página 2

 
angevoyageur:

Desculpe, mas a tradução não é muito clara. Você recomenda para abrir cartas para (WINZ13, PETR4) em duas plataformas diferentes? É no mesmo computador?

Se algumas pessoas estão começando a testar, você está sugerindo para coletar dados durante toda a sessão? Das 10.00 às 17,00 para PETR4 e de 09.00 a 18.00 para WINZ13 (horário do servidor), tanto quanto eu posso ver.

Perfeitamente, abaixo tem uma explicação melhor:

Coleta 1) Computador 1 -> MT5 1 -> Gráfico PETR4 (10h às 17h)

Coleta 2) Computador 1 -> MT5 1 -> Gráfico WINZ13 (9h às 18h) 

Coleta 3) Computador 1 -> MT5 2 -> Gráfico PETR4 (10h às 17h)

Coleta 4) Computador 1 -> MT5 2 -> Gráfico WINZ13 (9h às 18h)  

Para mais computadores, substituir Computador 1 por Computador N.

Coleta 5) Computador 2 -> MT5 1 -> Gráfico PETR4 (10h às 17h)

Coleta 6) Computador 2 -> MT5 1 -> Gráfico WINZ13 (9h às 18h) 

Coleta 7) Computador 2 -> MT5 2 -> Gráfico PETR4 (10h às 17h)

Coleta 8) Computador 2 -> MT5 2 -> Gráfico WINZ13 (9h às 18h)  

 etc ...

obs: vou começar testando apenas em um computador, mas quem quiser utilizar mais de um sugiro o perfil acima. 

 
figurelli :

Perfeitamente, abaixo tem uma explicação melhor:

...

obs: vou começar testando apenas em um computador, mas quem quiser utilizar mais de um sugiro o perfil acima. 

Ok, muito claro, vou dar alguns dados coletados amanhã (ou talvez terça-feira).
 
Malacarne:

Senhores, obrigado pelas contribuições! Após as sugestões de vocês, vou enviar em anexo o código modificado do script para gravação de ticks.

Entretanto, após analisar o Expert Advisor do Figurelli, tenho algumas críticas a fazer:

1) vi que o mesmo faz a contagem de ticks com plotagem visual das informações, mas não gera logs para futuras comparações; talvez fosse interessante fazer a escrita dos dados recebidos pelo menos a cada um minuto no disco (o que acredito não deva impactar a performance do expert advisor) ou, na pior das hipóteses, ao término do EA.

2) outra crítica que faço é o fato de que o mesmo apenas analisar a quantidade de ticks recebidos, mas não faz uma análise da qualidade dos mesmos; vi que é feito um cálculo de média para os ticks, cuja finalidade para ser sincero ainda não compreendi; lembrando que ao fazer o cálculo da média perde-se muito a qualidade da informação em si...

No mais, o intuito desse post é justamente esse: gerar uma metodologia que tenha um consenso mínimo entre os membros do fórum para que possamos, de forma conjunta, analisar a qualidade dos dados que estamos recebendo e utilizando no terminal MetaTrader.

Segue abaixo o código modificado e o arquivo.

Malacarne, perfeitamente, segue meu contraponto aos ítens de cada crítica.

1) Exatamente, a ideia é justamente ser uma versão minimalista, mas note que são calculados os valores médios o que irá logo apontar diferenças de ticks e preços quando comparar com outras medições.

2) Estamos medindo mínimo/máximo/média de ticks em 1 minuto, com opção de medir o preço médio no minuto também (ask/bid). Quanto maior a divergência de ticks maior será a diferença na média, quando comparado entre diversos EAs rodando simultaneamente.

Lembro também que a gravação no EA é uma possibiidade ("2) Se o comentário na tela não for eficaz para o diagnóstico, posso alterar o código para repetir os testes na terça-feira, mas gravando históricos em disco de hora em hora e coletando em períodos onde não ocorrerem as gravações.").

Bem, como comentei também anteriormente e de acordo com o último comentário do Alain, são duas abordagens complementares (o que é relevante, já que não é um problema simples) e considero os dois testes viáveis e válidos.

Note que a metodologia é o "como?". Mas o que importa, a meu ver, mais que a metodologia em si é "o que" será feito, e nesse caso para mim o que parece mais coerente é inicialmente ver se realmente existe o problema (se não é atraso do algoritmo do teu indicador ou script inicial, por exemplo) e, caso existir, quais são as causas e soluções para ele. 

 
Concordo plenamente! Uma vez que as abordagens são complementares, vamos agora aguardar os resultados dos testes a partir de amanhã.

Abraços,
Malacarne
 

Ótimo Malacarne e Alain, vamos unir forças e começar a trabalhar forte nos testes de qualidade dos dados da BM&FBovespa no MT5 (e quem sabe até do próprio Forex).

Todos demais participantes do fórum que puderem contribuir nas coletas e análises serão também muito bem-vindos.

Obrigado e abraços.

 

Primeiros resultados, com testes do EA tick_count, utilizando o Forex, par EUR/USD e servidor MetaQuotes-Demo, em dois links e computadores diferentes.

- Nesse momento a média é de 14 ticks por minuto no EUR/USD. 

- Todos os valores de contadores de ticks (mínimo/máximo/médio) e preços (ask/bid) médios absolutamente iguais, em 2 computadores e várias instâncias de MT5 (ou seja, nem um tick sequer perdido). 

- Não teve diferença até agora coletar com preço ou sem preço, ou seja, a SymbolInfoTick() não causou nenhum atraso significativo até agora.

Vamos ver se o quadro se mantém sem alterações até a abertura da BM&FBovespa às 9h, já que o mercado Forex ainda está lento e iniciando a semana.

Mas até agora, pelo menos no Forex, a perda de ticks entre cliente/servidor é absolutamente zero.

Obs 1: atualizei o EA (e código fonte no post correspondente) para exibir até 5 dígitos após a vírgula nos preços (isso é importante para medir com maior precisão instrumentos como o EUR/USD) e também fiz uma pequena alteração do algoritmo para só iniciar a contagem quando inicia um minuto no servidor, facilitando o sincronismo e ativação de várias instâncias a qualquer tempo (e não somente na abertura do mercado).

Obs 2: para inicializar exatamente no mesmo ponto em várias instâncias, e a qualquer tempo, recomendo compilar o EA novamente em todos, assim que inicia um minuto (forçando a inicialização das variáveis na memória), mantendo a negociação automatizada sempre ativa. Dessa forma, se a compilação for feita em todas instâncias em até 60 segundos, todos EAs estarão perfeitamente sincronizados (no meu caso, todo processo levou menos de 10 segundos).

 

Olá Figurelli,

eu também já estou rodando os dois algoritmos no servidor Alpari e no símbolo EURUSD... rodei durante duas horas e perdi, usando meu script, um único tick. Usando seu script perdi dois ticks, mas acredito que isso possa ter ocorrido por conta do tempo de inicialização ou término do seu EA... como não tenho log infelizmente não tenho como saber...

De qualquer maneira, deu pra perceber que meu script também está funcionando como planejado e, após as modificações sugeridas, não vejo muito problema com relação a latência de escrita dos dados no HD (pelo menos no meu HD SSD)...

Importante detalhe: pelas minhas contas, o ativo EURUSD tem, na média, cerca de 180.000 negócios por dia, rodando 24 horas sem parar; isso dá, em média, 7.500 ticks por hora. Entretanto, estou bastante curioso para ver o resultado da verificação no mini-índice Bovespa, que na média tem tido cerca de 70.000 negócios por dia, ao longo de 9 horas de pregão, o que dá algo em torno de 7.700 negócios por hora. Logo, se o script está rodando bem com o ativo EURUSD, o mesmo deveria (em tese) acontecer com o ativo WINZ13...

Pelas minhas observações a perda de ticks ocorre com bastante frequência quando o mercado fica "nervoso" por algum motivo, e acontece uma enxurrada de ordens ao mesmo tempo... aí a perda de ticks, pelas minhas observações nos últimos 2 meses, ocorre de forma absurda!

Vamos ver amanhã!

Abraços,
Malacarne 

 
Malacarne:

Olá Figurelli,

eu também já estou rodando os dois algoritmos no servidor Alpari e no símbolo EURUSD... rodei durante duas horas e perdi, usando meu script, um único tick. Usando seu script perdi dois ticks, mas acredito que isso possa ter ocorrido por conta do tempo de inicialização ou término do seu EA... como não tenho log infelizmente não tenho como saber...

De qualquer maneira, deu pra perceber que meu script também está funcionando como planejado e, após as modificações sugeridas, não vejo muito problema com relação a latência de escrita dos dados no HD (pelo menos no meu HD SSD)...

Importante detalhe: pelas minhas contas, o ativo EURUSD tem, na média, cerca de 180.000 negócios por dia, rodando 24 horas sem parar; isso dá, em média, 7.500 ticks por hora. Entretanto, estou bastante curioso para ver o resultado da verificação no mini-índice Bovespa, que na média tem tido cerca de 70.000 negócios por dia, ao longo de 9 horas de pregão, o que dá algo em torno de 7.700 negócios por hora. Logo, se o script está rodando bem com o ativo EURUSD, o mesmo deveria (em tese) acontecer com o ativo WINZ13...

Pelas minhas observações a perda de ticks ocorre com bastante frequência quando o mercado fica "nervoso" por algum motivo, e acontece uma enxurrada de ordens ao mesmo tempo... aí a perda de ticks, pelas minhas observações nos últimos 2 meses, ocorre de forma absurda!

Vamos ver amanhã!

Abraços,
Malacarne 

Malacarne, ótimo, se puderes atualizar o EA com essa versão que sincroniza no minuto, ai ficamos na mesma página.

Pelos teus números, e levando em conta que a Bovespa só está ativa 1/3 do tempo do Forex, quando o MT5 e os robôs se tornarem populares por aqui, o mini-índice vai superar o número de negócios do EUR/USD (o que seria impressionante).

Quanto às perdas, concordo plenamente, a prova de fogo será nesses horários de pique, principalmente quando existem variações de preços significativas.

Vamos ver amanhã. Abs.

 
Bom dia, como eu posso ajudar?
 
Obs. tentei baixar o MT5 com no site da Bovespa e só dava erro posso usar a moeda do forex mesmo?
Razão: