Котировочные и торговые сессии - страница 2

 
Сейчас ссылки дать не могу(с телефона), поищите в гугле по "премаркет".
 

Я последнее время прихожу к тому, что SymbolInfoSessionQuote и SymbolInfoSessionTrade носят чисто информативный характер.

Для корректного функционирования торгового робота гарантированная возможность выполнения торговой операции по инструменту выражается связкой условий:

bool IsSellAllowed(const string Symbol, const double Volume) {
  MqlBookInfo BookInfo[];
  if (!MarketBookGet(Symbol, BookInfo)) return false;

  bool IsBookBuyExist = false;
  for (int i = 0; i < ArraySize(BookInfo); i++)
    if (BookInfo[i].type == BOOK_TYPE_BUY) {
      IsBookBuyExist = true;
      break;
    }
  if (!IsBookBuyExist) return false;

  switch (SymbolInfoInteger(Symbol, SYMBOL_TRADE_MODE)) {
    case SYMBOL_TRADE_MODE_FULL:
    case SYMBOL_TRADE_MODE_SHORTONLY: return true;
    case SYMBOL_TRADE_MODE_LONGONLY:
    case SYMBOL_TRADE_MODE_CLOSEONLY:
      if (PositionSelect(Symbol) &&
         (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) &&
         (NormalizeDouble(PositionGetDouble(POSITION_VOLUME) - Volume, 8) == 0))
        return true;
      else return false;
    case SYMBOL_TRADE_MODE_DISABLED:
    default: return false;
  }
}

Пожалуйста, прооппонируйте меня.

Причина обращения: