Obrigado por este artigo.
Um pouco sobre o erro:
Все программы, работающие по данным стакана, по форме будут являться советниками, ведь обработчик события BookEvent есть только в советниках. Правда, можно сделать связку "советник-индикатор", где истинный индикатор сможет принимать данные от советника и обрабатывать состояние стакана.
Isso não é verdade, o indicador também pode manipular OnBookEvent.
angevoyageur:
Um pouco sobre o erro:
Isso não é verdade, o indicador também pode manipular OnBookEvent.
Alain, obrigado pela mensagem. Sim, é isso mesmo, estou errado. Ele também funciona em indicadores... Eu me baseei na lista de manipuladores ao criar um indicador, entre os quais não há OnBookEvent().
E o mais importante é o que diz a documentação:
Alain, obrigado pela mensagem. Sim, é isso mesmo, estou errado. Ele também funciona em indicadores... Eu me baseei na lista de manipuladores ao criar um indicador, entre os quais não há OnBookEvent().
E o mais importante é o que diz a documentação:
Certo, a documentação precisa ser corrigida. Você está escrevendo para o ServiceDesk sobre isso?
Apenas para fins informativos, há um pequeno erro neste artigo:
All programs working with Depth of Market data will have a form of an Expert Advisor, as only Expert Advisors feature the event handler of BookEvent. There is a possibility, however, to write an "Expert-Indicator" pair , where the indicator can receive data from the EA and process the Depth of Market state.
Não é verdade, os indicadores também podem processar BookEvent. Esse erro é baseado em um erro de documentação e deve ser corrigido em breve. O autor do artigo e o ServiceDesk foram contatados.
Boa tarde, obrigado pelo artigo, muito útil!
uma pergunta, digamos que eu processe o evento BookEvent, e meu manipulador exclua, coloque pedidos, que por sua vez iniciarão novamente esse evento..... então, no momento em que o prazo para colocar (excluir pedidos) e um novo evento BookEvent for formado novamente, meu procedimento inicial será interrompido? porque notei que a execução do código não chega ao fim.... nem tudo é executado... Espero ter deixado a ideia clara ))
Boa tarde, obrigado pelo artigo, muito útil!
uma pergunta, digamos que eu processe o evento BookEvent, e meu manipulador exclua, coloque pedidos, que por sua vez iniciarão novamente esse evento..... então, no momento em que o prazo para colocar (excluir pedidos) e um novo evento BookEvent for formado novamente, meu procedimento inicial será interrompido? porque notei que a execução do código não chega ao fim.... nem tudo é executado... Espero ter sido claro))
Obrigado por sua opinião!
Não, enquanto um evento está sendo processado, o controle do programa não é transferido automaticamente para outro manipulador quando um novo evento é gerado... Você pode verificar isso com a função Print() (e é melhor adicionar uma pausa Sleep()).
Existe um conceito chamado "fila de eventos".
De acordo com a documentação:
O programa recebe eventos somente do gráfico no qual está sendo executado. Todos os eventos são processados um após o outro na ordem de recebimento. Se já houver um evento NewTick na fila ou se esse evento estiver em estado de processamento, o novo evento NewTick não será colocado na fila do mql5-program. Da mesma forma, se já houver um evento ChartEvent na fila do mql5-program ou se esse evento estiver sendo processado, um novo evento desse tipo não será colocado na fila. Os eventos de timer são processados de acordo com o mesmo esquema: se um evento de timer estiver na fila ou já tiver sido processado, um novo evento de timer não será colocado na fila.
As filas de eventos têm um tamanho limitado, mas suficiente, de modo que o estouro da fila é improvável em um programa escrito corretamente. Se a fila estourar, os novos eventos serão descartados sem serem enfileirados.
As filas de eventos têm um tamanho limitado, mas suficiente, de modo que o estouro da fila é improvável em um programa escrito corretamente. Quando a fila transborda, os novos eventos são descartados sem serem enfileirados.
portanto, meus temores não são infundados, afinal)) Escrevi um spreader para futuros de usd\rub para manter os melhores preços na pilha o tempo todo.... Então, com certeza haverá um transbordamento da fila, porque a aposta é atualizada muitas vezes por segundo, e isso sem o fato de eu também colocar algo lá, excluir... e comigo definitivamente não será no time..... e isso é apenas uma demonstração... e no mercado real há uma aposta louca))
obrigado por direcionar meus pensamentos na direção certa)
Boa tarde. Artigo muito informativo. Tenho a seguinte pergunta.
Há uma tarefa de filtragem de negócios executados em um instrumento de acordo com o tipo de ordens com as quais foram executados (mercado/limitada).
Como posso vincular os eventos OnBookEvent e OnTick para resolver essa tarefa, ou seja, como posso determinar quais tipos de ordens estavam envolvidos na transação? Pelo que entendi, essa tarefa não pode ser resolvida somente por meio do OnBookEvent.
Rubick:
...Como vincular os eventos OnBookEvent e OnTick para resolver esse problema, ou seja, como determinar quais tipos de ordens estavam envolvidos na transação? Pelo que sei, essa tarefa não pode ser resolvida apenas por meio do OnBookEvent.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Guia Prático MQL5: Processamento do Evento BookEvent foi publicado:
Como é bem conhecido, o terminal de negociação MetaTrader 5 é uma plataforma de multi-mercado, que facilita a negociação em Forex, mercados de ações, futuros e CFD´s. De acordo com as estatísticas da seção Freelance, o número de traders que negociam outros mercados além de Forex está crescendo.
Neste artigo eu gostaria de apresentar aos programadores iniciantes em MQL5 o manuseio do BookEvent. Este evento está conectado com a Profundidade do Mercado - um instrumento para negociação de ativos e seus derivativos. Os traders de forex, no entanto, podem achar útil a Profundidade do Mercado também. Nas contas ECN, os fornecedores de liquidez fornecem os dados sobre as ordens, apenas dentro de seu modelo de agregação. Estas contas estão se tornando mais populares.
1. BookEvent
De acordo com a Documentação, Este evento é gerado quando a situação da Profundidade do Mercado se altera. Vamos concordar que o BookEvent é o evento da Profundidade do Mercado
A Profundidade do Mercado é um array de ordens, que diferem na direção (compra e venda), preço e volume. Os preços aa Profundidade do Mercado são próximos aos do mercado e, portanto, são considerados como o melhor.
Fig.1 Profundidade do Mercado no MetaTrader 5
No MetaTrader 5 o "book de ofertas" é chamado de "Profundidade do Mercado" (Fig.1). Informações detalhadas sobre a Profundidade do Mercado podem ser encontradas na Guia do Usuário do Terminal Cliente.
Autor: Dennis Kirichenko