Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Индикаторы

Normalizer - индикатор для MetaTrader 4

Просмотров:
7196
Рейтинг:
(14)
Опубликован:
2008.11.18 09:19
Обновлен:
2016.11.22 07:33
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Описалово:

В дни тягостных раздумий об эффективности использования осцилляторов у меня частенько возникала потребность в нормировке их значений - т.е. в приведении колебаний индюка к диапазону [-1;1]. Сие зачастую открывает новые возможности, самая простая из которых - контроль значений индикатора по конкретным уровням (0.5, 0.8, ну или другим), а не по каким-то взятым с потолка значениям, которые приходится оценивать на глазок в зависимости от рынка. Ессессно, если индикатор уже нормирован, необходимость в рассматриваемом продукте отпадает, ну а если нет... пользуйтесь, за сырость кода прошу строго не судить.

Параметры:

string Indicator - собственно индюк, который потом передается в функцию iCustom(). К сожалению, чтобы втыкать сюда еще и стандартные индикаторы, средств автоматизации MQL4 не хватает. С другой стороны, кто помешает любопытному кодеру переписать одну строчку в программе?
int mode - номер нужной нам линии исходного индикатора ...
int param1
int param2 - ... и его параметры. Опять же к сожалению, фантазии разработчиков MQL пока хватает только на то, чтобы разрешить только самим себе-любимым писать функции с переменным числом параметров (типа Print), а еще на то, чтобы не поддерживать адресную арифметику (последнее, по-моему, вообще сделано исключительно для того, чтобы смертные пользователи чувствовали свою ущербность по сравнению с богами:)))). Так что работаем ручками.

Коммент:

Подсчеты осуществляются в два этапа.

1. На этапе инициализации (функция init(), если кто не знает:) анализируется весь массив данных индикатора на предмет вычисления характерного периода, т.е. периода, на котором среднеквадратическое значение индюка может дать представление о том же СКЗ, но уже на всей истории.

Поясню. Допустим, у нас есть осциллятор, и мы посчитали его средний квадрат на нескольких подряд идущих периодах колебаний. Так вот договоримся, что этих периодов должно быть, к примеру, 3 (как это сделано у меня - #define PERIODS_CHARACTERISTIC 3, больше лучше не ставить, проц грузится). Суть вычислений тогда сводится к определению, сколько же баров в среднем длится один период (т.е. 2*средний интервал между двумя нулями индюка) и умножению полученного числа на 3.

2. Осталось для каждого бара посчитать СКЗ (типа корень из дисперсии) на полученных 3 периодах, отнормировать на него значение нашего индюшонка и, в конце концов, привести все к динамическому диапазону [-1;1] путем пропуска через функцию-компрессор f(x)=tanh(x) (гиперболический тангенс, функцию тоже пришлось писать самому:))

Чисто технический пример. На приведенной картинке зелененький - это писанный мной в незапамятные времена осциллятор, характеризующий активность рынка (по сути, тот же MACD, только по объемам). Синенький (а не голубенький!!!) - он же, но уже продетый через -=Normalizator=-. Отчетливо видны уровни +-0.75, +-0.5, +-0.25, а также то, что все максимумы, минимумы участки возрастания и убывания, а также места пересечения нулевого уровня сохраняют свое положение.

Ну вот, прошу откушать... Кому не понравится, плеваться в урну.

Стратегия закономерности валютных курсов Стратегия закономерности валютных курсов

два ордера устанавливаются в определенное время

EES Hedger - Попробуйте торговать по-другому: покупайте, когда продаете и продавайте, когда покупаете. EES Hedger - Попробуйте торговать по-другому: покупайте, когда продаете и продавайте, когда покупаете.

Вы нуждаетесь в торговле в противоположном направлении? При ручной торговле или использовании другого советника EES Hedger может моментально открывать противоположные позиции так, как указано в его параметрах.

Индикатор R - Squared Индикатор R - Squared

Индикатор r-squared

OpenTiks OpenTiks

Безиндикаторная система, основаная на анализе 4 предыдущих баров.