Ошибка прорисовки фибо уровней при программном задании стиля и толщины линий уровней.

 

Необходимо в программе задавать стиль и толщину линий фибо уровней.

Функция ObjectSet(nameObj, OBJPROP_LEVELSTYLE, X) вообще ничего не меняет, какое бы значение X ни было задано.

При любом значении X стиль - STYLE_DOT

Функция ObjectSet(nameObj, OBJPROP_LEVELWIDTH, X) меняет толщину линий при значаниях X>1.

Создаются фибо уровни так: ObjectCreate(nameObj,OBJ_FIBO,0,t1,f1,t2,f2).

При этом не задается количество и значения уровней. Количество и значения уровней берутся по умолчанию.

Просьба к разработчикам Метатрейдера проверить работу вышеуказанных функций.

Используется МТ4 билд 223

 

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

int start()
  {
   ObjectCreate("test_fibo",OBJ_FIBO,0,Time[50],Low[50],Time[1],High[1]);
//----
   ObjectSet("test_fibo",OBJPROP_FIBOLEVELS,3);
   ObjectSet("test_fibo",OBJPROP_FIRSTLEVEL,0.0);
   ObjectSet("test_fibo",OBJPROP_FIRSTLEVEL+1,0.5);
   ObjectSet("test_fibo",OBJPROP_FIRSTLEVEL+2,1.0);
//----
   ObjectSet("test_fibo",OBJPROP_LEVELSTYLE,STYLE_DASHDOTDOT);
   ObjectSet("test_fibo",OBJPROP_LEVELWIDTH,1);
   ObjectSet("test_fibo",OBJPROP_LEVELCOLOR,Yellow);
//----
   ObjectSet("test_fibo",OBJPROP_STYLE,STYLE_DASH);
   ObjectSet("test_fibo",OBJPROP_WIDTH,1);
   ObjectSet("test_fibo",OBJPROP_COLOR,Blue);
//----
   WindowRedraw();

   return(0);
  }
Создаём объект, говорим, что у него ровно 3 уровня, назначаем каждому уровню значение, задаём стиль, толщину и цвет для уровней, задаём стиль, толщину и цвет диагональной линии. Отрисовываем.
 

Спасибо. Моя ошибка.

Поленился писать код поновой. Скопировал из другого своего индикатора создание объекта.

Строчку лишнюю скопировал ObjectSet(nameObj,OBJPROP_LEVELSTYLE,STYLE_DOT) в конце кода по созданию объекта.

Поэтому и не получалось нормально работать с OBJPROP_LEVELSTYLE.

Надо быть более внимательным.

Как расслабишься, так сразу в историю попадаешь. :)

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