Скачать MetaTrader 5

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

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

Добрый день.

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

Например:

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

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

Комбинатор
16382
Комбинатор  
Andrey_Kam >>:

Курить ObjectGet.

Андрей
24
Андрей  
TheXpert >>:

Курить ObjectGet.

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

Функция ObjectGet()  

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

double ObjectGet(string name, int prop_id)

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

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

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

Aleksey Kravtsov
169
Aleksey Kravtsov  
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;
 }
}

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

Андрей
24
Андрей  
al.k >>:


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

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

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

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

Левитин Сергей В.
5163
Левитин Сергей В.  

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

Комбинатор
16382
Комбинатор  
Andrey_Kam >>:

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

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

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