# Доработка ботов (советников, индикаторов) vol. 2

Раздел: Язык программирования MQL4
Автор темы: chocolate
Создана: 2014-10-02 12:48
Ответов: 33795 | Просмотров: 6650244
Страница 954 из 1690
Источник: https://forexsystemru.com/threads/77111/page-954

---

## 1715 — 2019-10-20 19:20

> Цитата (Slava78):
> Ты декомпилировал?

mq4 скомпилировал в ех4 509ым билдом.

## Slava78 — 2019-10-20 19:32

> Цитата (1715):
> mq4 скомпилировал в ех4 509ым билдом.

Лучше бы наоборот

## zhserg — 2019-10-20 19:54

> Цитата (tirion):
> Уважаемые специалисты! Не ставятся на график эти индикаторы. Наверное, под старые билды. ПРОСЬБА поправить.

Для Gartley Reversal Auto нужен индикатор ZigZagE. Второй индикатор поправил.

## bot14 — 2019-10-20 20:14

Поправил оба, ошибок нет. На графике даже что-то рисуют ;)

## vladradon — 2019-10-20 20:16

В первом индикаторе было деление на 0 и он требует другой индикатор  ZigZagE. Второй запустил под последний билд. Имена не менял - не перепутайте со старыми.

## tirion — 2019-10-20 20:20

Огромное-огромное спасибо.

## Slava78 — 2019-10-20 20:23

> Цитата (tirion):
> Огромное-огромное спасибо.

Я тоже говорил спасибо когда мне никто не помог. А тут точки на черточки поменяли (y)

## vladradon — 2019-10-20 20:56

> Цитата (1715):
> Надо доработать его, чтоб он показывал дополнительную линию на указанное мной расстояние от линии Ask

Можно задавать отрицательное значение для смещения вниз.

## 1715 — 2019-10-20 21:06

> Цитата (vladradon):
> Можно задавать отрицательное значение для смещения вниз.

Спасибо большое, то, что надо.

## tirion — 2019-10-20 21:33

На протяжении длительного периода индикатор показал себя с положительной стороны. И хотя я не отношусь к тайной секте любителей стрелок, в этом случае они не помешали бы. Просьба, если это не так сложно, "прикрутить" стрелки.

## Аввакум2 — 2019-10-21 09:18

> Цитата (vladradon):
> В первом индикаторе было деление на 0 и он требует другой индикатор  ZigZagE. Второй запустил под последний билд. Имена не менял - не перепутайте со старыми.

Кроме ZigZagE, кажись, там ещё обычный ZigZag нужен. Не у каждого в терминале он есть.

## Slava78 — 2019-10-21 09:19

> Цитата (vladradon):
> В первом индикаторе было деление на 0 и он требует другой индикатор  ZigZagE. Второй запустил под последний билд. Имена не менял - не перепутайте со старыми.

Для моего компа тяжелые, грузит

## yurecwa — 2019-10-21 14:35

Здравствуйте. Может кто посмотрит. Есть функция подсчета прибыли и убытка. Но когда ее добавляю в любой советник, он сильно тормозит в тестере.
double SummaryProfit()
{
   double Sum = 0;
   //Суммарный профит по всем открытым ордерам
   for(int i=0;i < OrdersTotal();i++)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
         if(OrderType() < 2 && OrderSymbol() == _Symbol && OrderMagicNumber() == Magik)
            Sum += OrderProfit()+ OrderSwap() + OrderCommission();  //включая своп и комиссию
     }
  //Сумма по ордерам, закрытым сегодня:
  for( int i=OrdersHistoryTotal()-1;i>=0;i--)
    {
     if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
       {
        if(
            OrderType() < 2 //
        &&  TimeYear(OrderCloseTime()) ==   TimeYear(TimeCurrent())                   //Год
        &&  TimeDayOfYear(OrderCloseTime()) == TimeDayOfYear(TimeCurrent())   //и День соотвествуют текущему
        &&  OrderSymbol() == _Symbol                                                                //По текущему символу
        && OrderMagicNumber() == Magik )                                                          //По заданному магику
         Sum += OrderProfit()+ OrderSwap() + OrderCommission();
       }
    } 
     return(Sum);
}

## vladradon — 2019-10-21 15:20

> Цитата (yurecwa):
> Есть функция подсчета прибыли и убытка. Но когда ее добавляю в любой советник, он сильно тормозит.

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

```

double SummaryProfit()
  {
   double Sum = 0;
   int TYear=TimeYear(TimeCurrent());
   int TDofYear=TimeDayOfYear(TimeCurrent());
//Суммарный профит по всем открытым ордерам
   for(int i=0; i < OrdersTotal(); i++)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber() == Magik
         && OrderSymbol() == _Symbol)
         Sum += OrderProfit()+ OrderSwap() + OrderCommission(); //включая своп и комиссию
     }
//Сумма по ордерам, закрытым сегодня:
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && OrderMagicNumber() == Magik
         && OrderSymbol() == _Symbol //По текущему символу
         && TimeYear(OrderCloseTime()) == TYear //Год
         && TimeDayOfYear(OrderCloseTime()) == TDofYear) //и День соотвествуют текущему
         Sum += OrderProfit()+ OrderSwap() + OrderCommission();
        }
   return(Sum);
  }

```

## yurecwa — 2019-10-21 15:40

> Цитата (vladradon):
> Ошибок в ней вроде нет. Можно подкорректировать код для ускорения. При проверке на магик проверка на тип ордера не нужна.

Спасибо за ответ, дело в том что советник замедляется в тестере.

## vladradon — 2019-10-21 15:43

> Цитата (yurecwa):
> Спасибо за ответ, дело в том что советник замедляется в тестере.

Если она не нужна для торговли - только для информации, то отключайте ее в тестере. Она какой строкой у Вас запускается в сове? Можно добавить проверку на тест типа
   if(!IsTesting() && !IsOptimization()) ... SummaryProfit();

## yurecwa — 2019-10-21 15:48

> Цитата (vladradon):
> Если она не нужна для торговли - только для информации, то отключайте ее в тестере. Она какой строкой у Вас запускается в сове?

Мне как раз то и нужна эта функция. Для оптимизации советника. 132 строка.

## vladradon — 2019-10-21 15:51

> Цитата (yurecwa):
> Мне как раз то и нужна эта функция. Для оптимизации советника. 132 строка.

Тогда ничем не могу помочь больше.

## yurecwa — 2019-10-21 16:00

> Цитата (vladradon):
> Можно добавить проверку на тест типа
> if(!IsTesting() && !IsOptimization()) ... SummaryProfit();

Спасибо. Может Вы подскажите функцию мани менеджмента для советника?

## vladradon — 2019-10-21 16:06

> Цитата (yurecwa):
> Может Вы подскажите функцию мани менеджмента для советника?

Это не ко мне. Я пользуюсь только автолотом и мартингейлом.

---

Следующая страница: https://forexsystemru.com/threads/77111/page-955
