Идея создания советника, позволяющего использовать произвольный набор технического индикатора, возникла при переходе с MQL4 на MQL5.
Собственно, идея витала давно, но вот реализация ее была сомнительной. Сомнение заключало в том, что для каждой из функций вызова индикаторов (iMA, iMACD, iCCI и т.д.) требуется фиксированный набор параметров. В MQL5 было обращено внимание на функцию
IndecatorCreate, которая, по своей сути, уже представляет универсальный механизм для конфигурации произвольного технического индикатора:
int IndicatorCreate(
string symbol, // имя символа
ENUM_TIMEFRAMES period, // период
ENUM_INDICATOR indicator_type, // тип индикатора из перечисления ENUM_INDICATOR
int parameters_cnt=0, // количество параметров
const MqlParam& parameters_array[]=NULL, // массив параметров
);
Итак, для конфигурации индикатора, мы имеем произвольные символ, произвольный временной интервал, произвольный тип индикатора и произвольный набор параметров. Остается лишь передать в настройках строку параметров, разобрать и поместить в структуру MqlParam. Но это уже мастерство программиста. Для примера, задаем параметры как строку с разделителями запятая, определяем, что параметры типа int содержат только цифры, double — цифры и точку, bool — true/false, string — обрамлены одиночными кавычками.
Дальше остается сформировать сигналы с пошаговой конфигурацией, задать функции шагов и реализовать торговые функции. Все гениальное — просто.
Итоговый советник распространяется через маркет mql5 и является немножко платным —
TradeBuilderMT5. Однако, для проверки собственных стратегий, подобных большинству тех, которые заказываются в разделе бесплатного написания, имеется триальная версия. Это позволяет прогнать свою стратегию в тестере MT5 без каких-либо затрат и ожиданий.
Пример настройки сигнала по пересечению скользящих средних:
Цифрами на рисунке обозначено:
1.выбран индикатор первой линии — MA
2.выбран текущий временной период
3.пустое действие с первой линией
4.параметры первой линии (об этом чуть ниже)
5.задан последний закрытый бар
6.индикатор второй линии
7.тайм-фрейм второй линии
8.действие для второй линии пересечении вверх
9.параметры второй линии
10.бар второй линии
11.выбран пустой индикатор (обязательно, если алгоритм закончен)
Комментарии (1)
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий