Не работают вместе 2 условия if. Как такое может быть?

 

Долго бьюсь вроде бы над простой вещью. Нужно прописать 2 условия на покупку по сигналам индикатора StepMA_Line https://www.mql5.com/ru/code/560 :

если линия на 1 баре была красной, а на 0 баре стала зеленой

если цена закрытия 1 бара меньше  цены "зеленой" линии на первом баре и Бид больше цены "зеленой" линии нулевого бара, то............

По отдельности условия отрабатывают, вместе не хотят...Помогите разобраться

double close = NormalizeDouble(iClose(_Symbol,_Period,1),Digits());
double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),Digits());


   if (Sig_Up[1] < Sig_Down[1] && Sig_Up[0] > Sig_Down[0])
    { Print ("условие 1 - ок");
    
   if(close < Sig_Up[1]&& Bid > Sig_Up[0]) // if (Rez >= 0 && Rez_1< 0)                
     { Print ("условие 2 - ок");

   }
StepMA_Line
StepMA_Line
  • www.mql5.com
Индикатор StepMA, выполненный в виде скользящей средней.
 
Sergey:

Долго бьюсь вроде бы над простой вещью. Нужно прописать 2 условия на покупку по сигналам индикатора StepMA_Line https://www.mql5.com/ru/code/560 :

если линия на 1 баре была красной, а на 0 баре стала зеленой

если цена закрытия 1 бара меньше  цены "зеленой" линии на первом баре и Бид больше цены "зеленой" линии нулевого бара, то............

По отдельности условия отрабатывают, вместе не хотят...Помогите разобраться

а правильно расставленные скобки где?

 
Фигурные скобки перекос?
 
if((условие 1)&&(условие2)) тогда счастье настанет...
 
Vasiliy Pritchin:
if((условие 1)&&(условие2)) тогда счастье настанет...

Зачем так делать?

 
Aleksandr Morozov:
Фигурные скобки перекос?

Да, фигурными скобками разделять условия

 
Sergey:

Долго бьюсь вроде бы над простой вещью. Нужно прописать 2 условия на покупку по сигналам индикатора StepMA_Line https://www.mql5.com/ru/code/560 :

если линия на 1 баре была красной, а на 0 баре стала зеленой

если цена закрытия 1 бара меньше  цены "зеленой" линии на первом баре и Бид больше цены "зеленой" линии нулевого бара, то............

По отдельности условия отрабатывают, вместе не хотят...Помогите разобраться

как я понял - Вам нужен сигнал при изменении цвета индикатора ? - если да, сейчас доделаю и на обсуждении индикатора выложу

Снимок

Снимок2

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

вот сюда выложил https://www.mql5.com/ru/forum/4850#comment_20050666

 
double close = NormalizeDouble(iClose(_Symbol,_Period,1),Digits());
double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),Digits());


if(Sig_Up[1] < Sig_Down[1] && Sig_Up[0] > Sig_Down[0]){Print("условие 1 - ок");}
if(close < Sig_Up[1]&& Bid > Sig_Up[0]){Print("условие 2 - ок");} // if (Rez >= 0 && Rez_1< 0)                
    

  
 
Sergey:

Долго бьюсь вроде бы над простой вещью. Нужно прописать 2 условия на покупку по сигналам индикатора StepMA_Line https://www.mql5.com/ru/code/560 :

если линия на 1 баре была красной, а на 0 баре стала зеленой

если цена закрытия 1 бара меньше  цены "зеленой" линии на первом баре и Бид больше цены "зеленой" линии нулевого бара, то............

По отдельности условия отрабатывают, вместе не хотят...Помогите разобраться

ну так принтовать вы умеете - так перед условием принтуйте входные переменные которые сравниваете чтоб знать что они показывают, это же основы основ
 
Evgeniy Chumakov:
Evgeniy Chumakov:

Спасибо, это помогло.