OI (intérêt ouvert) en retard

 

Pourquoi dans le changement terminal de l'intérêt ouvert :
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vit sa vie par rapport à la bande ?
void OnBookEvent(const string& symbol)

D'après ce que je comprends du marché à terme, les transactions sur le ruban ne peuvent pas faire varier l'OI. Mais pourquoi l'OI change-t-il tout seul sans aucune transaction ?
Cela a déjà été vu auparavant :
https://www.mql5.com/ru/forum/165157/page2#comment_3989978

L'OI dans le terminal est mis à jour avec quelle périodicité, de quoi dépend-il ?
Comment synchroniser les changements d'OI avec les transactions dans le flux ? Je veux obtenir un flux complet avec OI.

Открытый Интерес на истории
Открытый Интерес на истории
  • 2016.12.30
  • www.mql5.com
Здравствуйте, уважаемая администрация...
 
petit conseiller expert qui marque les événements dans le journal :
1. nouveau tick
2. nouvelle transaction dans le flux
3. changement d'OI (avec une précision de 1ms)
il montre que les changements d'OI se produisent par eux-mêmes sans ticks et sans transactions dans le flux.
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;
}
Dossiers :
 
Alena Lysenkova:
Un petit EA qui marque les événements dans le journal :
1. nouveau tick
2. nouvelle transaction dans le flux
3. changement d'OI (avec une précision de 1ms)
Il montre que les changements d'OI se produisent d'eux-mêmes sans ticks et sans transactions dans le flux.

Avez-vous écrit le code vous-même?

 
Alena Lysenkova:

Pourquoi dans le changement terminal de l'intérêt ouvert :
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vit sa vie par rapport à la bande ?
void OnBookEvent(const string& symbol)

C'est comme ça que c'est conçu.

Difficile de se synchroniser, il n'y a pas assez d'informations.

 
Alena Lysenkova:

Pourquoi dans le changement terminal de l'intérêt ouvert :
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vit sa vie par rapport à la bande ?
void OnBookEvent(const string& symbol)

D'après ce que je comprends du marché à terme, les transactions sur le ruban ne peuvent pas faire varier l'OI. Mais pourquoi l'OI change-t-il tout seul sans aucune transaction ?
Cela a déjà été vu auparavant :
https://www.mql5.com/ru/forum/165157/page2#comment_3989978

L'OI dans le terminal est mis à jour avec quelle périodicité, de quoi dépend-il ?
Comment synchroniser les changements d'OI avec les transactions dans le flux ? Je veux avoir une alimentation à part entière avec OI.

Si vous voulez un carnet de commandes complet, connectez-vous via le Plaza. Il est peu probable que MT5 soit repensé pour les flux d'actions.

Une autre question est de savoir si vous avez besoin de ces informations complètes.

 

@Andrey Khatimlianskii @Dmitriy Skub

Peut-être qu'il n'y a pas de synchronisation dans le terminal, mais avec le code qui

présenté, il y a quelque chose à dire ?

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

@Andrey Khatimlianskii @Dmitriy Skub

Peut-être qu'il n'y a pas de synchronisation dans le terminal, mais avec le code qui

présenté, y a-t-il quelque chose à dire ?

Michael, je n'ai pas regardé le code))
 
prostotrader:

@Andrey Khatimlianskii @Dmitriy Skub

Peut-être qu'il n'y a pas de synchronisation dans le terminal, mais avec le code qui

Est-il possible de parler de n'importe quoi ?

En quoi exactement ce code vous paraît-il insatisfaisant ?

 
Alena Lysenkova:

Qu'est-ce qui ne va pas exactement dans ce code ?

Tout de...

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

Vous n'avez pas du tout besoin d'un minuteur.

C'est un chef-d'œuvre.

if(ticks<20) return;

et ainsi de suite...

 
prostotrader:

Tout de.

Il n'y a pas besoin de minuteur du tout.

C'est un chef-d'œuvre.

et ainsi de suite...

Il est très professionnel de fouiller dans le code que vous avez construit sur vos genoux en quelques minutes pour montrer l'essence du problème.

Le minuteur est nécessaire à cet endroit, lisez attentivement le sujet.

 
Alena Lysenkova:

Il est très professionnel de fouiller dans un code que vous avez construit vous-même en quelques minutes afin d'en montrer l'essentiel.

Il faut une minuterie, lisez attentivement le fil de discussion.

La minuterie n'est PAS nécessaire.

Le OnBookEvent n'est pas seulement déclenché lorsqu'une transaction se produit.

et vous DEVEZ filtrer le symbole dans cette fonction

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

Cette fonction "remplit" tout ce qui se trouve dans la revue de marché.

Pourquoi afficher "genoux nus" ?

Ajouté

"Très professionnel" pour accepter le travail

100.00 USD
Нужен софт для отслеживания ленты сделок по каждому тику с указанием изменения ОИ (аналог Time&Sales в платформе Volfix)
Et ne pas savoir comment le faire.
Raison: