Форекс стратегии, торговые роботы, индикаторы

Закрывает рыночные ордера (позиции), у которых профит достиг заданного значения

Торговый робот бесплатно

ForexMq

Функция закрывает позиции по достижению заданной прибыли, при этом учитывается своп и комиссия.


void ClosePosBySizeProfit(
                          string sy="", // имя символа ("" - все символы)
                          int ty=-1,    // тип ордера (-1 - все типы ордеров)
                          int mg=-1,    // магическое число ордеров (-1 - все магики)
                          int prof=0)   // размер прибыли для закрытия позиции (в валюте депозита)
  {
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==sy || sy=="")
           {
            if(mg<0 || OrderMagicNumber()==mg)
              {
               if(ty<0 || OrderType()==ty)
                 {
                  if(OrderType()<2)
                    {
                     if(OrderProfit()+OrderSwap()+OrderCommission()>=prof)
                        ClosePosBySelect();
                    }
                 }
              }
           }
        }
     }
  }

Параметры

  • sy - символьное имя торгового инструмента для закрытия позиции. При пустом значении, функция будет проверять позиции со всех доступных символов;
  • ty - тип ордера:
    • 0 - Buy;
    • 1 - Sell;
    При значении -1, учитываться будут все ордера на счете;
  • mg - магическое число ордеров, при значении -1 будут учитываться ордера не зависимо от magic;
  • prof - размер прибыли, по достижению или преодолению которого функция закроет позицию.

Для закрытия позиции используется функция ClosePosBySelect().

Смотреть так же:




Комментарии ()