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

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

---

## MrGreen86 — 2018-04-07 20:25

> Цитата (tana808):
> Уважаемые специалисты отвтеть на пост #14781

> Цитата (marattmb):
> Уважаемые специалисты, реально ли вставить в индикатор алерт. В прилагаемом скриншоте я указал ситуацию, при которой должен срабатывать алерт. А именно, когда на одном из таймфреймов индикатор показывает 1 или -1. Если бы это удалось, то получился бы граль.

попробуй.

## den47999 — 2018-04-07 20:41

посмотрите не открывает сделки

## monax_77 — 2018-04-07 22:24

**Помогите пожалуйста**

Всем доброго времени суток!

Хотелось бы получить помощь программиста. Суть вопроса токова - есть индикатор, при пересечении трех МА выдает стрелку вверх или вниз соответственно. и все это прописанно в два буфера, а надо еще один буфер, я его в начале прописал - 22 Sig[ ]; и 62 SetIndexBuffer(2, Sig); , не знаю на сколько правильно, в котором будет по умолчанию 0, а при появлении стрелки в верх 1, стрелки в низ -1.

Помогите пожалуйста.

## MrGreen86 — 2018-04-08 09:15

> Цитата (monax_77):
> Всем доброго времени суток!
>
> Хотелось бы получить помощь программиста. Суть вопроса токова - есть индикатор, при пересечении трех МА выдает стрелку вверх или вниз соответственно. и все это прописанно в два буфера, а надо еще один буфер, я его в начале прописал - 22 Sig[ ]; и 62 SetIndexBuffer(2, Sig); , не знаю на сколько правильно, в котором будет по умолчанию 0, а при появлении стрелки в верх 1, стрелки в низ -1.
>
> Помогите пожалуйста.

Добрый день.
Такде нужно увеличить количество буферов 
18 #property indicator_buffers 3
или так:
56 IndicatorBuffers(3);

буфер сделать невидимым
64 SetIndexStyle(2, DRAW_NONE);

а само значение прописать непосредсвтенно там где прописаны стрелки
127          Sig = 1;
140          Sig = -1;

## MrGreen86 — 2018-04-08 09:16

> Цитата (den47999):
> посмотрите не открывает сделки

нужен исходник чтобы мы могли вам помочь. файл формата mq4

## monax_77 — 2018-04-08 10:31

**Спасибо.**

Спасибо за помощь! 
Видимый или нет не имеет значения, можно и не видимый. Взял индикатор с исправлениями. В понедельник проверю работу, нужен рабочий рынок.
При много благодарен!
:D

## Andrey69 — 2018-04-08 14:06

> Цитата (MrGreen86):
> попробуй.

Доброго дня.А можно алерт вынести в настройки индикатора.
И в самом алерте добавить по какой он валютной паре.

## Fgslm — 2018-04-08 14:12

**Соединить индикаторы**

Здравствуйте, необходимо соединить 2 индикатора приложенных к теме. Следить за отсеиванием сигналов по осциллятору нет времени, т.к. сигналов очень мало. Нужен выход одного сигнала уже отсеянного в коде через CCI. Кто сможет соединить(добавить отсев по ССI для 3rdCandle на пропуск сигнала при больше/меньше 100+ по CCI(14)?) и добавить алерт (с редактируемым в коде сообщением, я его там сам подредактирую)? Потом проведу тесты и отпишусь о результатах.

код чистого CCI вот здесь под спойлером, а ниже во вложении RSI+CCI
#property copyright "TO StatBars"
#property link      "http://tradexperts.ru"
//----
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 LightSeaGreen
//---- input parameters
extern int CCIPeriod = 21;
//---- buffers
double CCIBuffer[];
double RelBuffer[];
double DevBuffer[];
double MovBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 3 additional buffers are used for counting.
   IndicatorBuffers(4);
   SetIndexBuffer(1, RelBuffer);
   SetIndexBuffer(2, DevBuffer);
   SetIndexBuffer(3, MovBuffer);
//---- indicator lines
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, CCIBuffer);
//----
   if(CCIPeriod <= 0)
       CCIPeriod = 14;
//----
   SetIndexDrawBegin(0, CCIPeriod);
  
//---- name for DataWindow and indicator subwindow label
   short_name="CCI(" + CCIPeriod + ")";
   IndicatorShortName(short_name);
   SetIndexLabel(0, short_name);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Commodity Channel Index                                          |
//+------------------------------------------------------------------+
int start()
  {
   int    i, k, counted_bars = IndicatorCounted();
   double price, sum, mul; 
   if(CCIPeriod <= 1)
       return(0);
   if(Bars <= CCIPeriod) 
       return(0);
//---- initial zero
   if(counted_bars < 1)
     {
       for(i = 1; i <= CCIPeriod; i++) 
           CCIBuffer = 0.0;
       for(i = 1; i <= CCIPeriod; i++) 
           DevBuffer = 0.0;
       for(i = 1; i <= CCIPeriod; i++) 
           MovBuffer =0.0;
     }
//---- last counted bar will be recounted
   int limit = Bars - counted_bars;
   if(counted_bars > 0) 
       limit++;
//---- moving average
   for(i = 0; i < limit; i++)
       MovBuffer = iMA(NULL, 0, CCIPeriod, 0, MODE_SMA, PRICE_TYPICAL, i);
//---- standard deviations
   i = Bars - CCIPeriod + 1;
   if(counted_bars > CCIPeriod - 1) 
       i = Bars - counted_bars - 1;
   mul = 0.015 / CCIPeriod;
   while(i >= 0)
     {
       sum = 0.0;
       k = i + CCIPeriod - 1;
       while(k >= i)
        {
          price =(High + Low + Close) / 3;
          sum += MathAbs(price - MovBuffer);
          k--;
        }
       DevBuffer = sum*mul;
       i--;
     }
   i = Bars - CCIPeriod + 1;
   if(counted_bars > CCIPeriod - 1) 
       i = Bars - counted_bars - 1;
   while(i >= 0)
     {
       price = (High + Low + Close) / 3;
       RelBuffer = price - MovBuffer;
       i--;
     }
//---- cci counting
   i = Bars - CCIPeriod + 1;
   if(counted_bars > CCIPeriod - 1) 
       i = Bars - counted_bars - 1;
   while(i >= 0)
     {
       if(DevBuffer == 0.0) 
           CCIBuffer = 0.0;
       else 
           CCIBuffer = RelBuffer / DevBuffer;
       i--;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+

## Regwall — 2018-04-08 22:13

Приветствую всех!!!
Необходимо дополнить индикатор...

В расчете участвуют 28 пар валют

7NZD
7JPY
7AUD
7CAD
7GBP
7EUR
7USD
7CHF
В приложении - эксперт (можно как скрипт, пока отсутствует поток данных)...
С Уважением, Regwall.

## pilot331 — 2018-04-09 11:25

> Цитата (pilot331):
> Что , нет среди вас специалистов?....*hi*

индикатор находится в #post1311197

## MrGreen86 — 2018-04-09 11:37

> Цитата (Andrey69):
> Доброго дня.А можно алерт вынести в настройки индикатора.
> И в самом алерте добавить по какой он валютной паре.

можно. в настройках в самом конце _alerts

## MrGreen86 — 2018-04-09 11:40

> Цитата (pilot331):
> Что , нет среди вас специалистов?....*hi*

специалистов много, а вот с экстрасенсами напряг.
что отправлять на почту то?

## MrGreen86 — 2018-04-09 11:50

> Цитата (Fgslm):
> Здравствуйте, необходимо соединить 2 индикатора приложенных к теме.

Настройки алерта в конце.

## Kasander — 2018-04-09 11:59

Всем добрый день. Кто-нибудь может сделать вот этот индикатор Wavy Dash в виде Подвального Гистограмного индикатора?

## DomovenokBrest — 2018-04-09 12:39

> Цитата (Kasander):
> Всем добрый день. Кто-нибудь может сделать вот этот индикатор Wavy Dash в виде Подвального Гистограмного индикатора?

:)

## Kasander — 2018-04-09 12:47

> Цитата (DomovenokBrest):
> :)

Спасибо, только почему то не сходится с Картинкой на Графике. При одних и тех же Периодах разные Сигналы на разворот Цены.

## DomovenokBrest — 2018-04-09 12:51

> Цитата (Kasander):
> Спасибо, только почему то не сходится с Картинкой на Графике. При одних и тех же Периодах разные Сигналы на разворот Цены.

Где скрин?
В алгоритм изменений не вносил. Изменил только визуализацию на графике в виде гистограммы...
Если кому то удобно, то еще и такая модификация гистограммы...

## Kasander — 2018-04-09 13:05

> Цитата (DomovenokBrest):
> Где скрин?
> В алгоритм изменений не вносил. Изменил только визуализацию на графике в виде гистограммы...
> Если кому то удобно, то еще и такая модификация гистограммы...

Вот смотри - На графике движение вниз (Красная Линия) в несколько свечей, а на твоей Гистограмме всего одна или две Палочки. Не сходится почему то в некоторых местах...

## mobidik — 2018-04-09 13:46

> Цитата (DomovenokBrest):
> Где скрин?
> В алгоритм изменений не вносил...

Привет, Эдик.
Обрати внимание на метод расчета машек "до" и "после".

## DomovenokBrest — 2018-04-09 13:54

> Цитата (mobidik):
> Привет, Эдик.
> Обрати внимание на метод расчета машек "до" и "после".

Точно, спасибо Саша. Это я по-ходу, изменить то изменил на привычный мне EMA,  а из памяти выпало :) Старею... :D

---

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