OI in ritardo (interesse aperto)

 

Perché nel cambiamento terminale di interesse aperto:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vive la sua vita relativa al nastro?
void OnBookEvent(const string& symbol)

Per quanto capisco il mercato dei futures, le transazioni nel nastro non possono causare il cambiamento dell'OI. Ma perché l'OI cambia da solo senza alcuna transazione?
Questo è già stato visto prima:
https://www.mql5.com/ru/forum/165157/page2#comment_3989978

OI nel terminale è aggiornato con quale periodicità, da cosa dipende?
Come faccio a sincronizzare i cambiamenti di OI con le compravendite nel feed? Voglio ottenere un feed completo con OI.

Открытый Интерес на истории
Открытый Интерес на истории
  • 2016.12.30
  • www.mql5.com
Здравствуйте, уважаемая администрация...
 
piccolo Expert Advisor che segna gli eventi nel log:
1. nuovo tick
2. nuova transazione nel feed
3. cambiamento di OI (con una precisione di 1ms)
mostra che i cambiamenti di OI avvengono da soli senza tick e senza transazioni nel 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;
}
File:
 
Alena Lysenkova:
piccolo Expert Advisor che segna gli eventi nel log:
1. nuovo tick
2. nuova transazione nel feed
3. cambiamento di OI (con una precisione di 1ms)
mostra che i cambiamenti di OI avvengono da soli senza tick e senza transazioni nel feed.

Hai scritto tu stesso il codice?

 
Alena Lysenkova:

Perché nel cambiamento terminale di interesse aperto:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vive la sua vita relativa al nastro?
void OnBookEvent(const string& symbol)

È così che è stato progettato.

Difficile da sincronizzare, non ci sono abbastanza informazioni.

 
Alena Lysenkova:

Perché nel cambiamento terminale di interesse aperto:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vive la sua vita relativa al nastro?
void OnBookEvent(const string& symbol)

Per quanto capisco il mercato dei futures, le transazioni nel nastro non possono causare il cambiamento dell'OI. Ma perché l'OI cambia da solo senza alcuna transazione?
Questo è già stato visto prima:
https://www.mql5.com/ru/forum/165157/page2#comment_3989978

OI nel terminale è aggiornato con quale periodicità, da cosa dipende?
Come faccio a sincronizzare i cambiamenti di OI con le compravendite nel feed? Voglio avere un feed completo con OI.

Se vuoi un orderlog completo, connettiti attraverso il Plaza. È improbabile che la MT5 venga riprogettata per i flussi azionari.

Un'altra domanda è se avete bisogno di queste informazioni complete.

 

@Andrey Khatimlianskii @Dmitriy Skub

Forse non c'è sincronizzazione nel terminale, ma con il codice che

presentato, c'è qualcosa di cui parlare?

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

@Andrey Khatimlianskii @Dmitriy Skub

Forse non c'è sincronizzazione nel terminale, ma con il codice che

presentato, c'è qualcosa di cui parlare?

Michael, non ho guardato il codice))
 
prostotrader:

@Andrey Khatimlianskii @Dmitriy Skub

Forse non c'è sincronizzazione nel terminale, ma con il codice che

È possibile parlare di tutto?

Che cosa esattamente di questo codice trova insoddisfacente?

 
Alena Lysenkova:

Cosa c'è esattamente di sbagliato nel codice?

Tutto da...

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

Non c'è bisogno di un timer.

È un capolavoro.

if(ticks<20) return;

e così via...

 
prostotrader:

Tutto da.

Non c'è affatto bisogno di un timer.

È un capolavoro.

e così via...

È molto professionale curiosare nel codice assemblato in un paio di minuti per mostrare l'essenza del problema.

Hai bisogno di un timer lì, leggi attentamente l'argomento

 
Alena Lysenkova:

È molto professionale curiosare nel codice che avete costruito da soli in un paio di minuti per mostrarne il succo.

Ha bisogno di un timer, leggi attentamente il thread.

Il timer NON è necessario.

L'OnBookEvent non si attiva solo quando avviene una transazione.

e si DEVE filtrare il simbolo in questa funzione

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

Questa funzione "riempie" tutto ciò che è nella revisione del mercato.

Perché postare "ginocchia nude"?

Aggiunto

"Molto professionale" per prendere il lavoro

100.00 USD
Нужен софт для отслеживания ленты сделок по каждому тику с указанием изменения ОИ (аналог Time&Sales в платформе Volfix)
E non sapere come farlo.
Motivazione: