дык они одинаковы где отличие?
HighBuffer[i] = 4, первое условие срабатывает, имя (string)i, второе условие срабатывает, имя (string)i ...
Вроде в том же месте с тем же именем.
Money_Jin:
Всем привет! Помогите, кто в курсе! Есть код (индикатора):
for (i=limit;i<rates_total && !IsStopped();i++) { cv=12; cv2=8; HighBuffer[i]=cv-cv2; // 12-8 = 4 if (HighBuffer[i]<8 && HighBuffer[i]>-8) // if (4<8 && 4>-8) вернет TRUE, объект будет создан, стили установлены { ObjectCreate(0,(string)i,OBJ_HLINE,0,0,Close[i]); ObjectSetInteger(0,(string)i,OBJPROP_COLOR,clrYellow); ObjectSetInteger(0,(string)i,OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,(string)i,OBJPROP_WIDTH,1); ObjectSetInteger(0,(string)i,OBJPROP_BACK,false); } // А вот этот оператор If else уже не хочет работать !!!! // условие не имеет значения, горизонтальные линии НЕ РИСУЮТСЯ!!! В чем тут дело ????? if (HighBuffer[i]<10 && HighBuffer[i]>-10) // if (4<10 && 4>-10) вернет тоже TRUE, объект создан не будет, так как уже существует объект с таким же именем на чарте, стиль, цвет, ширина должны установиться. { ObjectCreate(0,(string)i,OBJ_HLINE,0,0,Close[i]); ObjectSetInteger(0,(string)i,OBJPROP_COLOR,clrYellow); ObjectSetInteger(0,(string)i,OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,(string)i,OBJPROP_WIDTH,1); ObjectSetInteger(0,(string)i,OBJPROP_BACK,false); } }
Вы пытаетесь создать объекты когда условия перекрываются, причем параметры объектов идентичны (цвет, ширина, стиль). Вот и не видите разницу. Рекомендую протрассировать индикатор и убедиться. Все работает в соответствии с написанным кодом.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем привет! Помогите, кто в курсе! Есть код (индикатора):
for(i=limit;i<rates_total && !IsStopped();i++)
{
cv=12;
cv2=8;
HighBuffer[i]=cv-cv2;
if (HighBuffer[i]<8 && HighBuffer[i]>-8)
{
ObjectCreate(0,(string)i,OBJ_HLINE,0,0,Close[i]);
ObjectSetInteger(0,(string)i,OBJPROP_COLOR,clrYellow);
ObjectSetInteger(0,(string)i,OBJPROP_STYLE,STYLE_SOLID);
ObjectSetInteger(0,(string)i,OBJPROP_WIDTH,1);
ObjectSetInteger(0,(string)i,OBJPROP_BACK,false);
}
// А вот этот оператор If else уже не хочет работать !!!!
if (HighBuffer[i]<10 && HighBuffer[i]>-10) // условие не имеет значения, горизонтальные линии НЕ РИСУЮТСЯ!!! В чем тут дело ?????
{
ObjectCreate(0,(string)i,OBJ_HLINE,0,0,Close[i]);
ObjectSetInteger(0,(string)i,OBJPROP_COLOR,clrYellow);
ObjectSetInteger(0,(string)i,OBJPROP_STYLE,STYLE_SOLID);
ObjectSetInteger(0,(string)i,OBJPROP_WIDTH,1);
ObjectSetInteger(0,(string)i,OBJPROP_BACK,false);
}
}