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

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

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

    Сообщение Haos » 28 июл 2020, 12:41

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

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

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

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

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

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

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