Интересная задача по выявлению времени цены в баре.

 

Тут задался вопросом, а как получить конкретное время, когда рыночная цена касалась какого либо заданного ценового уровня.

Пример задачи на скрине


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

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


Кто может помочь в таком нелегком деле, а может уже у кого то есть готовый кусок кода, поделитесь пожалуйста

 

Это знаете на подобии открытия позиции.

При открытии позиции мы можем вернуть значения

Цена открытия

Время открытия

и все остальные значения


Вот и тут так же, пришел сигнал по цене 10200, хочется знать в какое это время произошло, что то допедрить не могу как это сделать.

 
Konstantin Seredkin:

Это знаете на подобии открытия позиции.

При открытии позиции мы можем вернуть значения

Цена открытия

Время открытия

и все остальные значения


Вот и тут так же, пришел сигнал по цене 10200, хочется знать в какое это время произошло, что то допедрить не могу как это сделать.

В mql же есть функции получения текущего времени сервера. В OnTick все это отслеживаете и в момент пересечения уровня запоминаете текущее время и все. Например: при старте запомнили текущее значение Ask и Bid (назовем их стартовые Ask и Bid). Затем каждый новый тик проверяете факт пересечения при этом обновляете значения стартовых Ask и Bid. Если пересечение состоялось запоминаете время. 

 
Используйте MqlTick структуру, в которой есть цена и время тика. 
 

Что-то не совсем понятно? Вам в реальном времени надо?

Если да то вообще проблем нет, ставите условие на пересечение и берете текущее время по терминалу.

Если хотите на каком-то графическом объекте реализовать (не буферные стрелки) сделайте имя объекта со временем создания - потом обработаете имя или в свойствах объекта вручную посмотрите.

Если на истории, то вам поможет только тиковая история, которая хранится не очень долго, т.е. сильно гиморно будет. 

 
Roman:
Используйте MqlTick структуру, в которой есть цена и время тика. 

просто дополню: при отсутствии должной глубины тиковой истории (или в MT4), просто используйте младшие тайм-фреймы. Точность подхромает до разрешения младшего ТФ, но это лучше чем ничего

PS/ даже в 5-ке, результат такой операции, полученный от CopyTicks надо сверять по младшим ТФ. Если важен результат :-)

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