OI em atraso (interesse aberto)

 

Por que em mudança terminal de interesse aberto:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vive sua vida em relação à fita?
Válido OnBookEvent(const string& symbol)

Até onde eu entendo o mercado futuro, as transações na fita não podem causar mudanças no OI. Mas por que o OI muda por si só sem nenhuma transação?
Isto já foi visto antes:
https://www.mql5.com/ru/forum/165157/page2#comment_3989978

OI no terminal é atualizado com que periodicidade, do que depende?
Como sincronizar as mudanças de OI com as trocas na alimentação? Quero obter uma alimentação completa com OI.

Открытый Интерес на истории
Открытый Интерес на истории
  • 2016.12.30
  • www.mql5.com
Здравствуйте, уважаемая администрация...
 
pequeno Expert Advisor que marca eventos no log:
1. novo tick
2. novo acordo no feed
3. mudança de OI (com precisão de 1ms)
mostra que as mudanças de OI acontecem por si só sem carrapatos e sem acordos no feed.
long bool_event_time_last = 0;

int OnInit() {
   EventSetMillisecondTimer(1);
   MarketBookAdd(_Symbol);
   
   MqlTick tick[];
   CopyTicks(_Symbol,tick,COPY_TICKS_ALL,0,1);
   bool_event_time_last = tick[0].time_msc;

   return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason) {
   EventKillTimer();
}

void OnTick() {
   Print("1. tick");
}

void OnTimer() {
   static double open_last = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST);
   double open_current = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST);
   if(NormalizeDouble(open_current,0) != NormalizeDouble(open_last,0)) {
      open_last = open_current;
      Print("3. oi change");
   }
}

void OnBookEvent (const string& symbol) {
   MqlTick tick[];
   int ticks = CopyTicks(_Symbol,tick,COPY_TICKS_ALL,0,100);
   if(ticks<20) return;
   for(int i=ticks-1;i>=0;i--) {
      if(tick[i].time_msc <= bool_event_time_last) break;
      if((int)tick[0].flags<32) continue;
      Print("2. book deal");
   }
   bool_event_time_last = tick[ticks-1].time_msc;
}
Arquivos anexados:
 
Alena Lysenkova:
Uma pequena EA que marca eventos no log:
1. novo tick
2. novo acordo no feed
3. mudança de OI (com precisão de 1ms)
Mostra que as mudanças de OI acontecem por si mesmas sem carrapatos e sem acordos no feed.

Você mesmo escreveu o código?

 
Alena Lysenkova:

Por que em mudança terminal de interesse aberto:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vive sua vida em relação à fita?
Válido OnBookEvent(const string& symbol)

É assim que é projetado.

Dificilmente é possível sincronizar, não há informações suficientes.

 
Alena Lysenkova:

Por que em mudança terminal de interesse aberto:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vive sua vida em relação à fita?
Válido OnBookEvent(const string& symbol)

Até onde eu entendo o mercado futuro, as transações na fita não podem causar mudanças no OI. Mas por que o OI muda por si só sem nenhuma transação?
Isto já foi visto antes:
https://www.mql5.com/ru/forum/165157/page2#comment_3989978

OI no terminal é atualizado com que periodicidade, do que depende?
Como sincronizar as mudanças de OI com as trocas na alimentação? Quero ter uma alimentação completa com OI.

Se você quiser um livro de pedidos completo, conecte-se através do Plaza. É improvável que o MT5 seja redesenhado para fluxos de estoque.

Outra questão é se você precisa dessa informação completa.

 

@Andrey Khatimlianskii @Dmitriy Skub

Talvez não haja sincronização no terminal, mas com o código que

apresentado, há algo a falar?

Andrey Khatimlianskii
Andrey Khatimlianskii
  • www.mql5.com
Профиль трейдера
 
prostotrader:

@Andrey Khatimlianskii @Dmitriy Skub

Talvez não haja sincronização no terminal, mas com o código que

apresentado, há algo a falar?

Michael, eu não olhei para o código))
 
prostotrader:

@Andrey Khatimlianskii @Dmitriy Skub

Talvez não haja sincronização no terminal, mas com o código que

É possível dizer alguma coisa?

O que exatamente sobre este código você acha insatisfatório?

 
Alena Lysenkova:

O que exatamente está errado com o código?

Tudo de...

CopyTicks(_Symbol,tick,COPY_TICKS_ALL,0,1);

Você não precisa de nenhum temporizador.

É uma obra-prima.

if(ticks<20) return;

e assim por diante...

 
prostotrader:

Tudo de.

Não há nenhuma necessidade de um temporizador.

É uma obra-prima.

e assim por diante...

É muito profissional dar uma olhada no código que você construiu de joelhos em alguns minutos para mostrar a essência do assunto.

O timer é necessário lá, leia o tópico cuidadosamente

 
Alena Lysenkova:

É muito profissional dar uma olhada em código que você construiu sozinho em alguns minutos para mostrar a essência da questão.

Precisa de um temporizador, leia cuidadosamente a rosca.

O temporizador NÃO é necessário.

O OnBookEvent não é acionado apenas quando uma transação acontece.

e você DEVE filtrar o símbolo nesta função

void OnBookEvent (const string& symbol)
{
  if(symbol == Symbol())
  {
    
.. 
  }
}

Esta função "preenche" tudo o que está na análise do mercado.

Por que postar "joelhos descalços"?

Adicionado

"Muito profissional" para aceitar o trabalho

100.00 USD
Нужен софт для отслеживания ленты сделок по каждому тику с указанием изменения ОИ (аналог Time&Sales в платформе Volfix)
E não saber como fazê-lo.