Trabalho concluído
Termos de Referência
Описание:
Индикатор строится на основании Зиг-Зага, возможно потребуется попробовать разный алгоритм базового индикатора, который не будет перерисовываться, но в целом будет сопоставим со стандартным.
Смысл индикатора:
- Получение информации о текущем отрезке Зиг-Зага
- Получение информации о цене по линиям Фибоначчи в структуре Зиг-Заг
- Графическое наложение объектов в виде линий Фибоначчи по линиям Зиг-Заг
Логика и ТЗ индикатора разбита на 3 этапа, которые отвечают за разные функции:
На первом этапе происходит подстройка под рынок, для этого от текущей даты в истории находим 30 пиков и впадин - 15 отрезков, первый отрезок является эталоном - далее его сравниваем с последующими - сравнение идет путем накидывания виртуальной линии Фибоначчи на эталонный отрезок, и если один из последующих отрезков выходит за линии на заданный процент вверх или вниз, то этот отрезок становится эталоном и сравнение продолжается с последующими отрезками.
На втором этапе - идет уже расчет от точки начала на каждом баре -принцип тот же, но алгоритм сложней (детализированней) - так как зигзак не имеет промежуточных значений, ну и ещё пара идей там заложено.
Сравниваем не сам отрезок а расположение его относительно эталонного отрезка на ценовой шкале!
При смене векторов определяем вид отрезка - 5 видов, при этом отрезок может быть разделен на два этапа - коррекционная волна может превратиться в трендовую. Эти данные выводятся в графический буфер.
В графический буфер по требованию выводятся все промежуточные показатели - для отладки.
Ещё информация в виде положения цены в уровнях Фибоначчи - две линии - от текущего и старого эталона.
На третьем этапе алгоритм сохраняет информация для текущего эталона и предыдущего. По эталонам строятся линии Фибоначчи на графике - постоянно две линии - перерисовываются.
Детальное ТЗ с алгоритмом предоставляется по требованию
Идея индикатора обсуждалась на форуме https://www.mql5.com/ru/forum/40157
Выдержка из ТЗ:
«
Настройки:
extern string text1 = "1. Настройка индикатора Zig-Zag";
Depht=12; // - это тот минимум баров, на котором индикатор не будет строить второй максимум (минимум), если тот меньше (больше) на Deviation предыдущего соответственно.
Deviation=5; // - это минимальное количество пунктов между максимумами (минимумами) двух соседних баров для того чтобы индикатор Zigzag сформировал локальную вершину (локальный минимум). Выражается в процентах.
Backstep=3; // - это минимальное число баров между локальными максимумами (минимумами).
TF=1440; // по какому тайм фрейму будем строить структуру индикатора
extern string text2 = "2. Настройка алгоритма поиска тренда по Zig-Zag";
DataStart=01.01.2010; // - дата начала расчета ДД.ММ.ГГГГ
Stabilization=30; // - количество пиков зигзага до даты начала расчета
ReStab=30; // - Перестабилизация, если заданное количество пиков не начался новый тренд
ProcTrend_On=23,6; // - Процент при котором текущий отрезок считается трендовым относительно движения прошлого трендового отрезка сходного вектора
ProcTrend_Off=23,6; // - Процент при котором текущий отрезок считается трендовым относительно движения прошлого трендового отрезка противоположного вектора
Fibo_Korrekt=1; // - Корректировка эталонного отрезка при неудачном продолжении тренда
extern string text3 = "3. Настройка алгоритма расчета цены в сетке Фибоначчи";
FiboCalc=1; // - Позиционирование цены по уровням Фибоначчи отложенных на трендовых отрезках
Color_Graf_Fibo="" ; // - Цвет отрисовки индикатора в подвале
Style_Graf_Fibo=""; // - Стиль отрисовки линии индикатора в подвале
Color_Graf_FiboOld=""; // - Цвет отрисовки индикатора в подвале
Style_Graf_Fibo=""; // - Стиль отрисовки линии индикатора в подвале
extern string text4 = "4. Настройка отрисовки линий Фибоначчи на графике";
Draft_FiboEtalon=1; // - Чертить на графики линии Фибоначчи по последнему трендовому отрезку
Draft_Color_FiboEtalon=""; // - Цвет
Draft_Style_FiboEtalon=""; // - Стиль линий
Draft_FiboEtalonOld=1; // - Чертить на графики линии Фибоначчи по предпоследнему трендовому отрезку
Draft_Color_FiboEtalonOld=""; // - Цвет
Draft_Style_FiboEtalonOld=""; // - Стиль линий
Draft_TimeBars="500" ; // - ширина построения линий Фибоначчи
extern string text4 = "5. выбор вывода данных в графический буфер";
Vizual_Graf=0; // - Выбор вывода данных в графический буфер
»