Capturando eventos no livro de ofertas (DOM) através do MetaTrader - página 2

 
rodrixl:

ressucitando o tópico rs

 

Existe alguma forma de capturar OnBookEvent() nos testes? ou apenas rodando em um terminal? estou implementando uma estratégia baseada em book para operar "ativos de baixa volatilidade" (micos) mas ta complicado de testar rs

Olá Rodrigo, até onde me consta, não é possível fazer backtests com o DoM. Só mesmo rodando ele num terminal no modo "live".

Abraços,
Malacarne 

 

A propósito Rodrigo, este tópico realmente estava meio "esquecido"... que bom que você o "ressuscitou"...

Vamos ver se o pessoal volta a ter interesse no tópico, pois nossas "pesquisas" estão ainda só começando... estratégias baseadas em DoM são muito legais, conheço algumas, se precisar posso contribuir com alguma coisa.

Abraços,
Malacarne 

 

Olá Rodrigo e Malacarne, realmente não conseguimos utilizar o DoM diretamente no provador de estratégias, mas uma possibilidade seria criar uma solução de contorno.

Quando o livro de ofertas entrou no MT5 vi dois problemas básicos: a impossibilidade de backtesting (como consultado) e a falta de corretoras provendo bons dados para testes. Além disso, existe um terceiro que vale para qualquer plataforma, que é o fato de que muita informação especulativa no livro é hoje colocada e removida por robôs.

Vejo que uma solução de contorno seria coletar todos os dados de uma forma que pudessem ser utilizados pelo EA durante o backtesting, pensei numa arquitetura inicial para isso no passado mas não tive tempo para evoluir no assunto.

 

Obrigado pelos retornos!

Mas concordo com o figurelli no que diz respeito aos ruidos nos books, por isso pensei na utilidade para operar micos, pois lá quase não tem robôs operando.

 

Malacarne: a idéia que implementei e gostaria de otimizar os parametros, é bem simples, dentro do onbookevent() eu verifico se a proporção do book de compra (com uma margem de N centavos pra cima e pra baixo) está X% maior que o de venda, acompanhado de um crescimento de Y% no volume do momento atual em relação a média dos últimos 10 períodos, isso me geraria um sinal de compra. e a venda ocorreria na inversão desse "peso do book" onde verifico uma tendencia de redução do volume médio acompanhado de um book de venda mais pesado que o de compra.

 

alguma sugestão pra trabalhar com o book de forma diferente, ou alguma critica a minha simples estratégia rs? 

 
rodrixl:

Obrigado pelos retornos!

Mas concordo com o figurelli no que diz respeito aos ruidos nos books, por isso pensei na utilidade para operar micos, pois lá quase não tem robôs operando.

em relação a média dos últimos 10 períodos.

Não entendi essa sua "média dos últimos 10 períodos"... seria como isso exatamente? 10 minutos, 10 horas, 10 dias?? Dependendo da implementação dessa "média", você vai ter que gravar dados em arquivo para poder fazer comparações no futuro, uma vez que (até onde eu saiba) praticamente NENHUM sistema grava dados históricos de book... 

 
Malacarne:

Não entendi essa sua "média dos últimos 10 períodos"... seria como isso exatamente? 10 minutos, 10 horas, 10 dias?? Dependendo da implementação dessa "média", você vai ter que gravar dados em arquivo para poder fazer comparações no futuro, uma vez que (até onde eu saiba) praticamente NENHUM sistema grava dados históricos de book... 

acho que não ficou muito claro, são os 10 ultimos períodos de volume financeiro mesmo, nesse ponto nada a ver com o book..

a periodicidade que pretendia testar qual periodo de tempo me daria uma resposta melhor, 1minuto, 5 minutos, 15minutos ou 1h, isso não sei responder sem testar mas acredito que um período menor que 1h seria mais interessante.

 
rodrixl:

acho que não ficou muito claro, são os 10 ultimos períodos de volume financeiro mesmo, nesse ponto nada a ver com o book..

a periodicidade que pretendia testar qual periodo de tempo me daria uma resposta melhor, 1minuto, 5 minutos, 15minutos ou 1h, isso não sei responder sem testar mas acredito que um período menor que 1h seria mais interessante.

Oi Rodrigo, a ideia de comparar a tendência de volume dos últimos períodos com a expectativa de volume do livro é boa, o problema é que muito do volume existente no livro não é executado na prática, sendo rapidamente removido por robôs em alta frequência.

Não quero te desanimar, até porque testar é sempre válido, mas para uma estratégia assim sobreviver acredito que teria que ter um filtro, separando o que realmente do livro é confiável ou não, algo que não é nada fácil. 

 
rodrixl:

acho que não ficou muito claro, são os 10 ultimos períodos de volume financeiro mesmo, nesse ponto nada a ver com o book..

a periodicidade que pretendia testar qual periodo de tempo me daria uma resposta melhor, 1minuto, 5 minutos, 15minutos ou 1h, isso não sei responder sem testar mas acredito que um período menor que 1h seria mais interessante.

Olá Rodrigo, utilizar estratégias baseadas em book já é uma "arte" em si... Utilizar essas estratégias para ativos de baixa liquidez pode ser razoavelmente "impreciso", ainda mais quando estamos falando dos famosos "micos".

Na minha experiência com micos, o que percebi é que a maioria das "disparadas" começa da mesma forma: um investidor "capitaneia" (se você preferir, o cara "arquiteta") a disparada comprando antes uma boa quantidade de ações e depois, através de fóruns na internet, ele sai espalhando notícias fictícias sobre o mico (apenas algumas raras exceções são verdadeiras). Com a notícia espalhada, algum punhado de "miqueiros" também começa a comprar as ações até que, por fim, os "late buyers" causam uma euforia no papel, que leva à derrocada do preço alguns dias depois.

Logo, acredito que a única maneira que você possa usar OnBookEvent em micos é simplesmente "contando" a quantidade de eventos no book e comparando com o volume e número de negócios históricos. Algo como:

//--- global
uint bookEvent;

//---
void OnBookEvent(const string& symbol)
  {
   bookEvent++;
  }

O intuito aqui é simplesmente pegar um "aumento significativo" da atividade do book de um mico, algo que costuma anteceder as disparadas, até onde me consta.

Abraços,
Malacarne 

 

Malacarne: 
 
Olá Rodrigo, utilizar estratégias baseadas em book já é uma "arte" em si... Utilizar essas estratégias para ativos de baixa liquidez pode ser razoavelmente "impreciso", ainda mais quando estamos falando dos famosos "micos".

Na minha experiência com micos, o que percebi é que a maioria das "disparadas" começa da mesma forma: um investidor "capitaneia" (se você preferir, o cara "arquiteta") a disparada comprando antes uma boa quantidade de ações e depois, através de fóruns na internet, ele sai espalhando notícias fictícias sobre o mico (apenas algumas raras exceções são verdadeiras). Com a notícia espalhada, algum punhado de "miqueiros" também começa a comprar as ações até que, por fim, os "late buyers" causam uma euforia no papel, que leva à derrocada do preço alguns dias depois.

Logo, acredito que a única maneira que você possa usar OnBookEvent em micos é simplesmente "contando" a quantidade de eventos no book e comparando com o volume e número de negócios históricos. Algo como:

O intuito aqui é simplesmente pegar um "aumento significativo" da atividade do book de um mico, algo que costuma anteceder as disparadas, até onde me consta.

Abraços,
Malacarne 

 

Figurelli: Oi Rodrigo, a ideia de comparar a tendência de volume dos últimos períodos com a expectativa de volume do livro é boa, o problema é que muito do volume existente no livro não é executado na prática, sendo rapidamente removido por robôs em alta frequência.

Não quero te desanimar, até porque testar é sempre válido, mas para uma estratégia assim sobreviver acredito que teria que ter um filtro, separando o que realmente do livro é confiável ou não, algo que não é nada fácil. 

 

 

Primeiramente obrigado pelos retornos! o forum continua top :)

 

Malacarne: Sobre os micos, compartilho exatamente a mesma percepção sobre os "saltos" dos micos, porém percebo que quando se inicia a corrida de alta, o volume de ordens de compra fica disparado em relação ao de venda, possivelmente até de propósito, criando "paredes" que dão confiança pro miqueiro comprar, minha idéia é capturar isso.

 Acredita que o monitoramento do aumento da atividade do book seja mais representativo do que o peso do book na compra/venda?


Figurelli: Entendo perfeitamente seu argumento, é totalmente válido, mas acredito que nos micos praticamente não existe atividade de robôs, estou falando de mico mesmo, volumes ínfimos, onde só dá movimentação no book em época de pulos mesmo. Ainda nesses papéis acha arriscado não considerar as ordens fantasmas?

 
rodrixl:

 

Primeiramente obrigado pelos retornos! o forum continua top :)

 

Malacarne: Sobre os micos, compartilho exatamente a mesma percepção sobre os "saltos" dos micos, porém percebo que quando se inicia a corrida de alta, o volume de ordens de compra fica disparado em relação ao de venda, possivelmente até de propósito, criando "paredes" que dão confiança pro miqueiro comprar, minha idéia é capturar isso.

 Acredita que o monitoramento do aumento da atividade do book seja mais representativo do que o peso do book na compra/venda?


Figurelli: Entendo perfeitamente seu argumento, é totalmente válido, mas acredito que nos micos praticamente não existe atividade de robôs, estou falando de mico mesmo, volumes ínfimos, onde só dá movimentação no book em época de pulos mesmo. Ainda nesses papéis acha arriscado não considerar as ordens fantasmas?

Realmente acho muito difícil que robôs rodem em micos... Com relação à "parede" nos books, isso dá pra ser facilmente capturado pelo MetaTrader... O que você tentou até agora? Mostre-nos o que já tentou que podemos ver de que forma te ajudamos.

Abraços, 
Malacarne

Razão: