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

 
angevoyageur:

De agora em diante eu vou escrever em francês antes de traduzir me dizer se a tradução é melhor / pior.

No ritmo que eu escrevo aqui talvez eu deva aprender Português.

Alain, da minha parte está ótimo assim, erros na tradução são perfeitamente compreensíveis.
 
figurelli:

Agora falando sério ...

Me parece que para uma média de ticks superior a 20 por minuto, a eventual perda de até 2 ticks (10%) nesse intervalo não deveria afetar nenhuma estratégia com um bom stoploss/takeprofit escrito na pedra, e na prática somando todos minutos o índice de perda é bem menor ainda.

Concordo com a ideia de que esse índice de perda é normal, principalmente no ambiente de roteamento Internet, onde não há garantia de entrega.

Não por menos, as melhores soluções de HFT ficam hospedadas dentro das bolsas e/ou corretoras, para diminuir ao máximo essa perda.

Mas essa ainda não é minha conclusão final pois a variação do índice Bovespa de hoje até agora é menor que 500 pontos, e não vimos ainda os dados dos logs. 

Não sei como anda a sua contagem... Mas aqui, até o momento e usando o seu EA, eu tenho 14.487 ticks em um terminal e 14.407 em outro para PETR4 (ambos rodando no servidor), enquanto que no homebroker da corretora está aparecendo pra mim 20.110 negócios.

Isso dá uma bela diferença de cerca de -28% na quantidade total de ticks...

 
Malacarne:

Não sei como anda a sua contagem... Mas aqui, até o momento e usando o seu EA, eu tenho 14.487 ticks em um terminal e 14.407 em outro para PETR4 (ambos rodando no servidor), enquanto que no homebroker da corretora está aparecendo pra mim 20.110 negócios.

Isso dá uma bela diferença de cerca de -28% na quantidade total de ticks...

Malacarne, muito boa a comparação com os dados do homebroker, não gostei nenhum pouco dessa diferença, temos que ver se na prática esse é um totalizador ou se realmente esses ticks chegam no homebroker.

Meus números nesse momento (16:01) para PETR4 são 17.125/17.136 e 17.212/17.237. 

 

Resultado final com PETR4, após o fechamento do pregão:

EA do Figurelli:

Servidor - Terminal 1) Minutes: 435 / Ticks: 21.259 / Max: 364 / Avg.Tick: 48
Servidor - Terminal 2) Minutes: 441 / Ticks: 21.133 / Max: 338 / Avg.Tick: 47

Laptop - Terminal 1) Minutes: 436 / Ticks: 19.699 / Max: 304 / Avg.Tick: 45
Laptop - Terminal 2) Minutes: 443 / Ticks: 20.054 / Max: 313 / Avg.Tick: 45

Homebroker) Ticks: 28.91K

 

Script do Malacarne:

Servidor - Terminal 1) Ticks: 21.273 ticks
Servidor - Terminal 2) Ticks: infelizmente esqueci de colocar o script pra rodar no terminal 2 ... :-(

Laptop - Terminal 1) Ticks: 19.984 ticks
Laptop - Terminal 2) Ticks: 20.060 ticks

Homebroker) Ticks: 28.91K 


De acordo com os dados acima, não importa se está rodando o EA do Figurelli ou meu script, as informações coletadas são extremamente parecidas (pelo menos em termos de quantidade de ticks), o que poderia indicar que o MetaTrader cumpre tranquilamente as tarefas que lhe são atribuídas.

Entretanto, ainda não entendi porque a diferença é tão grande entre o servidor (i7-3930K) e o laptop (i3-3217U), que tem muito menos poder de processamento...

Ainda, acredito que a quantidade e qualidade dos dados que são recebidos do servidor pode ser diferente de um PC para o outro...

Enfim, ainda não posso tecer uma conclusão final... gostaria de colocar em discussão aqui no fórum como poderíamos interpretar esses dados.

Abraços,
Malacarne 

 

Servidor 

Laptop 

 

Bem, aqui estão os resultados. Eu, infelizmente, apenas duas plataformas MT5 em 1 computador:

PETR4
PC_1/MT5_1
PC_1/MT5_2
Minutos
460
460
Ticks
18500
18924
Mínimo
1
1
Máximo
231
249
Média
40
41
Volume de Tick (dia)
28992
28992
 

Bem, aqui estão os resultados. Mesmas duas plataformas MT5 em 1 computador:

WINZ13
PC_1/MT5_1
PC_1/MT5_2
Minutos
558
554
Ticks
29695
28307
Mínimo
1
1
Máximo
239
249
Média
53
51
Volume de Tick (dia)
51339
51339
 

Meus resultados para o mini-índice WINZ13, usando o EA do Figurelli:

WINZ13 
Servidor/MT5_1
Servidor/MT5_2 Laptop/MT5_1
Laptop/MT5_2
Minutos 
575 erro*585
559
Ticks
34.250 erro*31.002
 31.614
Mínimo 

 erro*
 1
Máximo 
387 erro*294 
 336
Média 
59 erro*52
 56
Volume de Tick (dia) 
51.339 erro*51.339
 51.339
 Perda de ticks -33,3% - -39,6% -38,4%

* Sem querer eu compilei o EA do Figurelli nesse terminal, como já reportado anteriormente.

 

Resultados para o mini-índice, usando o script:

WINZ13Servidor/MT5_1Servidor/MT5_2Laptop/MT5_1Laptop/MT5_2
Ticks34.532erro*30.33131.163
Perda de ticks -32,7%erro* -40,9%-39,9% 

* Esqueci de inicializar o script nesse terminal

 
Coleta de Ticks com Preços:
WINZ13           PC_1/MT5_1  PC_1/MT5_2  
Minutos                 602         595 
Ticks                 32648       31834 
Mínimo                    1           1  
Máximo                  373         356 
Média                    54          53 
Volume de Tick (dia)  51339       51339 
   
PETR4            PC_1/MT5_1  PC_1/MT5_2  
Minutos                 473         472 
Ticks                 20314       20213 
Mínimo                    1           1  
Máximo                  328         334 
Média                    42          42 
Volume de Tick (dia)  28992       28992

Meus números não diferem muito dos de vocês, mas a grande preocupação e talvez até descoberta do dia seja essa brutal diferença entre o Volume de Tick (dia) e Ticks que coletamos no OnTick().

Teoricamente, a meu ver, essa diferença afeta até estratégias em M1 e/ou superior, tornando a plataforma totalmente instável para backtesting e/ou decisões de trade em operação na BM&FBovespa.

A questão passa a ser onde está a causa do problema, já que vejo que o EA já está perto do limite de velocidade possível e a diferença próxima a 40% deve ter outro motivo.

Outro ponto muito relevante, fazendo uma associação do erro de ticks ao erro de leitura de lote de uma posição após uma ordem, é que se esse problema acontece com os ticks, será que na leitura do volume atual da posição após uma ordem executada não acontecem erros também?

Porque se existem atrasos na leitura da posição de volume de uma posição atual, como acontece com os preços (ainda mais com perda próxima a 40%), e sabe-se que a única forma de fechar um trade no MT5 é comprando uma operação contrária no mesmo volume, o risco de erro e perda de sincronismo será crítico pois a ordem contrária tem que ser precisamente o volume atual para haver um fechamento de posição.

O EA atual não testa a latência de execução das ordens e a correspondente latência de leitura atualizada do volume da posição atual, mas talvez essa seja mais uma coleta a ser feita futuramente nesse tópico para contribuir na medição e controle de qualidade dos dados do MT5 na BM&FBovespa.

 
figurelli:

Meu foco estará nos testes e descobertas em https://www.mql5.com/pt/forum/16254 que vão exigir bastante tempo e trabalho na área de qualidade e acredito que deva ser a minha maior prioridade de desenvolvimento no MT5 na BM&FBovespa nesse momento, ou seja, buscar qualidade de dados e operações sem risco.

Isso é a base de qualquer automated trading system, não adianta perder o contato com o solo nesse momento, e, para ser franco, esse teu tópico é para mim o mais importante, realista e decisivo no fórum em português no momento.

Figurelli, da mesma forma que esse é o seu foco no momento, este também tem sido o objeto de minhas pesquisas nos últimos dois meses!!! Por isso mesmo te respondi com tanta propriedade seus questionamentos no tópico https://www.mql5.com/pt/forum/16229... Eu já vinha fazendo testes e já tinha percebido há algum tempo que havia muita perda de ticks, mas da ordem de 35% (na média), pra mim é a grande descoberta do dia de hoje!

Vou continuar fazendo meus testes (devo repetir esse mesmo teste amanhã), até porque ainda não tive coragem de implementar grande parte de minhas estratégias, que são baseadas em fluxo de ordens (order flow). Imagine só... trabalhar com fluxo de ordens em um sistema que perde, em média, 35% das ordens... no mínimo é uma loucura!

De qualquer forma, me coloco à inteira disposição para ajudar no que for preciso em seus testes. E como havia te falado, devo contactar o pessoal da área de TI da corretora essa semana e, se tivesse um nome de peso como o seu me apoiando nesse contato, poderíamos ajudar bastante na melhora dessa ferramenta para o usuário final no futuro.

Abraços,
Malacarne 

 
Malacarne:

Figurelli, da mesma forma que esse é o seu foco no momento, este também tem sido o objeto de minhas pesquisas nos últimos dois meses!!! Por isso mesmo te respondi com tanta propriedade seus questionamentos no tópico https://www.mql5.com/pt/forum/16229... Eu já vinha fazendo testes e já tinha percebido há algum tempo que havia muita perda de ticks, mas da ordem de 35% (na média), pra mim é a grande descoberta do dia de hoje!

Vou continuar fazendo meus testes (devo repetir esse mesmo teste amanhã), até porque ainda não tive coragem de implementar grande parte de minhas estratégias, que são baseadas em fluxo de ordens (order flow). Imagine só... trabalhar com fluxo de ordens em um sistema que perde, em média, 35% das ordens... no mínimo é uma loucura!

De qualquer forma, me coloco à inteira disposição para ajudar no que for preciso em seus testes. E como havia te falado, devo contactar o pessoal da área de TI da corretora essa semana e, se tivesse um nome de peso como o seu me apoiando nesse contato, poderíamos ajudar bastante na melhora dessa ferramenta para o usuário final no futuro.

Abraços,
Malacarne 

Malacarne, na verdade já fiz muitos testes desse tipo no Forex, já que uso a plataforma desde 2006 (ainda no velho e bom MT4), e depois com o MT5 fiz vários testes similares com múltiplos instrumentos e com profundidade de mercado, mas para ser sincero não imaginava essa diferença em relação à BM&FBovespa.

Da minha experiência nos campeonatos do MetaTrader, onde participei em todos desde 2007, vi várias estratégias ganharem operando em H1, enquanto várias eram perdedoras em M1. Isso me fez estar atento e testar mais EAs em todos períodos, e posso contar nos dedos as boas estratégias de alta freqüencia ou em M1 (embora elas existam). Como você comentou em outro post, sobre os 25% ao ano do Buffet, acredito que o período de hora, não só dos indicadores como das operações, é mais que suficiente para esse objetivo.

Essa percepção do Forex talvez tenha me mantido míope em relação ao problema de perdas dos ticks na BM&FBovespa, e você está de parabéns pelo esforço nesse sentido, que desde o início vi que era muito relevante, ainda mais agora que vejo associação a outros problemas como a medição do volume atual de forma precisa.

Estou à disposição para o que precisares, mas note que o único nome verdadeiramente de peso aqui é o do nosso moderador, o Alain !!! 

Razão: