Определение типа позиции открытой по наибольшей цене

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Определение типа позиции открытой по наибольшей цене

Сообщение Haos » 04 сен 2020, 14:11

Предположим мы имеем множество позиций по заданному торговому инструменту, открытые или вручную или советником (параметр mn в функции ниже). Нужно найти тип позиции (покупка или продажа) сделки, открытой по наибольшей цене. Это может быть необходимо для кода, посвященного усреднению, локам, сеточной торговле.

Код: выделить все
int f_GetTypePosByMaxPrice(string sy, int mn)
{
/*
   Версия   : 03.03.2017                                                     
   Описание : Возвращает тип позиции (покупка или продажа) сделки, открытой по
              наибольшей цене
   Вернет -1 в случае отсутствие позиции
   Параметры:                                                               
   sy - наименование инструмента   ("0" - текущий символ)
   mn - MagicNumber                (-1   - любой магик)
*/
   double dbl_Ymax = 0;
   int int_op = -1; // 0 - покупка, 1 - продажа
   for(int i = 0; i < OrdersTotal(); i++)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if(OrderSymbol() == Symbol())
         {
            if(OrderType()== OP_BUY || OrderType()== OP_SELL)
            {
               if(mn < 0 || OrderMagicNumber() == mn)
               {
                  if(OrderOpenPrice() > dbl_Ymax)
                  {
                     dbl_Ymax = OrderOpenPrice();
                     int_op = OrderType();
                  }
               }
            }
         }
      }
   }

return(int_op);
}

Функция с именем f_GetTypePosByMaxPrice имеет два параметра: имя торгового инструмена и мэджик. Функция возвращает значение целого типа: 0 - для покупки и 1 - для продажи (см. скрин ниже). Если позиции нет, то будет возвращено "-1".
Вложения
Свойства ордеров.png
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 49

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron