Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Делись ссылками с других ресурсов. Теперь они имеют описание!
magistor
96
magistor 2014.11.19 07:51 

Добрый день!

Создаю линии поддержки с помощью функци в советнике (не индикатора)

void Setline (string sh, datetime tm, double pr, datetime tm1, double pr1, color clr, bool up, int p)
{
  string name ;
        if(p>4)p=4;
  if(up){
  name = "-" + (string)sh;
        ObjectCreate (name, OBJ_TREND, 0, tm, pr, tm1, pr1, clr);
        ObjectSetInteger(0,name, OBJPROP_STYLE, STYLE_SOLID);
        ObjectSetInteger(0,name,OBJPROP_WIDTH,p);
        ObjectSet (name, 10, false);
        ObjectSet (name, 6, Yellow); }
        else{   
        name = "+" + (string)sh;
        ObjectCreate (name, OBJ_TREND, 0, tm, pr, tm1, pr1, clr);
        ObjectSetInteger(0,name, OBJPROP_STYLE, STYLE_SOLID);
        ObjectSetInteger(0,name,OBJPROP_WIDTH,p);
        ObjectSet (name, 10, false);
        ObjectSet (name, 6, LightBlue); }
}

Далее редактирую войства линии  (кусок кода)

for (int j= ObjectsTotal(OBJ_TREND); j>=0 ;j--)
{
// Бла Бла Бла
                int debug = ObjectGetInteger(0,_objNameJ, OBJPROP_STYLE);    // при запуске дебага в наблюдении debug  есть 0
                ObjectSet (_objNameJ, OBJPROP_COLOR, clrGray);
                if(ObjectSetInteger(0,_objNameJ, OBJPROP_STYLE, STYLE_DASH)==false)
                  Alert(_objNameJ+" <-Обект не хочет становиться STYLE_DASH "+GetLastError());  
                debug = ObjectGetInteger(0,_objNameJ, OBJPROP_STYLE);        // при запуске дебага в наблюдении debug  есть 1  
}

Всё отрабатывает без ошибок, но стиль линии не изменяется при работе,ObjectSetInteger возвращает true  и алерт не выскакивает. Более того, если выделить трендевую линию, заглянуть в свойства, то увидим следующую картину (см. прикреплённый файл картинку),пременная _LastError все время в наблюдении равна нулю.

запрещено для редактирования

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

Собственно вопрос: как победить эту... фитчу?  

Версия метатрейдера 4.0 билд 745

Версия метаедитора 5.0. билд 996

Algo
128
Algo 2014.11.19 10:43  
pako:

ошибка

Это не ошибка, можно и так, и так. Обе функции рабочие.

magistor

стиль линии меняется из кода только в том случае, если её толщина равна 1. Уж не знаю, баг это или фича. Но это так. 

Установите толщину своих линий в 1, и всё заработает. 

magistor
96
magistor 2014.11.19 11:29  
Sergey_Mechanic:

Это не ошибка, можно и так, и так. Обе функции рабочие.

magistor

стиль линии меняется из кода только в том случае, если её толщина равна 1. Уж не знаю, баг это или фича. Но это так. 

Установите толщину своих линий в 1, и всё заработает. 

Ха, спасибо, буду иметь ввиду! :)
pako
3343
pako 2014.11.19 12:08  
Sergey_Mechanic:

Это не ошибка, можно и так, и так. Обе функции рабочие.

magistor

стиль линии меняется из кода только в том случае, если её толщина равна 1. Уж не знаю, баг это или фича. Но это так. 

Установите толщину своих линий в 1, и всё заработает. 

моя ошибка
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий