Как поставить условие, чтобы проверить текущий цвет индикатора???

 
Коллеги помогите!!! Каким образом в mql проверить текущий цвет индикатора? к примеру: if (( iAC (Symbol(), period[x], 0)) =="Green"), как правильно поставить условие? Буду очень Благодарен за помощь, Антон!
 

Нужно сравнивать со значением на предыдущем баре.

Значение на текущем баре > значение на предудущем баре // Green
Значение на текущем баре < значение на предыдущем баре // Red

Я не знаю, что будет при
Значение на текущем баре == значение на предыдущем баре

Выясните это самостоятельно.

 

Спасибо за ответ! Но хотелось бы узнать, можно ли проверить цвет по одному текущему бару? Непосредственно поставив условие проверки его цвета? Если Вы знаете могли бы подсказать, что означает параметр int_shift, в iAC(string simbol, int timeframe, int shift).

 
Sowulo:

Спасибо за ответ! Но хотелось бы узнать, можно ли проверить цвет по одному текущему бару? Непосредственно поставив условие проверки его цвета? Если Вы знаете могли бы подсказать, что означает параметр int_shift, в iAC(string simbol, int timeframe, int shift).


Посмотрите здесь https://docs.mql4.com/ru/indicators/iAC
 
Vinin:
Sowulo:

Спасибо за ответ! Но хотелось бы узнать, можно ли проверить цвет по одному текущему бару? Непосредственно поставив условие проверки его цвета? Если Вы знаете могли бы подсказать, что означает параметр int_shift, в iAC(string simbol, int timeframe, int shift).


Посмотрите здесь https://docs.mql4.com/ru/indicators/iAC

Спасибо!!! Кто-нибудь подскажите, есть ли mql возможность проверить цвет индикатора напрямую, без обращения к мат.формулам при сравнении с предыдущими барами???
 
Sowulo:
Vinin:
Sowulo:

Спасибо за ответ! Но хотелось бы узнать, можно ли проверить цвет по одному текущему бару? Непосредственно поставив условие проверки его цвета? Если Вы знаете могли бы подсказать, что означает параметр int_shift, в iAC(string simbol, int timeframe, int shift).


Посмотрите здесь https://docs.mql4.com/ru/indicators/iAC

Спасибо!!! Кто-нибудь подскажите, есть ли mql возможность проверить цвет индикатора напрямую, без обращения к мат.формулам при сравнении с предыдущими барами???


У индикатора нет цвета, можно его сделать любой. Но есть буфер (и не один) который отвечает за конкретный цвет.

Начинать лучше отсюда https://book.mql4.com/ru

 
Sowulo:
Спасибо!!! Кто-нибудь подскажите, есть ли mql возможность проверить цвет индикатора напрямую, без обращения к мат.формулам при сравнении с предыдущими барами???
Нет.
 
Sowulo:
Коллеги помогите!!! Каким образом в mql проверить текущий цвет индикатора? к примеру: if (( iAC (Symbol(), period[x], 0)) =="Green"), как правильно поставить условие? Буду очень Благодарен за помощь, Антон!


Не знаю, что ты хочешь с этим делать,но Vinin прав, цвет можно задать абсолютно любым. Я сам, если к примеру мне нужен сигнал для советника, делаю следующее (мне так проще): объявляю глобальную переменную в теле индикатора,и в блоке индикатора, который отвечает за отображение его на графике (или под ним), присваиваю переменной одно значением для одного сигнала (который к примеру отображается зеленым цветом), при перемене сигнала (который в индикаторе допустим отображается уже красным цветом), присваивается другое значение глобальной переменной. Для наглядности куски кода из модифицированного мной индикатора:

string JMAsig5x5_M5; //объявляем переменную
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
JMAsig5x5_M5="JMAsig5x5_M5_"+Symbol();
if(!GlobalVariableCheck(JMAsig5x5_M5)){GlobalVariableSet(JMAsig5x5_M5,0);} //первичная инициализация глоб.переменной

.......

if ( bConditionUp) { //если сигнал на покупку
CrossUp[i+1] = SlowMA[i+1]-Range * 1;
CrossDown[i+1] = EMPTY_VALUE;
bConditionDown = false;
GlobalVariableSet(JMAsig5x5_M5,1); //задаем одно значение Гл. перем.
}

if ( bConditionDown) { //если на продажу, то
CrossDown[i+1] = SlowMA[i+1]+Range * 1;
CrossUp[i+1] = EMPTY_VALUE;
bConditionUp = false;
GlobalVariableSet(JMAsig5x5_M5,2); //задаем другое
}

Надеюсь, что это тебе как-то поможет. Ну или хотя бы натолкнет на мысль.

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