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

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

---

## vik858 — 2019-04-14 15:41

> Цитата (вячеслав1946):
> superhonda498 - скажите , а позволительно ли будет у вас спросить dll-ку ?

Держи

## LIS0013 — 2019-04-14 17:19

> Цитата (superhonda498):
> Привет всем....ребята нужна ваша помощь,  кто сможет переместить стрелку в подвал....:please:
> [изображение: https://b.radikal.ru/b30/1904/f9/89cba0774fa8.jpg]

если индюк не рисует....желательно и буфера на стрелочки вынести:)

## Fanur — 2019-04-14 18:32

> Цитата (superhonda498):
> Привет всем....ребята нужна ваша помощь, кто сможет переместить стрелку в подвал

Почему терминал виснет от этого индюка на пару минут , когда настройки меняешь ? DLL есть .

## Sergey85 — 2019-04-14 18:32

**LIS0013**,в реал-тайм там стрелочки могут скакать со свечи на свечу. Такую версию тестировал где-то месяц назад...

## Tankk — 2019-04-14 19:15

**BAMSBUNG NRP mod v2**

> Цитата (LIS0013):
> если индюк не рисует....желательно и буфера на стрелочки вынести:)

> Цитата (Sergey85):
> **LIS0013**,в реал-тайм там стрелочки могут скакать со свечи на свечу. Такую версию тестировал где-то месяц назад...

он рисует, т.к. это **Full SSA Normalized трижды сглаженная**...
какие-то уёпки переименовали библиотеку **libSSA.dll** в BAMSBUNG.dll :laugh:
P.S. зачем снова, и снова "пинать дохлую кошку"? :rolf: [**пост о пользе рисующих индюков...**](https://forexsystemsru.com/showpost.php?p=1402036&postcount=251)

## Andrew123 — 2019-04-14 19:26

Всем привет. Помогите пожалуйста, эти индикаторы перестали работать.

## MrGreen86 — 2019-04-14 19:35

> Цитата (OSS_5):
> Эксперт в прибыль не закрывает. Если выбираем закрывать 3 лимит ордера, то он закрывает 6 (3 бай и 3 селл). Посмотрите пожалуйста в чем может быть проблема.

перепроверил в тестере добавив открытие ордеров в нужные моменты.
у меня все отработало правильно.
Смущает что на вашем скриншоте он не улыбается (отключена автоторговля) а также нет метки на графике которую добавляет
этот советник после закрытия сделок.

добавил логирование при закрытии, потестируйте эту версию.
если закрытие произойдет не верно, сделайте скриншот журнала во вкладке "эксперты" в низу.

## MrGreen86 — 2019-04-14 19:49

> Цитата (Alkofan):
> o_oo_oo_o Уважаемые, прикрутите к нему стрелки при смене цвета и алерт пожалуйста.
>
> Спасибо заранее!

готово

## MrGreen86 — 2019-04-14 20:20

> Цитата (Anna89):
> Здравствуйте. Помогите подправить код. Нужно, чтобы при пересечении ценой линии МА рисовалась линия с отступом +50 пунктов, а когда цена пересекает нарисованную линию, закрывалась сделка.
> У меня выходит так: выполняется условие - закрывается сделка, а потом рисуется линия.
> Что мне подправить в коде?

Много чего ) немного снабдил комментариями, надеюсь разберетесь.
Учитывайте что советник работет по тикам, и в вашем коде линия постоянно двигалась пока цена закрытия находилась выше МА.
При этом еще и на каждой новой свече создавалась новая линия, с новыми именем.
Лучше привязать линию к тикету ордера и дальше работать сней.
for(i=OrdersTotal()-1;i>=0;i--)
  {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {
      if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
        {
        // найдем линию для этого ордера
        double line_price_sell = 0;
        if(ObjectFind(0,"SS"+(string)OrderTicket())) 
            line_price_sell = ObjectGetDouble(0,"SS"+(string)OrderTicket(),OBJPROP_PRICE,0);
        // линия есть и мы ее пересекли ценой  - pfrhjtvcz
        if(line_price_sell>0 && Bid>=line_price_sell) {
            RefreshRates();
            ticket=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Black);
            if(ticket) {
               Alert("Закрыт ордер Sell ",OrderTicket(),"  прибыль ",OrderProfit()," ",TimeToStr(TimeCurrent(),TIME_SECONDS));
               ObjectDelete(0,"SS"+(string)OrderTicket());  // незабудем удалить линию
               }
            if(ticket<0) {Print("Ошибка ",err," закрытия ордера Sell ",GetLastError()); RefreshRates(); return;}
            }
         // линии еще нет, но условия для ее создания есть - нарисуем ее.
         if(Close>Ma10 && line_price_sell == 0)
           {
            ObjectCreate("SS"+(string)OrderTicket(),OBJ_HLINE,0,0,High+Delta*Point);
            ObjectSet("SS"+(string)OrderTicket(),OBJPROP_COLOR,Red);
            ObjectSet("SS"+(string)OrderTicket(),OBJPROP_STYLE,STYLE_SOLID);
            ObjectSet("SS"+(string)OrderTicket(),OBJPROP_WIDTH,1);
            ObjectSet("SS"+(string)OrderTicket(),OBJPROP_RAY,false);
            WindowRedraw();
           }
        }
     }
  }

## pilot331 — 2019-04-14 20:27

**Для AlenaCoder**

*hi* AlenaCoder, Вы могли бы подкорректировать код, вроде всё как обычно прикрутил оповещение на мыло, но почему то выдает две ошибки....... o_o:facepalm:

## Pammexpert — 2019-04-14 22:51

> Цитата (pilot331):
> *hi* AlenaCoder, Вы могли бы подкорректировать код, вроде всё как обычно прикрутил оповещение на мыло, но почему то выдает две ошибки....... o_o:facepalm:

Ошибка в к-ве параметров

## AlenaCoder — 2019-04-14 22:54

> Цитата (pilot331):
> *hi* AlenaCoder, Вы могли бы подкорректировать код, вроде всё как обычно прикрутил оповещение на мыло, но почему то выдает две ошибки....... o_o:facepalm:

Функция Alert может принимать несколько входных параметров, которые она соберет в строчку и выдаст сообщение. Так вы и сделали, собрав сообщение по кусочкам и передав его функции Alert через запятые.

У функции SendMail принимает 2 входных параметра, оба обязательны.
1) заголовок письма
2) тело письма.
Соответственно они должны быть указаны через запяту.
Но вы сделали так же как в алерт, передав множество параметров через запятую. Можно собрать строчку из кусочков через "+". И не забыть первым параметром указать тему письма. Там я тоже добавила строчку. 

было:
SendMail("ZigZag Pointer МАКСИМУМ... (M",Period()," ",Symbol(),")");
стало:
SendMail("zigzag pointer "+_Symbol **,** "ZigZag Pointer МАКСИМУМ... (M"+Period()+" "+Symbol()+")");

## pilot331 — 2019-04-15 00:26

**AlenaCoder**,

Спасибо ОГРОМНОЕ за разъяснения:D

## pilot331 — 2019-04-15 00:27

**Pammexpert**, *hi*:);):embrace:

## pilot331 — 2019-04-15 00:44

**Для AlenaCoder**

*hi*А можно к этому индюку прикрутить MTF, а в настройках добавить период по который индикатор будет мониторить сигналы... Например: установили период 60. индюк мониторит все сигналы на 1, 5, 15, 30 и 60 мин. тф .... И САМОЕ ГЛАВНОЕ! - когда проходит сигнал по всем ТФ *одновременно* - он выдает все положенные алерты.... такое возможно прикрутить к индюку, или это уже функции советника? 
:embrace:;):)

## Alkofan — 2019-04-15 07:34

> Цитата (MrGreen86):
> готово

Привет, на М1 он заваливает алертами, может  задержку в 60 сек прописать o_o

Спасибо за ранее)

## OSS_5 — 2019-04-15 09:40

> Цитата (MrGreen86):
> перепроверил в тестере добавив открытие ордеров в нужные моменты.
> у меня все отработало правильно.
> Смущает что на вашем скриншоте он не улыбается (отключена автоторговля) а также нет метки на графике которую добавляет
> этот советник после закрытия сделок.
>
>
> добавил логирование при закрытии, потестируйте эту версию.
> если закрытие произойдет не верно, сделайте скриншот журнала во вкладке "эксперты" в низу.

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

## A_Alex — 2019-04-15 10:56

Давно хотел такой индикатор каналов на графике. Но в настройках много лишнего, неудобно использовать в  советнике под МТ4. Помогите исправить!!

## OSS_5 — 2019-04-15 11:01

> Цитата (MrGreen86):
> перепроверил в тестере добавив открытие ордеров в нужные моменты.
> у меня все отработало правильно.
>
> добавил логирование при закрытии, потестируйте эту версию.
> если закрытие произойдет не верно, сделайте скриншот журнала во вкладке "эксперты" в низу.

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

## S D V — 2019-04-15 11:04

Ребят,подправьте пожалуйста индикатор,ни что не показывает,может из-за билда?!

---

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