Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Создавай темы на форуме и увеличивай рейтинг!
first_may
326
first_may 2011.07.19 15:32 

Добрый день.

Подскажите пожалуйста по поводу ордеров. Функция OrdersTotal - возвращает общее количество открытых и отложенных ордеров. А как можно узнать по конкретной бумаге, есть ли открытые ордера или нет?

Victor Nikolaev
Модератор
14046
Victor Nikolaev 2011.07.19 15:42  
first_may:

Добрый день.

Подскажите пожалуйста по поводу ордеров. Функция OrdersTotal - возвращает общее количество открытых и отложенных ордеров. А как можно узнать по конкретной бумаге, есть ли открытые ордера или нет?


Перебрать все открытые позиции и выбрать только нужный инструмент. Если ничего не выбрали, то нету
first_may
326
first_may 2011.07.19 15:50  

То есть вот так:

int k=0;

total=OrdersTotal();

for (int cnt=0; cnt<total; cnt++)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderSymbol()==Symbol()) k++;

if (k>0) Print("ЕСТЬ ОРДЕР ПО НУЖНОЙ БУМАГЕ!!!");

}

Victor Nikolaev
Модератор
14046
Victor Nikolaev 2011.07.19 16:00  
first_may:

То есть вот так:



int k=0;
total=OrdersTotal();
for (int cnt=0; cnt<total; cnt++)
{
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   if (OrderSymbol()==Symbol()) k++;
}
if (k>0) Print("ЕСТЬ "+k+" ОРДЕР(ОВ) ПО НУЖНОЙ БУМАГЕ!!! ");
else Print("НЕТУ ОРДЕРОВ ПО НУЖНОЙ БУМАГЕ, УКРАЛИ!!!");
Лучше так. :)
first_may
326
first_may 2011.07.19 16:01  
Спасибо! :)
PapaYozh
3768
PapaYozh 2011.07.19 16:04  
Vinin:

Лучше так. :)


А еще лучше, так:

   if OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      if (OrderSymbol()==Symbol()) k++;

:)

PapaYozh
3768
PapaYozh 2011.07.19 16:05  
first_may:
Спасибо! :)

Если речь идет про открытые ордера (без отложенных) то надо еще тип ордера анализировать.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий