Связать индикатор с советником. Хелп

 

Как можно связать стрелочный индикатор с советником? 

Объявляю переменную и указываю номера массива, под которыми в индикаторе указываются стрелки

double Red_Arrow = iCustom(NULL, 0, "Sidus", 6, 0)

double Green_Arrow = iCustom(NULL, 0, "Sidus", 5, 0);

Не знаю с чем сравнить, чтобы задать условия выполнения ордера и как это правильно записать

 
mrostrich:

Как можно связать стрелочный индикатор с советником? 

Объявляю переменную и указываю номера массива, под которыми в индикаторе указываются стрелки

double Red_Arrow = iCustom(NULL, 0, "Sidus", 6, 0)

double Green_Arrow = iCustom(NULL, 0, "Sidus", 5, 0);

Не знаю с чем сравнить, чтобы задать условия выполнения ордера и как это правильно записать

если рисует стрелки то как правило стрелочный буфер будет просто больше 0 или равен текущей цене
 
Aleksey Semenov:
если рисует стрелки то как правило стрелочный буфер будет просто больше 0 или равен текущей цене

Если я хочу, чтобы сделка открывалась именно с того бара, над которым стрелка, то нужно добавить счетчик баров?

 
Сделки открываться стали, когда сравнил с нулем, но, по-моему, они открываться стали так, что все мои условия учитываются и если последняя стрелка индикатора была красной, то открывается. Он смотрит последняя стрелка является ли красной, то тогда уже открывается, вроде так
 

Либо вообще не учитывает это и работает будто без условия с буфером стрелки

 
mrostrich:

Как можно связать стрелочный индикатор с советником? 
Объявляю переменную и указываю номера массива, под которыми в индикаторе указываются стрелки
double Red_Arrow = iCustom(NULL, 0, "Sidus", 6, 0)
double Green_Arrow = iCustom(NULL, 0, "Sidus", 5, 0);
Не знаю с чем сравнить, чтобы задать условия выполнения ордера и как это правильно записать


В индикаторе добавьте 

int init()
  {
   SetIndexEmptyValue(5,0.0);
   SetIndexEmptyValue(6,0.0);
   return(0);
  }

А в советнике

double Red_Arrow = iCustom(NULL, 0, "Sidus", 6, 0)
double Green_Arrow = iCustom(NULL, 0, "Sidus", 5, 0);

if(Red_Arrow != 0.0) //Signal SELL
if(Green_Arrow != 0.0) //Signal BUY
 
Natalya Dzerzhinskaya:

В индикаторе добавьте 

А в советнике


Спасибо! Попробую. Это массовый способ? Смогу ли применять его на другие индикаторы?

 
mrostrich:

Смогу ли применять его на другие индикаторы?


Да, конечно.

 
mrostrich:

Спасибо! Попробую. Это массовый способ? Смогу ли применять его на другие индикаторы?


Нет, не массовый, но для большинства индикаторов, скорее всего, подойдет. Логика каждого индикатора может использовать разные "пустые" значения. От того, что в OnInit указано какое-то пустое значение, в коде логика не поменяется автоматически.Нужно смотреть код индивидуально.

Причина обращения: