Укажите полный код создания объекта, пожалуйста.
Укажите полный код создания объекта, пожалуйста.
вот простой пример
//+------------------------------------------------------------------+
//| Custom Moving Average.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/
#property indicator_chart_window
int i,s,x1;
double y1,y2;
color col=Black;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
//---------------------------------------------------------
int init()
{
fibo();
return(0);
}
//---------------------------------------------------------
int deinit()
{
ObjectDelete("fibo1");
return(0);
}
//---------------------------------------------------------
int start()
{
fibo();
return(0);
}
//+------------------------------------------------------------------+
int fibo()
{
x1=Time[0];
y1=Open[0];
y2=Open[30];
ObjectCreate("fibo1", OBJ_FIBO, 0, x1, y1, x1, y2);
ObjectSet("fibo1",OBJPROP_COLOR,CLR_NONE); // без цвета
ObjectSet("fibo1",OBJPROP_LEVELCOLOR,col); // цвет уровней
ObjectSet("fibo1",OBJPROP_RAY,0); // без луча
//ObjectSet("fibo1",OBJPROP_FIBOLEVELS,6); это не работает?!
s=ObjectGet("fibo1",OBJPROP_FIBOLEVELS);
for (i=0;i<=s;i++)
{
ObjectSetFiboDescription("fibo1",i,""); // это работает со второго прогона?!
}
return(0);
}
Спасибо...
с описанием уровней теперь понятно...
еще бы вот с количеством уровней разобраться...
еще бы вот с количеством уровней разобраться...
10 дней назад обсуждали здесь: "Выложен исправленный билд 194 от 23 июня"
===
Объект FIBO создаётся с нулевым количеством уровней. То есть, объект "сырой" и требует установок.
Если Вы сразу после создания этого объекта вызовите функцию ObjectsRedraw, то при перерисовке у объекта с нулевым количеством уровней будут созданы уровни по умолчанию.
Либо установите свойство OBJPROP_FIBOLEVELS. И уже после этого устанавливайте нужные значения уровней
===
еще бы вот с количеством уровней разобраться...
10 дней назад обсуждали здесь: "Выложен исправленный билд 194 от 23 июня"
===
Объект FIBO создаётся с нулевым количеством уровней. То есть, объект "сырой" и требует установок.
Если Вы сразу после создания этого объекта вызовите функцию ObjectsRedraw, то при перерисовке у объекта с нулевым количеством уровней будут созданы уровни по умолчанию.
Либо установите свойство OBJPROP_FIBOLEVELS. И уже после этого устанавливайте нужные значения уровней
===
ObjectSet("fibo1",OBJPROP_FIBOLEVELS,6); //это не работает ?! ?????? !!!!!!!!!!
Эта строка в примере кода закоментирована.
Если ее раскоментировать,то вместо фибо со стандартными уронями
получается фибо с нулевым уровнем и никакие дальнейшие действия не
могут его оживить...
Какие дальнейшие действия? Я не вижу ни одной строчки, задающей значение для хотя бы одного уровня.
Например:
Например:
ObjectSet("fibo1", OBJPROP_FIRSTLEVEL+2,161.8);
Какие дальнейшие действия? Я не вижу ни одной строчки, задающей значение для хотя бы одного уровня.
Например:
Например:
ObjectSet("fibo1", OBJPROP_FIRSTLEVEL+2,161.8);
//+------------------------------------------------------------------+
//| Custom Moving Average.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/
#property indicator_chart_window
int i,s,z,x1;
double y1,y2;
color col=Black;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
//---------------------------------------------------------
int init()
{
fibo();
return(0);
}
//---------------------------------------------------------
int deinit()
{
ObjectDelete("fibo1");
return(0);
}
//---------------------------------------------------------
int start()
{
fibo();
return(0);
}
//+------------------------------------------------------------------+
int fibo()
{
x1=Time[0];
y1=Open[0];
y2=Open[30];
ObjectCreate("fibo1", OBJ_FIBO, 0, x1, y1, x1, y2);
ObjectSet("fibo1",OBJPROP_COLOR,CLR_NONE); // без цвета
ObjectSet("fibo1",OBJPROP_LEVELCOLOR,col); // цвет уровней
ObjectSet("fibo1",OBJPROP_RAY,0); // без луча
ObjectSet("fibo1",OBJPROP_FIBOLEVELS,6); //это не работает?!
ObjectSet("fibo1",OBJPROP_FIRSTLEVEL+0,0.0);
ObjectSetFiboDescription("fibo1",z,"0");
ObjectSet("fibo1",OBJPROP_FIRSTLEVEL+1,23.6);
ObjectSetFiboDescription("fibo1",z,"1");
ObjectSet("fibo1",OBJPROP_FIRSTLEVEL+2,38.2);
ObjectSetFiboDescription("fibo1",z,"2");
ObjectSet("fibo1",OBJPROP_FIRSTLEVEL+3,50.0);
ObjectSetFiboDescription("fibo1",z,"3");
ObjectSet("fibo1",OBJPROP_FIRSTLEVEL+4,61.8);
ObjectSetFiboDescription("fibo1",z,"4");
ObjectSet("fibo1",OBJPROP_FIRSTLEVEL+5,76.4);
ObjectSetFiboDescription("fibo1",z,"5");
ObjectSet("fibo1",OBJPROP_FIRSTLEVEL+6,100.0);
ObjectSetFiboDescription("fibo1",z,"6");
return(0);
}
Что не так?
Несколько вещей не так.
Во-первых, оформляйте исходный код в тегах code
Во-вторых, уровней у Вас 7, а не 6.
В-третьих, вместо z вставляйте порядковый номер уровня от 0 до 6.
При чёрно-белой схеме всё нормально. (цвет уровней - чёрный)
Во-первых, оформляйте исходный код в тегах code
Во-вторых, уровней у Вас 7, а не 6.
В-третьих, вместо z вставляйте порядковый номер уровня от 0 до 6.
При чёрно-белой схеме всё нормально. (цвет уровней - чёрный)
Кстати, обнаружили интересный эффект. При перекомпиляции пользовательского индикатора и последующим запуском инициализации в функции init оказываются недоступны текущие таймсерии.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В программе создаю объект
ObjectCreate("fibo1", OBJ_FIBO, 0, x1, y1, x1, y2);
Некоторые свойства нового объекта удается установить сразу
ObjectSet("fibo1",OBJPROP_COLOR,CLR_NONE); // без цвета
ObjectSet("fibo1",OBJPROP_LEVELCOLOR,col); // цвет уровней
ObjectSet("fibo1",OBJPROP_RAY,0); // без луча
Некоторые, например описатели уровней , только со второго прогона
ObjectSetFiboDescription("fibo1",i,""); // без описания
А некоторые вообще не работают, например попытка установить количество уровней
ObjectSet("fibo1",OBJPROP_FIBOLEVELS,i);
приводит к тому,что объект Fibo вообще сворачивается в один нулевой уровень...
Прошу разработчиков добавить в описание,как правильно употреблять эти свойства или
исправить, если это ошибки...