Diferenças nos atributos dos ticks entre duas corretoras - página 3

 
Filipe_Almeida #:

Daniel,

Os ticks do backtest são ticks gerados, embora supostamente "baseados em ticks reais". Não são.

Muito obrigado pelo retorno @Filipe_Almeida!


Mesmo quando realizamos o procedimento explicado no link abaixo?
https://www.mql5.com/pt/forum/388772/page2#comment_27844101


Isso depende da corretora ou vai ser assim em todas? Alguma sugestão para resolver o problema de ter um resultado em tempo real e depois rodar o mesmo algoritmo no backtest e ter outro reultado?

Filipe_Almeida
Filipe_Almeida
  • 2022.02.07
  • www.mql5.com
Perfil do Trader
 
Filipe_Almeida #:

Patinhas,

Segue meu entendimento da questão.

(...)

Sendo assim,

flag 50: compra + volume + bid
flag 84: venda + volume + ask

Ou seja, cada uma das 4 operações destacadas representa uma compra ou venda dos volumes indicados no valor do tick.last precedente (no caso 4796.0), que por acaso coincidem com uma mudança do bid ou do ask (ou que são agregadas pela corretora num único tick).

Pois é Filipe.

Pelo que está escrito na documentação do MQL5, a interpretação correta deveria ser exatamente essa que vc descreveu.

O problema é que, apesar de os flags de compra/venda estarem ativos e o volume preenchido, a realidade é que não ocorreu nenhum negócio nesses eventos 50 e 84. Isso pode ser verificado facilmente comparando com os dados da própria B3. O volume total de flags 56, 88 e 120 no dia é muito próximo do volume total negociado no dia informado pela B3. Porém, se incluirmos os volumes desses eventos 50 e 84, encontraremos um total muito maior que o volume informado pela B3.  

 
Trader_Patinhas #:

Pois é Filipe.

Pelo que está escrito na documentação do MQL5, a interpretação correta deveria ser exatamente essa que vc descreveu.

O problema é que, apesar de os flags de compra/venda estarem ativos e o volume preenchido, a realidade é que não ocorreu nenhum negócio nesses eventos 50 e 84. Isso pode ser verificado facilmente comparando com os dados da própria B3. O volume total de flags 56, 88 e 120 no dia é muito próximo do volume total negociado no dia informado pela B3. Porém, se incluirmos os volumes desses eventos 50 e 84, encontraremos um total muito maior que o volume informado pela B3.  

Um tema de cuja relevância não estou certo são as Dark Pools. Vide por exemplo o link abaixo.

https://www.amazon.com/Dark-Pools-Machine-Traders-Rigging/dp/0307887189/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=1688553755&sr=8-1

Um outro livro que também aborda o tema, embora mais "en passant" é:

https://www.amazon.com/Flash-Boys-Wall-Street-Revolt/dp/0393351599/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=1688554095&sr=8-1


As Dark Pools são reservas de liquidez negociadas internamente nas corretoras, mas invisíveis nos Order Books públicos. As práticas descritas acima se referem ao mercado norte-americano, mas, supondo que sejam lucrativas, não sei por que não seriam praticadas no mercado local.

Uma outra opção, como vc mesmo mencionou, é o RLP. Considerando que no RLP a corretora é a contraparte dos contratos negociados, talvez essas transações aconteçam numa Dark Pool. E talvez não sejam publicadas para o mercado. Mesmo que o sejam, a posteriori, elas não fariam parte do fluxo de ticks de tempo real das outras corretoras.

 
Daniel Paixão #:

Muito obrigado pelo retorno @Filipe_Almeida!


Mesmo quando realizamos o procedimento explicado no link abaixo?
https://www.mql5.com/pt/forum/388772/page2#comment_27844101


Isso depende da corretora ou vai ser assim em todas? Alguma sugestão para resolver o problema de ter um resultado em tempo real e depois rodar o mesmo algoritmo no backtest e ter outro reultado?

A viabilidade do processo descrito no link que vc refere depende da origem usada no passo denominado "Colete os ticks".

O histórico de ticks mantido no servidor do MetaTrader abrange no máximo os contratos vigentes. Para além disso, o que é guardado é o histórico de barras de 1 minuto. Quando ticks são solicitados para um período além do contrato vigente, as barras de 1 minuto são usadas como base para gerar ticks por um processo descrito em

https://www.mql5.com/en/articles/75

Ou seja, se ticks reais são necessários, mesmo para usá-los num processo como o acima referido, eles precisam ser salvos regularmente e armazenados.

Um ponto importante é: ticks reais são necessários? Para algoritmos que usem escalas de minutos, provavelmente não.

The Algorithm of Ticks' Generation within the Strategy Tester of the MetaTrader 5 Terminal
The Algorithm of Ticks' Generation within the Strategy Tester of the MetaTrader 5 Terminal
  • www.mql5.com
MetaTrader 5 allows us to simulate automatic trading, within an embedded strategy tester, by using Expert Advisors and the MQL5 language. This type of simulation is called testing of Expert Advisors, and can be implemented using multithreaded optimization, as well as simultaneously on a number of instruments. In order to provide a thorough testing, a generation of ticks based on the available minute history, needs to be performed. This article provides a detailed description of the algorithm, by which the ticks are generated for the historical testing in the MetaTrader 5 client terminal.
 
Filipe_Almeida #:

A viabilidade do processo descrito no link que vc refere depende da origem usada no passo denominado "Colete os ticks".

O histórico de ticks mantido no servidor do MetaTrader abrange no máximo os contratos vigentes. Para além disso, o que é guardado é o histórico de barras de 1 minuto. Quando ticks são solicitados para um período além do contrato vigente, as barras de 1 minuto são usadas como base para gerar ticks por um processo descrito em

https://www.mql5.com/en/articles/75

Ou seja, se ticks reais são necessários, mesmo para usá-los num processo como o acima referido, eles precisam ser salvos regularmente e armazenados.

Um ponto importante é: ticks reais são necessários? Para algoritmos que usem escalas de minutos, provavelmente não.

Muito obrigado pelo retorno @Filipe_Almeida!


Toda a minha lógica é baseada em ticks, sendo assim, preciso dos ticks reais pois claramente os ticks gerados dão resultados absurdamente diferentes, geralmente muito positivos deturpando toda a análise. Acredito que seja extremamente infrutífero empenhar esforço neste caminho, realizar análises baseadas em ticks gerados sem mudar completamente a minha lógica para movimentos de 1 minuto.


Em tudo que eu li não tinha visto esta afirmação ainda: "se ticks reais são necessários, mesmo para usá-los num processo como o acima referido, eles precisam ser salvos regularmente e armazenados". Imaginei que alguma corretora nos entregasse os ticks reais em tempo real e também no backtest, estou buscando isso para não ter que partir para um caminho onde tenho que desenvolver uma solução para salvar ticks reais para poder testar EAs.

Como nem as corretoras nem a MetaQuotes oferecem um suporte suficientemente capacitado para tirar estes tipos de dúvida, tenho pesquisado aqui no fórum e na internet para ver se identifico uma corretora que nos ofereça isso. Afinal, todos os que possuem alguma lógica baseada em ticks precisam disso, caso contrário estarão perdendo seu tempo com codificação, teste e análise.

Alguém aí trabalha com alguma corretora que nos ofereça exatamente os mesmos ticks em tempo real e para o backtest? Só dá para falar que não existe se já houver testado em todas!

 
Trader_Patinhas #:
volume informado pela B3

Boa tarde @Trader_Patinhas,


Você comentou: "O volume total de flags 56, 88 e 120 no dia é muito próximo do volume total negociado no dia informado pela B3."


Você poderia nos passar o link da publicação destes dados para que façamos também esta conferência na busca por uma fonte de ticks confiável?

 
Daniel Paixão #:

Boa tarde @Trader_Patinhas,


Você comentou: "O volume total de flags 56, 88 e 120 no dia é muito próximo do volume total negociado no dia informado pela B3."


Você poderia nos passar o link da publicação destes dados para que façamos também esta conferência na busca por uma fonte de ticks confiável?

Oi Daniel.

No site da B3 vc encontra o histórico de negociação dos últimos 20 dias:

https://arquivos.b3.com.br/negocios/?lang=pt

Acredito que seja um bom referencial para apurar a qualidade do "tick data" das corretoras. O problema é que esses dados não tem os "flags" (BUY, SELL, etc.).

Uma segunda observação: vc consegue recuperar o histórico de ticks REAIS das corretoras por meio da função copy_ticks(). Esses ticks estão sujeitos a esses problemas bizarros de cada corretora, mas são ticks teoricamente REAIS (possivelmente os mesmos que o servidor MT5 da corretora emitiu em tempo real), e não ticks "simulados" com base em barras de 1 minutos que o testador de estrategias do MT5 usa no backtest.

Se vc faz operações de prazo curtíssimo ao ponto de o seu algoritmo de trading ser sensível aos ticks reais, te recomendo esquecer o testador de estratégias do MT5 e construir o seu próprio testador com base nos ticks reais.

Uma última observação:

Antigamente (até final de 2019) a B3 disponibilizava em um servidor FTP da BMF um longo histórico de negócios, com todo o detalhamento, inclusive as corretoras envolvidas em cada contraparte, além de um histórico completo do Book, ordem a ordem, incluindo alterações e cancelamentos de ordens. Infelizmente em 2020 eles desativaram esse servidor FTP e, quando entrei em contato com o setor de marketing data da B3 eles me informaram que esses dados passariam a ser comercializados por empresas parceiras. Os dados de tick eu baixo gratuitamente de diversas corretoras, usando a função copy_ticks() mesmo. Esses dados têm imperfeições, mas como eu uso deep learning, se a grande maioria dos dados estiverem corretos já funciona pra mim. Já os dados de Book eu não tenho encontrado em nenhuma "empresa parceira" da B3, mesmo me dispondo a pagar por eles.

Recentemente abri uma thread sobre isso, mas ninguém até hoje me respondeu:
Histórico de Book de Ofertas B3 - Geral - Fórum de negociação algorítmica MQL5

Histórico de Book de Ofertas B3
Histórico de Book de Ofertas B3
  • 2023.06.21
  • www.mql5.com
Bom dia, prezados amigos...
 
Trader_Patinhas #:

Oi Daniel.

No site da B3 vc encontra o histórico de negociação dos últimos 20 dias:

https://arquivos.b3.com.br/negocios/?lang=pt

Acredito que seja um bom referencial para apurar a qualidade do "tick data" das corretoras. O problema é que esses dados não tem os "flags" (BUY, SELL, etc.).

Uma segunda observação: vc consegue recuperar o histórico de ticks REAIS das corretoras por meio da função copy_ticks(). Esses ticks estão sujeitos a esses problemas bizarros de cada corretora, mas são ticks teoricamente REAIS (possivelmente os mesmos que o servidor MT5 da corretora emitiu em tempo real), e não ticks "simulados" com base em barras de 1 minutos que o testador de estrategias do MT5 usa no backtest.

Se vc faz operações de prazo curtíssimo ao ponto de o seu algoritmo de trading ser sensível aos ticks reais, te recomendo esquecer o testador de estratégias do MT5 e construir o seu próprio testador com base nos ticks reais.

Uma última observação:

Antigamente (até final de 2019) a B3 disponibilizava em um servidor FTP da BMF um longo histórico de negócios, com todo o detalhamento, inclusive as corretoras envolvidas em cada contraparte, além de um histórico completo do Book, ordem a ordem, incluindo alterações e cancelamentos de ordens. Infelizmente em 2020 eles desativaram esse servidor FTP e, quando entrei em contato com o setor de marketing data da B3 eles me informaram que esses dados passariam a ser comercializados por empresas parceiras. Os dados de tick eu baixo gratuitamente de diversas corretoras, usando a função copy_ticks() mesmo. Esses dados têm imperfeições, mas como eu uso deep learning, se a grande maioria dos dados estiverem corretos já funciona pra mim. Já os dados de Book eu não tenho encontrado em nenhuma "empresa parceira" da B3, mesmo me dispondo a pagar por eles.

Recentemente abri uma thread sobre isso, mas ninguém até hoje me respondeu:
Histórico de Book de Ofertas B3 - Geral - Fórum de negociação algorítmica MQL5


Muito obrigado pelo retorno @Trader_Patinhas,


   Já havia lido a sua thread mas infelizmente não tenho a resposta para o seu questionamento.

 
Trader_Patinhas #:

Oi Daniel.

No site da B3 vc encontra o histórico de negociação dos últimos 20 dias:

https://arquivos.b3.com.br/negocios/?lang=pt

Acredito que seja um bom referencial para apurar a qualidade do "tick data" das corretoras. O problema é que esses dados não tem os "flags" (BUY, SELL, etc.).

Uma segunda observação: vc consegue recuperar o histórico de ticks REAIS das corretoras por meio da função copy_ticks(). Esses ticks estão sujeitos a esses problemas bizarros de cada corretora, mas são ticks teoricamente REAIS (possivelmente os mesmos que o servidor MT5 da corretora emitiu em tempo real), e não ticks "simulados" com base em barras de 1 minutos que o testador de estrategias do MT5 usa no backtest.

Se vc faz operações de prazo curtíssimo ao ponto de o seu algoritmo de trading ser sensível aos ticks reais, te recomendo esquecer o testador de estratégias do MT5 e construir o seu próprio testador com base nos ticks reais.

Uma última observação:

Antigamente (até final de 2019) a B3 disponibilizava em um servidor FTP da BMF um longo histórico de negócios, com todo o detalhamento, inclusive as corretoras envolvidas em cada contraparte, além de um histórico completo do Book, ordem a ordem, incluindo alterações e cancelamentos de ordens. Infelizmente em 2020 eles desativaram esse servidor FTP e, quando entrei em contato com o setor de marketing data da B3 eles me informaram que esses dados passariam a ser comercializados por empresas parceiras. Os dados de tick eu baixo gratuitamente de diversas corretoras, usando a função copy_ticks() mesmo. Esses dados têm imperfeições, mas como eu uso deep learning, se a grande maioria dos dados estiverem corretos já funciona pra mim. Já os dados de Book eu não tenho encontrado em nenhuma "empresa parceira" da B3, mesmo me dispondo a pagar por eles.

Recentemente abri uma thread sobre isso, mas ninguém até hoje me respondeu:
Histórico de Book de Ofertas B3 - Geral - Fórum de negociação algorítmica MQL5

Ola, você consultou esses distribuidores? Será que nenhum tem isso ?

https://www.b3.com.br/pt_br/market-data-e-indices/servicos-de-dados/market-data/distribuidores/perguntas-frequentes/

https://www.b3.com.br/pt_br/market-data-e-indices/servicos-de-dados/market-data/distribuidores/distribuidores-licenciados/

Distribuidores | B3
  • www.b3.com.br
S_DisLic_Des
Razão: