как нарисовать прямоугольник...

 

Есть индикатор снимающий через iCustom данные по зонам Res\Sup старших ТФ и рисующий эти зоны на младших ТФ (в виде линий). Очень хоцца нарисовать эти зоны не в виде линий, но в виде прямоугольников.

Вот код индикатора (в данном случае, он снимает данные с Дневного чарта и переносит на младший ТФ):

int start()
{
datetime TimeArray[];
int i,shift,limit,y=0,counted_bars=IndicatorCounted();

ArrayCopySeries(TimeArray,MODE_TIME ,Symbol(),PERIOD_D1); 

limit=Bars-counted_bars;

for(i=0,y=0;i<limit;i++)
{
if (Time[i]<TimeArray[y]) y++; 
{
top_Rez[i] = iCustom(NULL,PERIOD_D1,"Zone",0,y);
bot_Rez[i] = iCustom(NULL,PERIOD_D1,"Zone",1,y);
top_Sup[i] = iCustom(NULL,PERIOD_D1,"Zone",2,y);
bot_Sup[i] = iCustom(NULL,PERIOD_D1,"Zone",3,y);
}
}
return(0);
}

Информация собранная мной по использованию ObjectCreate привела меня к следующему:

{
ObjectCreate("R-zone", OBJ_RECTANGLE, 0, Время первой координаты, top_Rez[i], Время второй координаты, bot_Rez[i]);
ObjectSet("R-zone", OBJPROP_COLOR, Blue);

ObjectCreate("Su-zone", OBJ_RECTANGLE, 0, Время первой координаты, top_Sup[i], Время второй координаты, bot_Sup[i]);
ObjectSet("Su-zone", OBJPROP_COLOR, Red);
}

 Вопрос, который я никак не могу разрешить, как определить (правильно записать) "Время первой координаты", "Время второй координаты"...

В данном случае, если индикатор вешается на Н1-чарт, "Время первой координаты" = 00-часовому бару; "Время второй координаты" = 23-часовому бару (или текущему бару, если текущий день еще не закончен)....

Подскажите, пожалуйста, как  решить данную проблему...

 

Как построить и снять все решено смотри здесь

https://www.mql5.com/ru/forum/124250

Вся тема как раз построение прямоугольника

 
baltik >>:

Как построить и снять все решено смотри здесь

https://www.mql5.com/ru/forum/124250

Вся тема как раз построение прямоугольника



Честно говоря, построение прямоугольника там и в помине нет..... А разбираться во всяких ТС мне не интересно....

 Повторю вопрос: подскажите, как правильно задавать  Временные координаты при построении ректангла...

 
не вдавался в подробности, но по ходу время будет Time[i] где i соответствует номеру бара, где находится значение цены
 
Techno >>:
не вдавался в подробности, но по ходу время будет Time[i] где i соответствует номеру бара, где находится значение цены



ВОПРОС: может более правильно будет:

Время первой координаты [i] = iTime( Symbol(), PERIOD_D1, 0 ); 

??????????????????

 

А как тогда задать  "Время второй координаты" ????????????????

 
нет не более.Тебе нужен порядковый номер бара, который соответствует точки цены индикатора, который ты используешь, записываешь номер в Time[] и все.(Это с учетом если нету других косяков) Кстати ты хочешь типо дофига этих прямоугольников нарисовать? Это плохая идея, неточности будут появляться и баги, не слишком корректно этот инструмент работает, когда много копий.
 
Techno >>:
нет не более.Тебе нужен порядковый номер бара, который соответствует точки цены индикатора, который ты используешь, записываешь номер в Time[] и все.(Это с учетом если нету других косяков) Кстати ты хочешь типо дофига этих прямоугольников нарисовать? Это плохая идея, неточности будут появляться и баги, не слишком корректно этот инструмент работает, когда много копий.



Ничего не понял.....

Спрошу тогда по-другому:

А как определить  порядковый номер бара, который соответствует точки цены индикатора, который я использую, для записи номера в Time[]?

 
Azerus >>:



Ничего не понял.....

Спрошу тогда по-другому:

А как определить порядковый номер бара, который соответствует точки цены индикатора, который я использую, для записи номера в Time[]?

порядковый номер находится в цикле, он там и увеличивается. это "y"
 
Techno >>:
порядковый номер находится в цикле, он там и увеличивается. это "y"



Хорошо, пока получается так:

{
ObjectCreate("R-zone", OBJ_RECTANGLE, 0, Time[i], top_Rez[i], Время второй координаты, bot_Rez[i]);
ObjectSet("R-zone", OBJPROP_COLOR, Blue);

ObjectCreate("Su-zone", OBJ_RECTANGLE, 0, Time[i], top_Sup[i], Время второй координаты, bot_Sup[i]);
ObjectSet("Su-zone", OBJPROP_COLOR, Red);
}

 А как тогда записать, что "Время второй координаты" = 23-часовому бару (или текущему бару, если текущий день еще не закончен)....

 
Azerus >>:



Хорошо, пока получается так:

А как тогда записать, что "Время второй координаты" = 23-часовому бару (или текущему бару, если текущий день еще не закончен)....

прикрепи фотку терминала с этим индикатором и прямоугольником(с явно выделенными 1 и 2 ой точками), посмотрим.
 
Techno >>:
прикрепи фотку терминала с этим индикатором и прямоугольником(с явно выделенными 1 и 2 ой точками), посмотрим.



Голубая область внизу закрашена вручную.

В данном случае, зоны устанавливаются с началом первого часа новых суток и заканчиваются на последнем часе суток....

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