Написать индикатор корреляции для МТ5

MQL5 Indicatori

Specifiche

Доброго времени суток, уважаемые программисты :) Текущее задание выделено синим цветом. Далее просто описание некоторых будущих шагов.  

Требуется написать индикатор корреляции для МТ5, графически схожий с Overlay Chart для MT4, исходник которого прилагаю к данному ТЗ. Работа скорее всего будет многоплановой и усложняющейся по мере углубления в логику. В связи с неудачной попыткой сработаться с программистом, которому я поручил эту работу недавно, я решил теперь прибегнуть к методу "от простого к сложному", чтобы сначала мы поняли, сможем ли сработаться. Для начала нужно просто практически полностью перевести код Overlay Chart в mql5, чтобы я оценил две вещи:

1. Вашу способность правильно определять сроки работы и укладываться в назначенные ВАМИ сроки в случае, если я этому не препятствую, например, добавляя что-то в задание на ходу или слишком поздно выходя на связь с вами и т. д. В случае увеличения объема работы с моей стороны в процессе выполнения какого либо ТЗ вы можете смело запрашивать увеличение стоимости. В том числе на этом сайте предусмотрено увеличение бюджета и срока.  

2. Качество выполненной работы, включая все самостоятельно проводимые вами проверки до высылания мне очередной версии индикатора. Я не приму работу с большим количеством ошибок, которые мне придется самостоятельно искать. Я не приму необходимость повторять, что какая-то ошибка все еще не исправлена и т. д. 

Одним словом это называется "дисциплина". Она нужна не только в трейдинге :) Без нее в жизни вообще полная ж...

Итак, скачиваем Overlay Chart. Делаем ту же графику, исключая пока только шкалу цен второй пары и ее сетку. Шкалу цен потом нужно будет сделать иначе, чем в Overlay Chart. Также из настроек Overlay Chart не нужна настройка Mirror. Пока что просто вообще убираем эту функцию.

Вот картинка двух графиков (японский индекс и его фьючерс). Правда, там сетку фьючерса пришлось сделать черной, так как ее нельзя отключить в настройках. Поэтому она добавила графический "шум". Обратите внимание, что свечи накладываемого инструмента при данном масштабе графика должны быть тоньше, чем свечи первого, чтобы были видны и те, и другие. 



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

При этом на всякий случай, чтобы вы понимали, о какой работе пойдет речь далее, изложу тут небольшой кусок основного ТЗ:

Индикатор должен анализировать все тики заданного этапа истории (п.1) по двум парам и присылать пуш-уведомления о расхождениях определенного диапазона между их курсами, а также кое-что рисовать и писать на графике.  

Поскольку ценовые шкалы двух пар отличаются друг от друга, то для объективного сравнения курсов я решил организовать алгоритм интерпретации курса второй пары в курс первой. Например, если ценовой диапазон первой пары между самым нижним лоу и самым верхним хай этапа равен, скажем, 100 пунктов, а ценовой диапазон второй пары на этом же самом этапе равен 150 пунктов, значит при прохождение курсом второй пары данного диапазона мы будем считать, что произошло движение, равное 100 пунктам по курсу первой пары.   

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


Новые настройки:


  1. Этап. Значение по умолчанию 65. Введенное число означает количество свечей от нулевой, которые индикатор берет в расчет расхождений курсов. Свечи при этом он должен рисовать на всей истории.


  1. Пуш: значение пустое. Вводится целое число. Введенное число это минимальное расхождение курсов в пунктовом диапазоне первой пары на нулевом баре, при котором нужно прислать пуш на смартфон. Текст уведомления, например: “По GOLD и GOLDEURO расхождение 899”. Число в тексте должно соответствовать реальному расхождению, зарегистрированному в текущий момент. Пуш присылать один раз на одну свечу. 


Также индикатор должен нарисовать стрелки вниз цветом DarkSlateGray над всеми  свечами заданного периода, где на каких либо тиках были расхождения, не меньше введенного в “Пуш” значения. Данный расчет мы связываем с заданным этапом, считая, что самое нижнее лоу обоих инструментов на этом этапе является одним и тем же графическим уровнем для них обоих, как и их самое высшее хай. 


Например, на заданном этапе диапазон первой пары 1.09873-1.11822, а диапазон второй 1.14895-1.17832. Значит диапазон первой пары будет равен 1949 пунктов, а второй – 2937 пунктов. А это в свою очередь значит, что расстояние в 1 пункт по первой паре равно 1,506926629 пункта по второй паре. Это число я получил просто делением большего диапазона на меньший.  Например, где-то у нас был ценовой тик по второй паре, равный ее курсу 1.15673. А курс первой пары в этот момент был равен 1.10003. Приравнивая ценовые шкалы друг к другу, мы считаем, что курс второй пары, равный 1.15673, условно равен 1.09873 + (1.15673 - 1.14895) / 1.506926629 ≈ 1.10389. Полученное число это курс первой пары, который мы приравниваем к курсу второй пары, равному 1.15673. Теперь мы просто считаем разницу двух курсов первой пары: того, который у нас есть по первой паре на момент взятого для примера ценового тика по второй паре, и того, который является интерпретацией взятого для примера курса второй пары в курс первой. 110389 - 110003 = 386. Таким образом мы считаем, что на момент, когда курс второй пары был равен 1.15673, у нас было расхождение между уровнями курсов, равное 386 пунктам. 


Если диапазон одной или обеих пар меняется, то есть на нулевом баре ставится новый “рекорд” хай или лоу, то все должно перерисовываться, как и в Overlay Chart. Соответственно нужно производить новый анализ всех тиков и давать им новое значение, в том числе по необходимости удалять или добавлять на график новые стрелки.


Учитывая, что расчеты будут по тикам, нужно сделать так, чтобы индикатор не пытался каждый раз проверять заново все тики при смене параметра "Пуш" из-за ресурсоемкости этих проверок, если это возможно. И т. д. Для того, чтобы представить себе будущую работу, пока достаточно. Повторюсь, сейчас все это делать не надо. Пока что пусть, грубо говоря, просто наложит одни свечи на другие, как это делает Overlay Chart...

Нижний порог цены за данное ТЗ указан "от балды". Если вы считаете, что цена должна быть выше или может быть ниже, предлагайте ваши варианты. Также прилагаю файл Overlay Chart, чтобы вам не пришлось его искать.

File:

Con risposta

1
Sviluppatore 1
Valutazioni
(281)
Progetti
650
28%
Arbitraggio
112
19% / 62%
In ritardo
318
49%
Gratuito
2
Sviluppatore 2
Valutazioni
(22)
Progetti
37
81%
Arbitraggio
0
In ritardo
2
5%
Gratuito
Pubblicati: 5 codici
3
Sviluppatore 3
Valutazioni
(45)
Progetti
105
30%
Arbitraggio
8
25% / 50%
In ritardo
40
38%
Gratuito
4
Sviluppatore 4
Valutazioni
(34)
Progetti
55
31%
Arbitraggio
8
0% / 63%
In ritardo
13
24%
Gratuito
Pubblicati: 22 articoli, 1 codice
5
Sviluppatore 5
Valutazioni
(40)
Progetti
106
52%
Arbitraggio
17
12% / 65%
In ritardo
25
24%
Gratuito
6
Sviluppatore 6
Valutazioni
(574)
Progetti
945
47%
Arbitraggio
309
58% / 27%
In ritardo
125
13%
Gratuito

Informazioni sul progetto

Budget
70+ USD