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

MQL5 指标

工作已完成

执行时间5 天
客户反馈
Отличный разработчик! Сделала все вовремя и как нужно. Даже больше, чем было изначально в ТЗ. Постоянно была на связи и отвечала на все вопросы. Рекомендую.

指定

Нужно написать индикатор уровней. Уровень это горизонтальная линия, которая проходит через две или более точки с одним значением у разных баров. Точки, которые должны участвовать в сравнении это все 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 год (десятичное число)


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







附加的文件:

反馈

1
开发者 1
等级
(281)
项目
650
28%
仲裁
112
19% / 62%
逾期
319
49%
空闲
2
开发者 2
等级
(69)
项目
146
34%
仲裁
13
8% / 62%
逾期
26
18%
空闲
发布者: 6 代码
3
开发者 3
等级
(361)
项目
644
26%
仲裁
92
72% / 14%
逾期
12
2%
工作中
发布者: 1 代码
4
开发者 4
等级
(17)
项目
33
45%
仲裁
1
0% / 100%
逾期
8
24%
空闲
5
开发者 5
等级
(241)
项目
387
51%
仲裁
14
14% / 14%
逾期
43
11%
空闲
发布者: 1 文章, 1 代码

项目信息

预算
30+ USD