Есть ли скрипт, рисующий тренд?

 

Уважаемые специалисты по MQL4!

Можно попросить вас помочь новичку? Не дадите ссылку на текст скрипта, индикатора или просто кусок кода на MQL4, который рисует линии тренда на отрезке графика в том виде, как это описано по ссылке https://www.metatrader5.com/ru/terminal/help/objects/lines/trend_line? Я за час не смог найти.

Я попытался написать скрипт, который рисует максимально возможно длинный восходящий тренд по телам свечей на отрезке графика, но он не срабатывает (прилагаю). Буду рад, если укажете на мои ошибки. Заранее благодарен.

Martes

 

Похоже, что вопрос слишком сложный.

У меня еще вопрос. Есть ли в MT4 ограничения на длительность выполнения скрипта?

 
Вопрос очень сложный... Проблема в том, что никто не знает что такое тренд. Если ты сможешь это внятно сформулировать, чего никому пока не удалось, то запрограммировать проблем не составит.
 
Посмотри на этот индикатор
Файлы:
_linestat.mq4  6 kb
 
Vinin:
Посмотри на этот индикатор

Vinin, спасибо за индикатор. К сожалению, это не вполне то, что описано в https://www.metatrader5.com/ru/terminal/help/objects/lines/trend_line. В любом случае в данном тобой коде индикатора есть много интересного. Можешь дать ссылку на описание принципов, по которым он построен?
 
timbo:
Вопрос очень сложный... Проблема в том, что никто не знает что такое тренд. Если ты сможешь это внятно сформулировать, чего никому пока не удалось, то запрограммировать проблем не составит.


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

1. Дан график изменения цены P(t) на отрезке времени [A, B] (т. е. на отрезке от A до B).

2. Нужно найти максимально длинный отрезок [u, v] внутри отрезка [A, B] такой, что весь график изменения цены на отрезке [A, B] лежит по одну сторону от прямой, соединяющей на координатной плоскости точки графика (u, P(u)) и (v, P(v)). Более точно и схоластически говоря, в одной из открытых полуплоскостей, на которые делит плоскость данная прямая, не должно быть точек графика изменения цены на отрезке [A, B].

Это не совсем то, что я пытался изобразить своим скриптом, но меня это устроит.

 
Интересная трактовка... 
А откуда взять точки А и Б? Получается, что в точке Б тренд изменился, но почему именно в Б, а не на 3-10-20 баров раньше или позже? 
Если задать точки начала и конца, то все так просто, что даже не интересно. Можно, например, рассчитать линию регрессии по нижним/верхним теням и сдвинуть ее вниз/вверх на три сигмы, вот и будет твоя линия максимальной длины. А что толку? Если знать точки начала и конца тренда, то тогда можно и определение тренда придумать... или уже ничего не нужно будет :-) 
 
timbo:
Интересная трактовка...
А откуда взять точки А и Б? Получается, что в точке Б тренд изменился, но почему именно в Б, а не на 3-10-20 баров раньше или позже?
Если задать точки начала и конца, то все так просто, что даже не интересно. Можно, например, рассчитать линию регрессии по нижним/верхним теням и сдвинуть ее вниз/вверх на три сигмы, вот и будет твоя линия максимальной длины. А что толку? Если знать точки начала и конца тренда, то тогда можно и определение тренда придумать... или уже ничего не нужно будет :-)

Точки A и B берем из внешних переменных типа datetime, как задаст пользователь. Нужно нарисовать луч, направленный вправо, проходящий через точки графика (u, P(u)) и (v, P(v)). Что я буду делать с этим лучом - секрет, но он мне нужен :) Точнее, мне нужен код, который это делает. При этом я полностью согласен с рассуждениями по поводу неясности понятия "тренд".

Я немного поразбирался, как можно нарисовать этот нужный мне луч, и могу сказать, что за 2 минуты такой код не написать. Могу предположить, что это даже труднее, чем рассчитать линию регрессии и сдвинуть на 3 сигмы.

Ладно, в крайнем случае сам напишу.

 
Vinin:
Посмотри на этот индикатор
Здравствуйте, Виктор!
Мне понравился Ваш индикатор. Прост и лаконичен как и все гениальное!
С уважением,
Владимир
 
Martes:
Vinin:
Посмотри на этот индикатор

Vinin, спасибо за индикатор. К сожалению, это не вполне то, что описано в https://www.metatrader5.com/ru/terminal/help/objects/lines/trend_line. В любом случае в данном тобой коде индикатора есть много интересного. Можешь дать ссылку на описание принципов, по которым он построен?


Ссылок дать не могу, подобный есть в CodeBase. В комментах последнее значение n, обнуляется при пересечении линии Green и индикатор пересчитывается. Пока n больше 0 пересчет не производится.

Могу дать схему работы с ним при необходимости.

 
VBAG:
Vinin:
Посмотри на этот индикатор
Здравствуйте, Виктор!
Мне понравился Ваш индикатор. Прост и лаконичен как и все гениальное!
С уважением,
Владимир

Спасибо, стараюсь.
Причина обращения: