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

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

Rebate service

ForexMq

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


void ClosePosBySizeLoss(
                        string sy="", // имя символа (при пустом значении - все символы)
                        int ty=-1,    // тип ордера (-1 - все типы ордеров)
                        int mg=-1,    // магическое число ордеров (-1 - все магики)
                        int loss=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() <= loss)
                        ClosePosBySelect();
                    }
                 }
              }
           }
        }
     }
  }

Параметры:

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

Используемые функции

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

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




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