[MQL4] Функция возвращает процент просадки по текущему символу

romanzif

romanzif

Местный
Команда форума
Администратор
Монет
94,799
Код:
//+------------------------------------------------------------------+
double CurrentDD()
{
   double profit = 0; // объявляем локальные переменные
   double dd = 0;
 
   for (int i=OrdersTotal()-1; i >= 0; i--) // перебираем все ордера
   {
      if (OrderSelect(i,SELECT_BY_POS))
      {
         if (OrderMagicNumber() == Magic && OrderSymbol() == Symbol()) // отбираем ордера с нашим Magic и символом текущего графика
         {
            profit += OrderProfit()+OrderCommission()+OrderSwap(); // суммируем профит(убыток) + комиссия + своп
         }
      }
   }
 
   if (AccountBalance() <= 0) return(0); // проверяем есть ли деньги на балансе
 
   dd = profit / (AccountBalance()/100); // высчитываем процент просадки (профита)
 
   return(dd); // возвращаем значение
}
//+------------------------------------------------------------------+
 
romanzif

romanzif

Местный
Команда форума
Администратор
Монет
94,799
Если закомментировать dd = profit / (AccountBalance()/100);
то будет возвращать просадку в деньгах, а не процентах.
 
K

Konstantin M.

Активный
Форумчанин
Монет
6,422
Спасибо, Роман. Использовал эту процедуру в програмке для постоянного отслеживания максимальной просадке конкретно по каждой паре. Названия отслеживаемых пар ввожу прямо в теле программы - не очень удобно, но этот продукт больше для личного пользования ...
 

Вложения

  • Biggest Drawdowns On currency pairs - 10-08-2022.mq4
    17.9 КБ · Просмотры: 1

Проверенные Брокеры

Для всех:
1. RoboForex
2. Weltrade
3. Exness
4. Forex4you

Для граждан РФ:
1. Forex4you
2. Альпари
3. wForex

Реклама

Заработок онлайн

Верх