Tiki em tempo real - página 6

 
Andrey Khatimlianskii:

Substitua OnBookEvent em seu código por OnTick, e compare o resultado.

Você não pode comparar resultados :)

Você precisa executar os dois EAs ao mesmo tempo para comparar os resultados.

Mas eu já sei que será a mesma coisa, MAS

mas se eu executar OnTick(), às vezes haverá um atraso nos resultados,

ou seja, não em tempo real.

 
prostotrader:

Você não pode comparar resultados :)

Você tem que executar ambos os EAs para comparar os resultados.

Mas eu já sei que será a mesma coisa, MAS

somente se for OnTick(), haverá um atraso nos resultados,

ou seja, não em tempo real.

Não haverá um atraso. Pelo contrário, se você subscrever muitos instrumentos para atualizar a pilha, OnTick pode trabalhar mais rapidamente. Não seja preguiçoso para comparar.

 
Andrey Khatimlianskii:

Não haverá atraso. Pelo contrário, se você subscrever as atualizações de estoque em muitos instrumentos, a OnTick pode trabalhar mais rapidamente. Não seja preguiçoso demais para comparar.

E por que não subscrever todas as apostas que são possíveis?

Você poderia pensar noutra coisa.

Em uma única ferramenta com uma única assinatura tick, OnBookEvent() é acionado com mais freqüência do que OnTick().

2020.01.23 16:56:53.226	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.226	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.712	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.712	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.930	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.996	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.996	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.016	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.280	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.392	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!

Chega um novo pacote de carrapatos - OnBookEvent() é acionado.

Se você não gosta da minha versão, escreva a sua.

A propósito, o resultado é maior, com 84 copos assinados no real!

Adicionado

Aqui está mais

//+------------------------------------------------------------------+
//|                                                  Test_freeze.mq5 |
//|                                     Copyright 2018, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
bool is_book;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
    //int fr_level = int(SymbolInfoInteger(Symbol(), SYMBOL_TRADE_FREEZE_LEVEL));
   // Print(__FUNCTION__, ": ", Symbol(), " Freeze level is ", fr_level);
   is_book = MarketBookAdd(Symbol());
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  if(is_book == true) MarketBookRelease(Symbol());
}
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnTick()
{
  Print(__FUNCTION__, " Tick is done!");
}
//---
void OnBookEvent(const string &symbol)
{
  if(Symbol() == symbol)
  {
    Print(__FUNCTION__, " Tick is done!");
  }
}


2020.01.30 19:31:11.112 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.113 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.132 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.192 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.199 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.219 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.249 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.261 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.309 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.323 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.414 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.433 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.539 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.667 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.703 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.789 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.802 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.809 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.821 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.949 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.950 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.049 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.122 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.201 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.292 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:12.293 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.314 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:12.315 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.336 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.350 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.372 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.412 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.433 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.491 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.577 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.740 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.799 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.862 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.992 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!

Adicionado

E vamos dar o dia por terminado!

Você só tem fantasias e suposições, e

Tenho 7 anos de experiência na escrita de robôs e negociação bem sucedida em FORTS +

Eu tenho um código de trabalho concreto.

Как заказать торгового робота на MQL5 и MQL4
Как заказать торгового робота на MQL5 и MQL4
  • www.mql5.com
Главным преимуществом торговых терминалов MetaTrader является возможность создания автоматических торговых систем, способных совершать торговые операции без вмешательства трейдера, что позволяет исключить влияние психологии на результаты торговли. Для этого нужно сформулировать торговую стратегию и реализовать ее в виде программы на языке MQL...
 

Havia um erro no código.

Postado com correções na página 5

https://www.mql5.com/ru/forum/331060/page5#comment_14783678

Тики в реальном времени
Тики в реальном времени
  • 2020.01.30
  • www.mql5.com
Всем доброго времени суток. Появилась необходимость протестировать торговый алгоритм на реальных тиках брокера "Открытие...
 
prostotrader:

Por que não se inscrever em todos os tumblers que são possíveis?

Você pode pensar em algo mais.

Em uma ferramenta com uma única assinatura de vidro, o OnBookEvent() é acionado com mais freqüência que o OnTick()

Que diferença faz quantos eventos OnBookEvent entram? Você afirmou que quando receber carrapatos, isso acontecerá mais cedo do que a OnTick. E eu sugeri verificar isto, para emitir o tempo de recebimento de um tick ali e ali (só que não na mesma EA).


prostotrader:

E vamos terminar aí!

Você só tem fantasias e suposições, e

E eu tenho 7 anos de experiência na escrita de robôs e negociação bem sucedida em FORTS +

Eu tenho um código de trabalho específico.

Você tem a desfaçatez que reverbera em todas as suas mensagens. Por que você decidiu que a FORTS pode trabalhar somente com o OnBookEvent - só você sabe.

Mas respeito ao código. Quando eu encontrar tempo, postarei o meu. Esta não é uma tarefa prioritária.

 
Andrey Khatimlianskii:

Que diferença faz quantos eventos OnBookEvent chegam? Você afirmou que quando um carrapato é recebido nele, ele acontecerá mais cedo do que no OnTick. E eu sugeri que você o verificasse, que emitisse o tempo de recebimento de um tick ali e ali (só que não na mesma EA).


Você tem uma desfaçatez que reverbera através de cada posto. Por que você decidiu que a FORTS pode trabalhar somente com o OnBookEvent - só você sabe.

Mas respeito ao código. Quando eu encontrar tempo, postarei o meu. Esta não é uma tarefa prioritária.

Você pode trabalhar com o que quiser!

Apresentei minha solução, com base em minha experiência trabalhando em FORTS.

Eu concordaria com você se dissesse que estava muitoconfiante no meu comportamento, no meu discurso.

Concordaria com você se eu não tivesse experiência.

2020.01.30 19:31:11.112 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.113 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.132 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.192 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.199 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.219 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.249 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.261 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.309 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.323 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.414 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.433 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.539 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.667 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.703 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.789 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.802 Test_freeze (BR-3.20,M1)        OnTick Tick is done!

Hora do primeiro OnTick()2020.01.30 19:31:11.112

Hora do segundo OnTick()2020.01.30 19:31:11.802

Ou seja, 690 ms passaram, entretanto, entre os 690 ms

OnBookEvent() foi acionado 15 vezes

Você acha que estes gatilhos não têm nada a ver com carrapatos?

Bem, leia a ajuda para OnBookEvent()

События BookEvent никогда не пропускаются и всегда ставятся в очередь, даже если в данный момент еще не закончена обработка предыдущего события BookEvent.
При этом необходимо иметь в виду, что события BookEvent доставляются сами по себе и не несут с собой состояния стакана заявок.
Это означает, что вызов MarketBookGet() из обработчика OnBookEvent() позволяет получить текущее актуальное состояние стакана на момент вызова,
а не то состояние стакана, которое вызвало отправку события BookEvent.
Для гарантированного получения всех уникальных состояний стакана функция OnBookEvent() должна быть максимально быстрой. 

Chega um novo lote de carrapatos - OnBookEvent() é garantido acionar - isto proporciona a oportunidade de obter os carrapatos em tempo real com CopyTicks().

Enquanto com OnTick() você só pode obter carrapatos da história.

Você os recebe todos e nada está faltando, mas não em tempo real.

É muito estranho que eu tenha que explicar tudo isso com tanto detalhe a alguém com muita experiência.

Mais uma vez, todos são livres para escolher os métodos de programação e comercialização que quiserem!

Adicionado

Há outro ponto importante que muitas pessoas esquecem.

Esta é a velocidade na qual a EA toma uma decisão analisando os dados de entrada.

Usando OnBookEvent() em vez de OnTick(), minha EA será mais rápida do que a sua.

 
prostotrader:

Hora do primeiro OnTick()2020.01.30 19:31:11.112

hora do segundo OnTick()2020.01.30 19:31:11.802

Ou seja, 690 ms passaram, entretanto, entre os 690 ms

OnBookEvent() foi acionado 15 vezes

Você acha que estes gatilhos não têm nada a ver com carrapatos?

Favor imprimir também os valores dos carrapatos. Você não pode ver pelo registro acima que o OnBookEvent pegou uma mudança na estrutura do MqlTick.

Colocar SellLimit fora do spread criará um evento OnBookEvent, mas não gerará uma troca comercial ou BestBid/BestAsk/BestVolume. Isto é, INFO e ÚLTIMAS fitas de seleção (CopyTicks history) não serão atualizadas.

 
fxsaber:

Imprima também os valores dos carrapatos, por favor. O registro acima não mostra que a OnBookEvent pegou a mudança da estrutura do MqlTick.

Se o SellLimit for colocado fora do spread, ele criará o evento OnBookEvent, mas não gerará uma troca comercial ou BestBid/BestAsk/BestVolume. Isto é, INFO e ÚLTIMAS fitas de seleção (CopyTicks history) não serão atualizadas.

Por que imprimi-lo?

A primeira linha da descrição do OnBookEvent() diz

Вызывается в индикаторах и экспертах при наступлении события BookEvent.
Функция предназначена для обработки изменений стакана цен (Depth of Market).
 
prostotrader:

Por que imprimi-lo?

A primeira linha da descrição do OnBookEvent() diz

Se você medir quantos eventos do BookEvent acontecem em uma hora e quantos registros no CopyTicks, você pode chegar a uma conclusão.

 
fxsaber:

Se você medir quantos eventos BookEvent ocorrem por hora e quantas entradas no CopyTicks, você pode deduzir.

Há o código acima, confira por si mesmo.

Existeum código de trabalho.

Acredito que funciona em tempo real e certamente mais rápido,

do que OnTick().

Qual é o problema? Faça isto, faça aquilo...

Você tem que postar seu código de trabalho para provar ou refutar algo!

Razão: