Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Удобнее торговать с помощью смартфона? Мобильная версия MetaTrader 5 тебе подойдет!
Alexandr Balasyan
502
Alexandr Balasyan 2014.11.02 07:47 
Добрый день. Подскажите, пожалуйста, как мне проверить если ни у меня на текущем баре (в любом таймфрейме) открытая позиция или нет?
Alexey Viktorov
5192
Alexey Viktorov 2014.11.02 07:55  
Перебрать в цикле все открытые ордера и сравнить if(OrderOpenTime() >= Time[0]) значит таковой есть...
Alexandr Balasyan
502
Alexandr Balasyan 2014.11.02 08:33  
Спасибо!
Рита
438
Рита 2014.11.08 10:30  

Добрый день. 

Понадобилось ограничить число сделок на одном баре. Решила воспользоваться функцией Игоря Кима:

https://www.mql5.com/ru/forum/131859/page4#434234

Функция NumberOfBarCloseLastPos().
Эта функция возвращает номер бара закрытия последней позиции или -1. Отбор учитываемых позиций задаётся внешними параметрами .....

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара закрытия последней позиции или -1.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarCloseLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersHistoryTotal();
  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) t=OrderCloseTime();
            }}}}  }  }
  return(iBarShift(sy, tf, t, True));
}

 Но, почему-то функция не работает! Советник откр/закр сделки, однако, функция постоянно возвращает "-1", - вывела Comment(NumberOfBarCloseLastPos(NULL,0,-1,-1));

Подскажите, пож., в чем дело? Ранее (до обновления MQL) проблемы здесь не было. 

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