滞后的OI(未平仓利息)。

 

为什么在终端变化的公开利益:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
相对于磁带而言,它的生命力是什么?
空白的OnBookEvent(const string& symbol)

就我对期货市场的理解,带状的交易可能不会导致OI的变化。但为什么在没有任何交易的情况下,OI会自己变化?
这在以前已经看到过:
https://www.mql5.com/ru/forum/165157/page2#comment_3989978

终端的OI是以什么周期更新的,它取决于什么?
我如何将OI变化与饲料中的交易同步?我想获得一个完整的饲料与OI。

Открытый Интерес на истории
Открытый Интерес на истории
  • 2016.12.30
  • www.mql5.com
Здравствуйте, уважаемая администрация...
 
小型专家顾问在日志中标记事件:
1.新的tick
2.饲料中的新交易
3.OI的变化(精确度为1ms)
它显示OI的变化是自己发生的,没有tick,也没有饲料中的交易。
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;
}
附加的文件:
 
Alena Lysenkova:
一个在日志中标记事件的小EA: 1.新的tick 2.饲料中的新交易 3.OI的变化(精确度为1ms) 它显示OI变化在没有tick和饲料中没有交易的情况下自行发生。




自己 写的代码吗?

 
Alena Lysenkova:

为什么在终端变化的公开利益:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
相对于磁带而言,它的生命力是什么?
空白的OnBookEvent(const string& symbol)

这就是它的设计方式。

几乎不可能同步,没有足够的信息。

 
Alena Lysenkova:

为什么在终端变化的公开利益:
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
相对于磁带而言,它的生命力是什么?
空白的OnBookEvent(const string& symbol)

就我对期货市场的理解,带状的交易可能不会导致OI的变化。但为什么在没有任何交易的情况下,OI会自己变化?
这在以前已经看到过:
https://www.mql5.com/ru/forum/165157/page2#comment_3989978

终端的OI是以什么周期更新的,它取决于什么?
我如何将OI变化与饲料中的交易同步?我希望有一个成熟的饲料与OI。

如果你想要一个完整的订单记录,请通过广场连接。MT5不太可能为股票流动重新设计。

另一个问题是你是否需要这些完整的信息。

 

@Andrey Khatimlianskii @Dmitriy Skub

也许在终端中没有同步,但随着代码中的

提出,有什么要谈的吗?

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

@Andrey Khatimlianskii @Dmitriy Skub

也许在终端中没有同步,但随着代码中的

提出,有什么要谈的吗?

迈克尔,我没有看代码))。
 
prostotrader:

@Andrey Khatimlianskii @Dmitriy Skub

也许在终端中没有同步,但随着代码中的

有可能谈及任何事情吗?

你觉得这个代码到底有什么不满意的地方?

 
Alena Lysenkova:

代码究竟出了什么问题?

一切从...

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

你根本不需要一个计时器。

这是个杰作。

if(ticks<20) return;

等等...

 
prostotrader:

一切从。

根本不需要定时器。

这是个杰作。

等等...

在几分钟内把你跪着建的代码戳破,以显示事情的本质,这是非常专业的。

那里需要定时器,请仔细阅读主题

 
Alena Lysenkova:

为了显示问题的本质,在几分钟内就在你自己建立的代码中戳来戳去,这是非常专业的。

它需要一个定时器,请仔细阅读该主题。

计时器是不需要的。

OnBookEvent不仅在交易发生时被触发。

而且你必须在这个函数中过滤符号

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

这个功能 "填补 "了市场审查中的所有内容。

为什么发布 "裸膝"?

添加

"非常专业 "地接受工作

100.00 USD
Нужен софт для отслеживания ленты сделок по каждому тику с указанием изменения ОИ (аналог Time&Sales в платформе Volfix)
而不知道如何去做。
原因: