Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 17697
- Рейтинг:
- Опубликован:
- 2014.04.25 11:39
- Обновлен:
- 2016.11.22 07:33
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Технический индикатор выводит на ценовом графике технические фигуры Меррилла (М & W Wave Patterns), линии поддержки/сопротивления, построенные по экстремумам стандартного индикатора ZigZag. А. Меррилл классифицировал пятиконечные фигуры по порядку следования точек сверху вниз, создав упорядоченную классификационную модель М & W волн, вот они:
Динамический паттерн А. Меррилла - это такой паттерн, который может изменяться во времени. Динамический паттерн находится на первых четырех лучах зигзага справа. В данном индикаторе все паттерны условно считаются динамическими. Чтобы это условие выполнялось почти всегда, искусственно введено понятие мутация волн (см. ниже) и немного изменен алгоритм классического индикатора Zigzag.
Что касается ядра алгоритма поиска экстремумов - Zizag, использование этого алгоритма является "временным (быстрым) решением" и несомненно требует замены. Так как большинство ошибок связанных с обнаружением паттерна NOPATTERN (см. в enum NamePattern в файле MyCPattern.mqh) - это ошибка поискового ядра.
Эволюция и мутация волн
Эволюция - изменение динамического паттерна без перехода в другое семейство волн. Эволюция паттернов M-Wave:
Эволюция паттернов W-Wave:
Мутация - изменение динамического паттерна с обязательным переходом в другое семейство волн. Мутация паттернов M-Wave:
Мутация паттернов W-Wave:
Обратите внимание: алгоритм прогнозирования считает, что мутация будет в младшую фигуру эволюции, а счетчик эволюций/мутаций знает о возможной не последовательной мутации/эволюции. Например: мутация в среднюю, старшую фигуру. Это обеспечивается за счет выбора особых значений битовой-маски в enum NamePattern (см. MyCPattern.mqh). Если Вы планируете использовать счетчик эволюций/мутаций - не меняйте enum NamePattern.
Работа индикатора:
В ходе своей работы индикатор выводит на график технические фигуры Меррилла (М & W Wave Patterns) и линии поддержки/сопротивления. Перерасчет индикатора происходит только на новом баре истории(экономия процессорного времени на отрисовку объектов). Имена всех объектов-индикатора псевдослучайные. Индикатор производит расчет прогноза движения цены на основании ожидания частной(последовательной) эволюции/мутации волн. Имеет собственный счетчик эффективности паттерной модели.
Текущая версия:
Версия 2.01- торговая (для генерации торговых сигналов).
Поисковое ядро: classic Zigzag;
Модель прогноза: level 0 (последовательная эволюция/мутация);
Счетчик модели: level 0 ;
Индикаторные буферах:
0 ExtPointE[] - хранит значения точки Е, если цена находится около этой точки можно ожидать движение в сторону точек Evolution/Mutation;
1 ExtDeltaDE[] - хранит значение длины волны D-E в пунктах(предполагаю, что данное значение будет полезно в алгоритмах усреднения точки Е); Пример кода:
double RateRisk; // Процент риска
MqlTick now_tick;
SymbolInfoTick(_Symbol,now_tick);
if((now_tick.ask >= (ExtPointE[rate_total-1]-ExtDeltaDE[rate_total-1]*RateRisk*_Point))&&(now_tick.ask <= (ExtPointE[rate_total-1]+ExtDeltaDE[rate_total-1]*RateRisk*_Point)))
{ ...;// Генерировать сигнал} else ...;// Не генерировать сигнал
2 ExtEvolution[] - хранит значение прогноз движения цены в случае эволюции модели;
3 ExtMutation[] - хранит значение прогноз движения цены в случае мутации модели;
4 ExtSumModel[] - хранит значение = счетик_эволюций/(счетик_эволюций+счетик_мутаций) . Для получения счетчика_мутаций = 1 - ExtSumModel[rate_total-1] . Необходим для установки динамической весомости торговых сигналов.
Текущие изменения:
1. Добавлен код "анти-флэтовой" защиты при определении точки E;
2. Добавлен код "проверка размерности волны D-E", т.е. теперь корректирую точку E, если она меньше ожидаемого значения (значительно уменьшилось число перерисовок точки Е, и улучшился прогноз);
3. Переработан код прогнозирования движения цены (Evolution/Mutation level_0);
4. Расчет индикатора проходит на всей доступной истории терминала, т.е. счетчик модели показывает реальное значение, а не погоду на Марсе :-)
5. Исправил отрисовку точек Arrow, теперь они почти всегда по середине, а не снизу как раньше;
6. Добавил иконку проекту.

Осциллятор TSI, построенный на значениях технического индикатора WPR, выполненный со своей сигнальной линией в виде цветного облака.

Индикатор, рисующий свечи с более крупного таймфрейма в соответствии с показаниями индикатора HullTrend.

Пример реализации хеш массива строк со строковым ключем.

Трендовый индикатор, выполненный в виде цветного облака.