Помогите, пжл, доработать советник на основе Машек.

 

Всем доброго дня!

Народ, помогите, пжл, немного модернизировать советник. Хотелось бы добавить контроль просадки и по возможности, контроль дневной прибыльности. 

Контроль просадки - если просадка по всем сделкам больше заданная в исходных данных то советник закрывает все позиции (как вариант в исходных условиях можно задавать все/все убыточные) , ждет сигнала и снова открывает. 

Контроль прибыльности - в исходных данных вводим процент от депозита прибыли в день, если в течение дня превышаем этот показатель, то советник закрывает убыточные позиции выдерживая дневную прибыль. 

Жду ваших комментариев по этому поводу, а так же, может кто встречал таких советников и самое главное, жду помощи с доработкой.

Всем добра!

Файлы:
 
Код вы писали? Если да то могу дать готовую процедуру расчета профита, можете её сами встроить по своему усмотрению.
 
Vitaly Gorbunov:
Код вы писали? Если да то могу дать готовую процедуру расчета профита, можете её сами встроить по своему усмотрению.

Код у меня давно. Сейчас вновь вернулся к программированию. Буду признателен.

 
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает суммарный профит открытых позиций в валюте депозита |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
double GetProfitOpenPosInCurrency(string sy="", int op=-1, int mn=-1) {
  double p=0;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            p+=OrderProfit()+OrderCommission()+OrderSwap();
          }
        }
      }
    }
  }
  return(p);
}

Воспользуйтесь Кимовсой процедурой в ней всё понятно. 

https://www.mql5.com/ru/forum/131859 

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Vitaly Gorbunov:

Воспользуйтесь Кимовсой процедурой в ней всё понятно. 

https://www.mql5.com/ru/forum/131859 

Спасибо! Полезная ветка!