Нужно написать индикатор горизонтальных уровней

MQL5 Indicators

Job finished

Execution time 5 days
Feedback from customer
Отличный разработчик! Сделала все вовремя и как нужно. Даже больше, чем было изначально в ТЗ. Постоянно была на связи и отвечала на все вопросы. Рекомендую.

Specification

Нужно написать индикатор уровней. Уровень это горизонтальная линия, которая проходит через две или более точки с одним значением у разных баров. Точки, которые должны участвовать в сравнении это все Open, High, Low и Close на заданном таймфрейме. То есть не обязательно только Low или только High. Точки сравниваются не строго а +- люфт. Он задаётся в настройках.


Уровни должны рисоваться на основном графике на любом таймфрейме.


Как оформлять визуально? Должна меняться толщина и цвет линии, в зависимости от количества точек уровня, например: 

  1. Две точки - красная линия в 1 пиксель

  2. Три точки - синяя линия в 3 пикселя

  3. Четыре точки - зеленая линия в 5 пикселей и так далее.


Максимальная толщина линии рассчитывается по количеству существующих уровней. Например, у нас

  1. Уровень 1, который проходит через 6 точек

  2. Уровень 2 через 3 точки

  3. Уровень 3 через 2 точки


Первый уровень рисуем в пять пикселей, второй в три, третий в один.


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


Отдельно нужно высчитать исторический максимум и минимум и по ним тоже проводить уровни. Эти уровни нужно подписать в формате max <год.месяц.день> или min <год.месяц.день>, где <год.месяц.день> это дата формирования максимума или минимума. Эти уровни показываются на любых таймфреймах за период, указанный в настройках.


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


Переменные, которые задаются в настройках:

  • Люфт от средней цены на таймфрейме: по умолчанию 0,04%

  • Минимальное количество точек для уровня: по умолчанию 2

  • Период, за который подсчитывать исторический хай и лоу для уровней: по умолчанию 1 год (десятичное число)


В файле пример уровня по трём точкам.







Responded

1
Developer 1
Rating
(281)
Projects
650
28%
Arbitration
112
19% / 62%
Overdue
319
49%
Free
2
Developer 2
Rating
(69)
Projects
146
34%
Arbitration
13
8% / 62%
Overdue
26
18%
Free
Published: 6 codes
3
Developer 3
Rating
(361)
Projects
644
26%
Arbitration
92
72% / 14%
Overdue
12
2%
Working
Published: 1 code
4
Developer 4
Rating
(17)
Projects
33
45%
Arbitration
1
0% / 100%
Overdue
8
24%
Free
5
Developer 5
Rating
(241)
Projects
387
51%
Arbitration
14
14% / 14%
Overdue
43
11%
Free
Published: 1 article, 1 code

Project information

Budget
30+ USD