Как узнать Цену Трендовой линии в определенный момент времени??

 

Добрый день.

Я только начинаю изучать язык MQL4, прочитав учебник, что дан на сайте, не могу понять как можно программно определить какая цена в определенный момент времени у трендовой линии созданной через ObjectCreate?

Например:

ObjectCreate ("line",2,0,Time1,Price1,Time2,Price2,0,0); // Создам трендовую линию

а теперь хочу знать значение этой линии в момент Time1+1

 
Andrey_Kam >>:

Курить ObjectGet.

 
TheXpert >>:

Курить ObjectGet.

Это первое что пришло мне в голову, но!!

Функция ObjectGet()  

Функция возвращает значение указанного свойства объекта

double ObjectGet(string name, int prop_id)

int prop_id - идентификатор свойства объекта. Может быть любым из значений списка свойств объекта

А в этом Списке свойств есть только Заданные (константные) свойства. через эту функцию нельзя задать требующегося смещения от времени. Следовательно моя задача не решается.

если я напишу так  Price3 =  ObjectGet("line",1) или Price3 =  ObjectGet("line",3) то получу те значения которые я же и задавал при создании объекта.

 
Andrey_Kam >>:

Добрый день.

Я только начинаю изучать язык MQL4, прочитав учебник, что дан на сайте, не могу понять как можно программно определить какая цена в определенный момент времени у трендовой линии созданной через ObjectCreate?

Например:

ObjectCreate ("line",2,0,Time1,Price1,Time2,Price2,0,0); // Создам трендовую линию

а теперь хочу знать значение этой линии в момент Time1+1




Если я вас правильно понял то сначала нужно найти смещение свечи для этого времени затем так price= ObjectGetValueByShift( "line", candle_shift)

вот как можно узнать смещение свечи зная время, возможно есть ошибки

int CandleShift(datetime i_time)
{
 for(int i = 0; i < Bars - 1; i++)
 {
   if(i_time == Time[i])
    return i;
 }
}

Возможно этот цикл можно заменить стандартной функцией но такой не знаю....

 
al.k >>:


Если я вас правильно понял то сначала нужно найти смещение свечи для этого времени затем так price= ObjectGetValueByShift( "line", candle_shift)

вот как можно узнать смещение свечи зная время, возможно есть ошибки

Возможно этот цикл можно заменить стандартной функцией но такой не знаю....

Похоже это то что нужно! Спасибо.

 

А уровнением из геометрии средней школы не получится?

 
Andrey_Kam >>:

если я напишу так Price3 = ObjectGet("line",1) или Price3 = ObjectGet("line",3) то получу те значения которые я же и задавал при создании объекта.

Да, прочитал по диагонали. Тогда, как написали чуть выше. Бар можно узнать с помощью iBarShift.

 
price = ObjectGetValueByShift( line_name, iBarShift(Symbol(), Period(), time));
с циклом это конечно же была дурость... :)
 
Aleksey Kravtsov:
с циклом это конечно же была дурость... :)
Спасибо огромное!