Как реализовать индикатор, который строит горизонтальные линии до момента пересечения с ценой

 

Вопрос к знатокам mql4!!!

Как выставляется значение 2-ой координаты времени по факту пересечения линии с ценой. Создаю индикатор, но я не программист, поэтому тяжело понять, как возвратить время этого факта пересечения. Какой индекс будет не понятно. 

Может кто подскажет функцию!?

Примерно линии строятся как на картинке во вложении

Файлы:
 

Нет волшебной функции для решения такой задачи.

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

 
Dmitry Fedoseev:

Нет волшебной функции для решения такой задачи.

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

А в общих чертах, как можно возвратить время пересечения? Или довольно сложно?
 
Lovkacher:
А в общих чертах, как можно возвратить время пересечения? Или довольно сложно?

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

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

 
Dmitry Fedoseev:

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

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

Для этого надо быть програмером. Я пока не представляю, как это осуществить. Даже как элементу буфера присвоить время не понимаю вообще. А самое главное, что может быть фактом пересечения...
 
Lovkacher:
Для этого надо быть програмером. Я пока не представляю, как это осуществить. Даже как элементу буфера присвоить время не понимаю вообще. А самое главное, что может быть фактом пересечения...
Еще, похоже по картинке, индикатор рисует лини графическими объектами, это еще все усложняет. Тогда во фриланс, или отложить, и начать все с начала по порядку - читать статьи учиться, через пару месяце получится.
 
Lovkacher:

Вопрос к знатокам mql4!!!

Как выставляется значение 2-ой координаты времени по факту пересечения линии с ценой. Создаю индикатор, но я не программист, поэтому тяжело понять, как возвратить время этого факта пересечения. Какой индекс будет не понятно. 

Может кто подскажет функцию!?

Примерно линии строятся как на картинке во вложении

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

а если линий например всего две (4-6, то есть постоянное число) то заводите столько-же буферов и на каждый момент времени записываете в них значения соотв. уровней. Когда цена пробивает уровень #1 (становится например выше), то теперь значенеие #1=#2, #2=#3 а самый дальний расчитывается заново
 
Maxim Kuznetsov:
если в один момент времени таких линий может быть много (заранее не известно сколько) - то только рисовать граф.объектами и чтобы всё работало правильно, без сбоев учитывая перезагрузки индикатора - кода получится очень много и логика весьма витиевата :-)

а если линий например всего две (4-6, то есть постоянное число) то заводите столько-же буферов и на каждый момент времени записываете в них значения соотв. уровней. Когда цена пробивает уровень #1 (становится например выше), то теперь значенеие #1=#2, #2=#3 а самый дальний расчитывается заново
Индикатор, который строит линии я написал, но вторую координату могу выставлять только по массиву Time []. Если определенное условие  из массивов таймсерий соблюдается, то за первую координату беру Time []. И за вторую координату просто минусую число один, получается отрезок от свечи до свечи. А вот как по факту пересечения вторую координату выставлять голову ломаю, не понимаю, что может быть фактом, вроде Bid или Ask, но как  по ним найти время или даже индекс бара нет соображений даже. Индикатор основан на трендовых горизонтальных линиях, то есть строятся графические объекты
 
Lovkacher:
Индикатор, который строит линии я написал, но вторую координату могу выставлять только по массиву Time []. Если определенное условие  из массивов таймсерий соблюдается, то за первую координату беру Time []. И за вторую координату просто минусую число один, получается отрезок от свечи до свечи. А вот как по факту пересечения вторую координату выставлять голову ломаю, не понимаю, что может быть фактом, вроде Bid или Ask, но как  по ним найти время или даже индекс бара нет соображений даже. Индикатор основан на трендовых горизонтальных линиях, то есть строятся графические объекты
Копай в этом направлении. Получаешь цену линии на указанном баре и сравниваешь с текущей ценой. Если произошло пересечение, то ObjectMove() с указанием новой цены и времени для второй точки привязки.
ObjectGetValueByShift - Графические объекты - Справочник MQL4
ObjectGetValueByShift - Графические объекты - Справочник MQL4
  • docs.mql4.com
ObjectGetValueByShift - Графические объекты - Справочник MQL4
 
Alexey Viktorov:
Копай в этом направлении. Получаешь цену линии на указанном баре и сравниваешь с текущей ценой. Если произошло пересечение, то ObjectMove() с указанием новой цены и времени для второй точки привязки.
Что-то не доходит до меня. Цена линии известна, для этого создается переменная, которая принимает значение цены. Эта переменная встает в первую и вторую координату цены, первая координата времени принимает значение условия,.У меня возникает проблема как раз в нахождении индекса бара по факту пересечения, для того чтобы найти время по сдвигу и выставить значение второй координаты времени
 
Lovkacher:
Что-то не доходит до меня. Цена линии известна, для этого создается переменная, которая принимает значение цены. Эта переменная встает в первую и вторую координату цены, первая координата времени принимает значение условия,.У меня возникает проблема как раз в нахождении индекса бара по факту пересечения, для того чтобы найти время по сдвигу и выставить значение второй координаты времени
Это в истории или в текущее время? В истории можно воспользоваться функцией CopyTime а текущее Time[0]
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
Причина обращения: