Как определить наибольшую цену открытия из открытых позиций

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

Как определить наибольшую цену открытия из открытых позиций

Сообщение Haos » 01 май 2020, 09:19

Данная функция будет полезна при разработке программного кода при торговле сетками или просто несколькими открытыми сделками.
Мы должны найти наибольшую цену открытия из всех открытых позиций по данному инструменту.
Сам код выглядит так:

Код: выделить все
double f_GetMaxOpenPriceLevel(int op, int mn)
{
/*
   Версия   : 23.11.2016                                                     
   Описание : Определяет наибольшую цену открытия из открытых позиций
   Вернет "0" в случае отсутствие позиций
   Параметры:                                                               
   op - операция                   (-1   - любая позиция)                 
   mn - MagicNumber                (-1   - любой магик)
*/
   double dbl_Ymax = 0;
   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(op < 0 || OrderType() == op)
               {
                     if(mn < 0 || OrderMagicNumber() == mn)
                     {
                        if(OrderOpenPrice() > dbl_Ymax) dbl_Ymax = OrderOpenPrice();
                     }
               }
            }
         }
      }
   }
   
return(dbl_Ymax);
}

Функция типа double под названием f_GetMaxOpenPriceLevel(int op, int mn) имеет два параметра:
- op - тип операции (OP_BUY, OP_SELL или "-1" - или покупка или продажа);
- mn - MagicNumber.
В цикле пробегаем по всем открытым позициям и выбираем по заданным критериям (параметры функции) нужные. Отмечаем цену открытия и сравниваем сначала с нулем, а потом с большей по уровню. Так находим сделку с самой максимальной ценой открытия. Если же такой не окажется (вообще нет позиций по заданным критериям), функция вернет ноль.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

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

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

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

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

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

cron