За какой показатель не возьмись, возникает несоответствие - страница 2

 

Еще одно несоответствие. Когда сессия закрыта, стакан показывается пустым. При этом SYMBOL_SESSION_SELL_ORDERS_VOLUME выдает далеко не нулевые значения.

SYMBOL_TICKS_BOOKDEPTH равен 20. Это 20 сдвигов SYMBOL_TRADE_TICK_SIZE что-ли? Почему стакан пустой (MarketBookRelease), когда в нем явно есть заявки?


 
prostotrader:

Да, по диагонали, а Вы торопыга... :)

Quik

MT5

За вечернюю дополнительную сессию (19:00 - 23:50) показывает правильно - это хорошее уточнение, спасибо!

А вот за дневную основную сессию - облом. 

 

Несоответствия перед началом торговой сессии

 

class BOOK
{
protected:
  MqlBookInfo Book[];
  
public:
  const string symbol;
  BOOK( const string Symb = NULL ) : symbol((Symb == NULL) ? _Symbol : Symb)
  {
    ::MarketBookAdd(this.symbol);
    
    this.Refresh();    
  }
  
  ~BOOK( void )
  {
    ::MarketBookRelease(this.symbol);
  }
  
  bool Refresh( const string Symb = NULL )
  {
    return(((Symb == NULL) || (Symb == this.symbol)) ? ::MarketBookGet(this.symbol, this.Book) : false);
  }

  uint GetAmount() const
  {
    return(::ArraySize(this.Book));
  }
  
  const MqlBookInfo operator []( const uint Pos ) const
  {
    const MqlBookInfo Tmp = {0};
        
    return(Pos < this.GetAmount() ? this.Book[Pos] : Tmp);
  }
  
  long GetSumVolume(const ENUM_BOOK_TYPE Type = BOOK_TYPE_SELL ) const
  {
    const uint Amount = this.GetAmount();
    long SumVol = 0;
    
    for (uint i = 0; i < Amount; i++)
      if (this.Book[i].type == Type)
        SumVol += this.Book[i].volume;
        
    return(SumVol);    
  }
};

#define TOSTRING(A) #A + " = " + (string)A

BOOK Book;

void OnBookEvent(const string &symbol )
{  
  if (Book.Refresh(symbol))
    ::Comment(TOSTRING(Book.GetSumVolume(BOOK_TYPE_SELL)) + "\n" +
              TOSTRING(::SymbolInfoDouble(_Symbol, SYMBOL_SESSION_SELL_ORDERS_VOLUME)) + "\n" +
              TOSTRING(Book.GetSumVolume(BOOK_TYPE_BUY)) + "\n" +
              TOSTRING(::SymbolInfoDouble(_Symbol, SYMBOL_SESSION_BUY_ORDERS_VOLUME)) + "\n");
              
  return;
}
 
fxsaber:

За вечернюю дополнительную сессию (19:00 - 23:50) показывает правильно - это хорошее уточнение, спасибо!

А вот за дневную основную сессию - облом. 

Выяснил окончательно, как считается. В справке https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants

Идентификатор

Описание

Тип свойства

SYMBOL_SESSION_DEALS

Количество сделок в текущей сессии

long

SYMBOL_SESSION_VOLUME

Cуммарный объём сделок в текущую сессию

double


А на самом деле так

Идентификатор

Описание

Тип свойства

SYMBOL_SESSION_DEALS

Количество сделок в текущей сессии, начиная со времени старта последней дополнительной вечерней сессии

long

SYMBOL_SESSION_VOLUME

Cуммарный объём сделок в текущую сессию, начиная со времени старта последней дополнительной вечерней сессии

double


Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:

Еще одно несоответствие. Когда сессия закрыта, стакан показывается пустым. При этом SYMBOL_SESSION_SELL_ORDERS_VOLUME выдает далеко не нулевые значения.

SYMBOL_TICKS_BOOKDEPTH равен 20. Это 20 сдвигов SYMBOL_TRADE_TICK_SIZE что-ли? Почему стакан пустой (MarketBookRelease), когда в нем явно есть заявки?

1. Когда сессия закрыта, торговое окружение может быть абсолютно любым. В том числе стакан может быть пустым, а может содержать какие-нибудь феерические значения объема. 

2. Вы упорно ассоциируете  SYMBOL_SESSION_SELL_ORDERS_VOLUME с объемом в стакане. Однако суммарный объем стакана на продажу - это одна величина, а общий объем ордеров на продажу - совершенно другая величина. Это разные несводимые друг с другом характеристики. Сравнивать их в принципе нельзя. 

 
Vasiliy Sokolov:

1. Когда сессия закрыта, торговое окружение может быть абсолютно любым. В том числе стакан может быть пустым, а может содержать какие-нибудь феерические значения объема. 

До открытия сессии (09:45 - 10:00) происходит ценообразование - наблюдал. Данные, похоже, с самой биржи.

2. Вы упорно ассоциируете  SYMBOL_SESSION_SELL_ORDERS_VOLUME с объемом в стакане. Однако суммарный объем стакана на продажу - это одна величина, а общий объем ордеров на продажу - совершенно другая величина. Это разные несводимые друг с другом характеристики. Сравнивать их в принципе нельзя. 

Общий объем ордеров на продажу вычисляется путем суммирование объемов всех ордеров, что выставлены на продажу. И часть этих ордеров, как минимум, мы наблюдаем в стакане. Учитываются ли среди них айсберги - не знаю. Но то, что общий объем не урезанного стакана можно и нужно сравнивать с общим объемом ордеров - очевидно!
 
fxsaber:

До открытия сессии (09:45 - 10:00) происходит ценообразование - наблюдал. Данные, похоже, с самой биржи.

Общий объем ордеров на продажу вычисляется путем суммирование объемов всех ордеров, что выставлены на продажу. И часть этих ордеров, как минимум, мы наблюдаем в стакане. Учитываются ли среди них айсберги - не знаю. Но то, что общий объем не урезанного стакана можно и нужно сравнивать с общим объемом ордеров - очевидно!

Премаркет и планки несколько другое состояние рынка. Там стакан рабочий.

В момент клиринга происходит перерасчет позиций. Циферки в железе скачут поэтому и кажется что стакан обнулен. В любом случае, отталкиваться от информации полученной в период клиринга нельзя и доказательной базой для чего бы то не было это являться не может.

 
Vasiliy Sokolov:

В момент клиринга происходит перерасчет позиций. Циферки в железе скачут поэтому и кажется что стакан обнулен. В любом случае, отталкиваться от информации полученной в период клиринга нельзя и доказательной базой для чего бы то не было это являться не может.

Сформулируйте понятно! Доказательной базой какого утверждения что-то не может быть?
 
fxsaber:

За вечернюю дополнительную сессию (19:00 - 23:50) показывает правильно - это хорошее уточнение, спасибо!

А вот за дневную основную сессию - облом. 

Нет никаких обломов. Просто нужно всегда с чем-то сравнивать :)

Дело в том, что Сделок за сессию никто не считает, а считают за торговый день (19-00 сегодня до 18-45 завтра)

Но в МТ5 это называется (почему-то)  SYMBOL_SESSION_DEALS, что и ввело Вас в заблуждение :)

Дополнено:

К Квике, кстати, это тоже не правильно называется

 

 

Если Вы хотите полностью всё правильно понимать,

то советую изучить Описание к шлюзу Plaza II, там много найдёте интересного.

Файлы:
p2gate_ru.zip  1080 kb
Причина обращения: