прошу помощи в разъяснении написания индикатора под мт4

 
Доброго всем дня, подскажите пожалуйста, не сильно загружающий компьютер, блок проверки для прекращения отрисовки луча индикатора при касании/пересечении луча ценой. Т.е. идея такая что луч от определенной точки на графике (например 20 января) рисуется вправо и при касании или пересечении луча ценой (к этому же примеру, 21 января или все дни позже) перестает продлеваться на графике. Огромная благодарность за помощь, и огромная просьба, если нет желания помочь то не писать про что-то другое. Такая ситуация возникает часто, я про свои ситуации, может быть у кого то есть более простое решение или более "легкое" решение, так как иногда приходится использовать довольно глубокую историю. 
 
sveta-vsevol:
Доброго всем дня, подскажите пожалуйста, не сильно загружающий компьютер, блок проверки для прекращения отрисовки луча индикатора при касании/пересечении луча ценой. Т.е. идея такая что луч от определенной точки на графике (например 20 января) рисуется вправо и при касании или пересечении луча ценой (к этому же примеру, 21 января или все дни позже) перестает продлеваться на графике. Огромная благодарность за помощь, и огромная просьба, если нет желания помочь то не писать про что-то другое. Такая ситуация возникает часто, я про свои ситуации, может быть у кого то есть более простое решение или более "легкое" решение, так как иногда приходится использовать довольно глубокую историю. 
Без контекста ваш вопрос останется без толкового ответа.
Не ясно как минимум:

  1. Как определяется пробитие ценой луча (раз в бар при его закрытии, или по тикам)
  2. Луч рисуется только когда он пробивается ценой или всегда виден по последний бар до касания луча
 
sveta-vsevol:
не сильно загружающий компьютер
это вам к господину разработчику кода  Волчанскому надо он по судя по нику вам и вашим  "не сильно загружающий компьютер" - зашарит и подскажет...)
 
Petr Zharuk #:
Без контекста ваш вопрос останется без толкового ответа.
Не ясно как минимум:

  1. Как определяется пробитие ценой луча (раз в бар при его закрытии, или по тикам)
  2. Луч рисуется только когда он пробивается ценой или всегда виден по последний бар до касания луча
да тут достаточно касания ценой этого уровня, а если ниже/выше через него пройдет. Стратегия для среднесрока, так что критично только было ли касание или нет. Луч после касания/пробития остается на графике, просто дальше он не рисуется, по сути из луча он становится отрезком. А проверку на касание/пробитие можно смотреть по закрытому бару.
 
Roman Shiredchenko #:
это вам к господину разработчику кода  Волчанскому надо он по судя по нику вам и вашим  "не сильно загружающий компьютер" - зашарит и подскажет...)
так зачем тут это сообщение ? вы же прекрасно понимаете, что код можно написать по разному, и в силу умения один будет более "тяжелый", а другой "полегче" и естественно будет разная нагрузка на комп. У каждого человека есть выбор, не нравится - не пользуйтесь мт4/мт5 или пишите разработчику, как вы тут советуете. Как ваш ответ соответствует теме данной ветке ? Мне тоже не нравится ряд моментов, как в БЕСПЛАТНЫХ терминалов, ну и некоторые вопросы по жизни, только для чего это писать тут ? Для этих целей существует множество других веток, вот там и нужно плакаться.
 
sveta-vsevol:
Доброго всем дня, подскажите пожалуйста, не сильно загружающий компьютер, блок проверки для прекращения отрисовки луча индикатора при касании/пересечении луча ценой. Т.е. идея такая что луч от определенной точки на графике (например 20 января) рисуется вправо и при касании или пересечении луча ценой (к этому же примеру, 21 января или все дни позже) перестает продлеваться на графике. Огромная благодарность за помощь, и огромная просьба, если нет желания помочь то не писать про что-то другое. Такая ситуация возникает часто, я про свои ситуации, может быть у кого то есть более простое решение или более "легкое" решение, так как иногда приходится использовать довольно глубокую историю. 
В первую очередь надо определиться с какой стороны в какую ждём касание. С какой свечи начинается контроль. Если у вас луч как графический объект, то это не правильно. Для наглядности пусть будет, но контроль должен вестись по значению переменной. А дальше простое условие, в OnInit() цикл по свечкам, а потом на каждом тике, if(текущее значение минус предыдущее значение больше или равно 0): Пересечение в другую сторону, другое if()
 
Alexey Viktorov #:
В первую очередь надо определиться с какой стороны в какую ждём касание. С какой свечи начинается контроль. Если у вас луч как графический объект, то это не правильно. Для наглядности пусть будет, но контроль должен вестись по значению переменной. А дальше простое условие, в OnInit() цикл по свечкам, а потом на каждом тике, if(текущее значение минус предыдущее значение больше или равно 0): Пересечение в другую сторону, другое if()
про сторону, Значение не принципиально , скажем от открытия Свечи Н1 каждый день идет отрисовка от точки открытия свечи и далее  вправо до касания/пересечения свечей примерно так (только тут логика не совсем такая как нужно), тоже можно https://c.mql5.com/18/68/cb-1__25.png , т.е. пусть это будет не Луч, а отрезок, либо точки, либо квадраты с кодом "160" и т.д. 
 
sveta-vsevol:
Доброго всем дня, подскажите пожалуйста, не сильно загружающий компьютер, блок проверки для прекращения отрисовки луча индикатора при касании/пересечении луча ценой. Т.е. идея такая что луч от определенной точки на графике (например 20 января) рисуется вправо и при касании или пересечении луча ценой (к этому же примеру, 21 января или все дни позже) перестает продлеваться на графике. Огромная благодарность за помощь, и огромная просьба, если нет желания помочь то не писать про что-то другое. Такая ситуация возникает часто, я про свои ситуации, может быть у кого то есть более простое решение или более "легкое" решение, так как иногда приходится использовать довольно глубокую историю. 

Если луч задается во координатам, то стройте трендовую линию с продолжением вправо. При появлении нового бара проверяем условие если цена больше чем начальная координата + скорость роста * количество прошедших баров, меняем свойство продолжение вправо на false, конечную точку на достигнутую.

А вот при построении луча по углу - тут могут быть сложности - угол в скорость луча просто так не пересчитаешь...