Стакан есть или его нет?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vladimir Karputov
Модератор
174441
Vladimir Karputov  

Поправьте меня: стакана на данном символе нет?

Вот код - добавляю стакан в OnInit. В OnBookEvent пытаюсь получить хоть что-то:

//+------------------------------------------------------------------+
//|                                               TestMarketBook.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ResetLastError();
   if(!MarketBookAdd(Symbol()))
     {
      Print("ERROR!!! MarketBookAdd not adding, error ",GetLastError());
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   ResetLastError();
   if(!MarketBookRelease(Symbol()))
     {
      Print("ERROR!!! MarketBookRelease not adding, error ",GetLastError());
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
   MqlBookInfo priceArray[];
   bool getBook=MarketBookGet(Symbol(),priceArray);
   if(getBook)
     {
      int size=ArraySize(priceArray);
      Print("MarketBookInfo по ",Symbol(),", size ",size);
      for(int i=0;i<size;i++)
        {
         Print(IntegerToString(i)+":",DoubleToString(priceArray[i].price,Digits())
               +"    Volume= "+DoubleToString(priceArray[i].volume,2),
               " type = ",priceArray[i].type);
        }
     }
   else
     {
      Print("Не удалось получить содержимое стакана по символу ",Symbol());
     }
  }
//+------------------------------------------------------------------+

В итоге в журнале не выводится вообще ничего.


Если код из OnBookEvent вырезать и вставить в OnTick() то будут такие сообщения:

2018.10.19 17:01:47.825 TestMarketBook (V,M5)   MarketBookInfo по V, size 0
2018.10.19 17:01:47.832 TestMarketBook (V,M5)   MarketBookInfo по V, size 0
2018.10.19 17:01:48.775 TestMarketBook (V,M5)   MarketBookInfo по V, size 0
2018.10.19 17:01:49.225 TestMarketBook (V,M5)   MarketBookInfo по V, size 0
2018.10.19 17:01:50.592 TestMarketBook (V,M5)   MarketBookInfo по V, size 0
2018.10.19 17:01:50.906 TestMarketBook (V,M5)   MarketBookInfo по V, size 0
2018.10.19 17:01:51.663 TestMarketBook (V,M5)   MarketBookInfo по V, size 0
2018.10.19 17:01:51.877 TestMarketBook (V,M5)   MarketBookInfo по V, size 0


При этом если нет советника, то вручную можно просматривать ленту сделок:


Файлы:
TheXpert
18189
TheXpert  
Лента и стакан это две разных сущности. По идее по скрину видно что стакан не транслируется.
Vladimir Karputov
Модератор
174441
Vladimir Karputov  
TheXpert:
Лента и стакан это две разных сущности. По идее по скрину видно что стакан не транслируется.

А к ленте как к токовой доступа нет вообще? Её нужно из тиков воссоздавать?

Sergey Chalyshev
7891
Sergey Chalyshev  
Vladimir Karputov:

Поправьте меня: стакана на данном символе нет?

Вот код - добавляю стакан в OnInit. В OnBookEvent пытаюсь получить хоть что-то:

В итоге в журнале не выводится вообще ничего.


Если код из OnBookEvent вырезать и вставить в OnTick() то будут такие сообщения:


При этом если нет советника, то вручную можно просматривать ленту сделок:


Вы же знаете, это биржевой раздел.

Зачем суёте сюда дилерский фейковый стакан? У дилеров нет стакана, тем более ленты сделок.

TheXpert
18189
TheXpert  
Vladimir Karputov:

А к ленте как к токовой доступа нет вообще? Её нужно из тиков воссоздавать?

ну через тики и есть доступ. по-моему уже и в кодобазе валяется например индикатор который раздельный buy\sell объем по барам показывает
Sergey Chalyshev
7891
Sergey Chalyshev  
Vladimir Karputov:

А к ленте как к токовой доступа нет вообще? Её нужно из тиков воссоздавать?

У брокеров лента есть, ничего восстанавливать не надо, просто CopyTick.
Vladimir Karputov
Модератор
174441
Vladimir Karputov  
TheXpert:
ну через тики и есть доступ. по-моему уже и в кодобазе валяется например индикатор который раздельный buy\sell объем по барам показывает

Михаил вроде писал? Да?

Dmitriy Skub
11855
Dmitriy Skub  
Наливай!
JRandomTrader
44
JRandomTrader  
У меня события стакана отрабатывают только для символа текущего графика (_Symbol), и то подписка периодически слетает и приходится переподписываться (build 1755).
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий