Как научиться создавать графические объекты? MQL4. - страница 6

 
         string   shortName="fraktalSDV"; 
         long   chart_ID=ChartID();        // ID графика
         int win_idx=ChartWindowFind(chart_ID,shortName);
         string nameobj=TimeToStr(Time[0]);
         string name=Time[0]+1; 
         Print("indikator=",win_idx);         
            //--- сбросим значение ошибки
            ResetLastError();
            //--- создадим трендовую линию по заданным координатам
           if(!ObjectCreate(chart_ID,nameobj,OBJ_TREND,win_idx,Time[index],maximum1,Time[1],TRENDmax[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            } 
           if(!ObjectCreate(chart_ID,name,OBJ_TREND,win_idx,Time[min1],minimum1,Time[1],Low_[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            }       
           ObjectSet(nameobj,OBJPROP_RAY,false); 
           ObjectSet(name,OBJPROP_RAY,false);
Минус 1 все равно. Еще пробовал название индикатора все буквы маленькие сделать, тоже ничего.
 
forexman77:
Минус 1 все равно. Еще пробовал название индикатора все буквы маленькие сделать, тоже ничего.
А присваивали win_idx=1; ? Просто взять, и конкретно задать номер подокна.
 
Artyom Trishkin:
А присваивали win_idx=1; ? Просто взять, и конкретно задать номер подокна.

Пробовал, не помогло. Может дело в индикаторе, но сделки по нему вроде корректно открываются?

Завтра продолжу, спать уже пора.  

 

Прочитал, в документации, что лучше делать название индикатора с параметрами.

Сделал в индикаторе так:

IndicatorSetString(INDICATOR_SHORTNAME,"fraktalsdv("+Period_MA_1+","+ma_shift+","+price+","+Period_+")"); 

 в советнике:

string   shortName="fraktalsdv("+Period_MA_1+","+ma_shift+","+price+","+Period_+")"; 

 Окно с индикатором не обнаружено.

 
forexman77:

Прочитал, в документации, что лучше делать название индикатора с параметрами.

Сделал в индикаторе так:

 в советнике:

 Окно с индикатором не обнаружено.

Явно проблемы в Вашем коде, так как тестовый скрипт запросто находит стандартные индикаторы, которые отображаются в подокне.
 
Karputov Vladimir:
Явно проблемы в Вашем коде, так как тестовый скрипт запросто находит стандартные индикаторы, которые отображаются в подокне.

Но, сделки открываются, а они основываются на индикаторе. И индикатор при выводе принта в советнике выводит корректные значения.

Мне почему-то кажется, все дело в том, что в индикаторе нет строки  #property strict(с ней он не работает)

 
forexman77:

Но, сделки открываются, а они основываются на индикаторе. И индикатор при выводе принта в советнике выводит корректные значения.

Мне почему-то кажется, все дело в том, что в индикаторе нет строки  #property strict(с ней он не работает)

Нет, не по этому. Попробуйте функцию WindowFind()
 
Artyom Trishkin:
Нет, не по этому. Попробуйте функцию WindowFind()
Возвращает -1.
 
forexman77:
Возвращает -1.

Ошибки ищите. Индикаторы нормально ищутся через 

int  ChartWindowFind( 
   long     chart_id,                  // идентификатор графика 
   string   indicator_shortname        // короткое имя индикатора, см INDICATOR_SHORTNAME

 
forexman77:

Окно с индикатором не обнаружено.

Вы хотите найти на графике индикатор который советник создает для расчетов? Удачи.