Auftrag beendet
![](https://c.mql5.com/i/avatar/avatar_na2.png)
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Spezifikation
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Нужен опытный программист MQL5 который сможет переделать и добавить функционал в этот индикатор.
>>>>>>>> https://www.mql5.com/en/code/24612 <<<<<<<<
1. Если вдруг в исходном коде индикатора обнаружатся ошибки, то нужно их исправить. Индикатор должен нормально тестироваться в тестере, работать быстро. Корректно отображаться на графике при любом масштабе графика (+ -). Сейчас почему-то на самом минимальном масштабе в тестере, происходит частично неверная отрисовка. Ощущение что есть ограничение по количеству баров для заливки буферных зон.
2. В код нужно внести комментарии, чтобы другому разработчику было понятно какой участок кода отвечает за тот или иной функционал.
3. Необходимо добавить возможность смещения канала Боллинджера на задаваемое количество баров в положительную сторону (вправо), как это реализовано в обычном индикаторе полос Боллинджера. (Shift) Что бы канал мог строится перед текущим баром. Смещение на задаваемое количество баров должно указываться для баров тайм фрейма графика. Если тайм фрейм графика М3, и указать смещение 10. То канал должен сдвинуться в право на 10 трехминутных баров.
4. Добавить возможность выбора в индикаторе скользящей средней: SMA, EMA, DEMA, TEMA по отклонению от которой строится канал. В исходном индикаторе используется SMA.
5. Нужно добавить возможность выбора рабочего тайм фрейма, исходя из которого на графике будет строиться канал. Это все доступные в Meta Trader 5 тайм фреймы. Начиная с Current TF, M1, M2, M3, М4, М5, М6 и так далее.
Объясню принцип, по которому должен строится канал, при выборе того или иного тайм фрейма в настройках индикатора. Допустим тайм фрейм графика М3, а канал Боллинджера мы хотим построить для Н1. В настройках индикатора, к примеру установлен период расчета 20. Когда в настройках индикатора мы выбираем Н1 то канал должен быть рассчитан и построен по следующей формуле:
(период * количество минутных баров в выбранном тайм фрейме) / тайм фрейм графика
( 20 * 60 ) / 3 = 400
Полученное значение является виртуальным периодом для индикатора, которое позволяет отобразить построенный для Н1 канал на тайм фрейме графика М3
По сути, если в обычном индикаторе полос Боллинджера указать период 400, и тайм фрейм графика будет М3 то канал будет отображаться как бы построенным по барам Н1. Вот и весь принцип.
Когда происходит переключение тайм фрейма графика, то происходит пересчет по выше указанной формуле, и канал для Н1 должен отобразиться для нового тайм фрейма графика, например М10
Канал должен строиться для текущего или более старшего тайм фрейма указанного в настройках индикатора. Имею ввиду, что если тайм фрейм графика М5 то канал нельзя построить для М3, выбрав этот тайм фрейм в настройках индикатора. При выборе в настройках индикатора тайм фрейма меньше, чем тайм фрейм графика, должен произойти сброс указываемого в настройках индикатора тайм фрейма до значения текущего тайм фрейма графика.
Если в настройках указать Current TF то индикатор просто строится для текущего тайм фрейма графика.
6. Вместо стрелок, над или под барами, которые создают сигналы, должны ставиться небольшие желтые точки при совпадении следующих условий:
· Максимум или минимум бара за границами канала и его закрытие произошло внутри "буферной зоны", это область канала ВВ залитая цветом.
· Точки ставятся для баров продаж при возврате цены в канал сверху, и для баров покупок при возврате цены снизу канала.
· Точки над или под барами не должны перерисовываться.
7. Индикатор должен создавать сигналы, которые будут в будущем считываться и обрабатываться советником.
· Бар продаж, создающий сигнал на продажу. Имеет максимум за верхней границей канала и закрылся в верхней буферной зоне.
· Бар покупок, создающий сигнал на покупку. Имеет минимум за нижней границей канала и закрылся в нижней буферной зоне.
· При появлении сигналов на продажу или покупку, нужно чтобы индикатор также мог передавать советнику ценовое значение текущей “ширины” канала, в пипсах. Это ценовое расстояние от верхней до нижней границы канала. Это нужно для того, чтобы советник мог считывать это значение. При появлении сигнала в селл или бай от индикатора, советник будет по формуле сравнивать расстояние до последнего открытого ордера сети с расстоянием которое будет выводить индикатор.
Пояснение по пункту 6 и 7:
Если бар продаж, который только что закрылся в верхней “буферной зоне” имеет максимум выше канала Боллинджера, то на графике, над этим баром ставится точка, для визуализации. Это событие будет являться сигналом для открытия советником ордера на продажу, если будут соблюдены все необходимые условия, указанные в настройках советника. Аналогично и для баров покупок. Советник будет исходя из настроек принимать решение открывать ордер по сигналу или проигнорировать его.
8. Возможность изменения цвета границ канала, заливки буферной зоны, изменение цвета точек, должны быть сохранены
По окончанию работ, разработчик передает мне исходный код. Права на этот код принадлежат мне заказчику. Запрещается публиковать, или каким-либо способом распространять исходный код, и скомпилированный из него индикатор. Любое использование индикатора с моего письменного согласия.
Компиляция должна происходить без ошибок. Разработчик предоставляет гарантию две недели после завершения сделки, для исправления найденных проблем.