[Решено] Создание Фибо-канала без допуровней - как?

 

Всем здраствуйте!

Делаю фибо-канал вот по этой статье https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_fibochannel

Канал рисуется с уронями 0.6 / 1 / 1.6 / 2.6

А как бы сделать так, чтобы дополнительных уровней не было? Вот так:

Спасибо!

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_FIBOCHANNEL
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_FIBOCHANNEL
  • www.mql5.com
//| Cоздает "Канал Фибоначчи" по заданным координатам                |               time1=0,                             price1=0,                          time2=0,                             price2=0,                          time3=0,                             price3=0,                         width=1,            ...
 
Evgenii Demidov:

Всем здраствуйте!

Делаю фибо-канал вот по этой статье https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_fibochannel

Канал рисуется с уронями 0.6 / 1 / 1.6 / 2.6

А как бы сделать так, чтобы дополнительных уровней не было? Вот так:

Спасибо!

Но это не статья, а документация. Смотрите такие строки

//--- установим количество уровней
   ObjectSetInteger(chart_ID,name,OBJPROP_LEVELS,levels);
они и определяют количество уровней. И затем всем уровням назначаются значения. 
 
Alexey Viktorov:

Но это не статья, а документация. Смотрите такие строки

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

Алексей, спасибо за ответ!

Блок кода с этой строкой можно вообще удалить и ничего не изменится, эти уровни так же рисуются

//+------------------------------------------------------------------+
//| Задает количество уровней и их параметры                         |
//+------------------------------------------------------------------+
bool FiboChannelLevelsSet(int             levels,             // количество линий уровня
                          double          &values[],          // значения линий уровня
                          color           &colors[],          // цвет линий уровня
                          ENUM_LINE_STYLE &styles[],          // стиль линий уровня
                          int             &widths[],          // толщина линий уровня
                          const long      chart_ID=0,         // ID графика
                          const string    name="FiboChannel") // имя объекта
  {
//--- проверим размеры массивов
   if(levels!=ArraySize(colors) || levels!=ArraySize(styles) ||
      levels!=ArraySize(widths) || levels!=ArraySize(widths))
     {
      Print(__FUNCTION__,": длина массива не соответствует количеству уровней, ошибка!");
      return(false);
     }
//--- установим количество уровней
   ObjectSetInteger(chart_ID,name,OBJPROP_LEVELS,levels);
//--- установим свойства уровней в цикле
   for(int i=0;i<levels;i++)
     {
      //--- значение уровня
      ObjectSetDouble(chart_ID,name,OBJPROP_LEVELVALUE,i,values[i]);
      //--- цвет уровня
      ObjectSetInteger(chart_ID,name,OBJPROP_LEVELCOLOR,i,colors[i]);
      //--- стиль уровня
      ObjectSetInteger(chart_ID,name,OBJPROP_LEVELSTYLE,i,styles[i]);
      //--- толщина уровня
      ObjectSetInteger(chart_ID,name,OBJPROP_LEVELWIDTH,i,widths[i]);
      //--- описание уровня
      ObjectSetString(chart_ID,name,OBJPROP_LEVELTEXT,i,DoubleToString(100*values[i],1));
     }
//--- успешное выполнение
   return(true);
  }
 

Они рисуются по последнему варианту применения. Или по умолчанию, как вручную рисуешь. А чтобы изменить надо применить что-то аналогичное этой функции. Для меня проще написать свою чем использовать универсальную из документации. Если у вас нет таких тараканов, можете использовать и из документации.

 
Alexey Viktorov:

Они рисуются по последнему варианту применения. Или по умолчанию, как вручную рисуешь. А чтобы изменить надо применить что-то аналогичное этой функции. 

К сожалению, тоже не то: нарисовал свой канал вручную (синий) после запустил скрипт (красный) :(


 
Пилите Шура, пилите. ©
 
kofesutra:

К сожалению, тоже не то: нарисовал свой канал вручную (синий) после запустил скрипт (красный) :(


Меняйте уровни - лишнее в печь  я создал свои  : ***

вот они упразнили уровни : ***

 
Vladimir Pristai:

Меняйте уровни - лишнее в печь  я создал свои  : ***

вот они упразнили уровни : ***

Владимир, скажите, как их удалить? Свои я сам нарисую.

 
kofesutra:

Владимир, скажите, как их удалить? Свои я сам нарисую.

Их не надо удалять. Просто надо назначить их количество и параметры каждого уровня.

 
Alexey Viktorov:

Их не надо удалять. Просто надо назначить их количество и параметры каждого уровня.

;)

Понял:

double m_Levels[2] = {-0.333, -0.666};
color m_Colors[2] = {clrMaroon, clrMaroon};
ENUM_LINE_STYLE m_Styles[2] = {STYLE_DOT, STYLE_DOT};
int m_Width[2] = {1, 1};

FiboChannelLevelsSet(2,m_Levels,m_Colors,m_Styles,m_Width,0,"Bottom_Channel");

Совсем без уровней не получается, но можно указать только один (и массивы все с одной ячейкой :) ) и поставить его одинокого на "ноль" фибо-канала.