Прогресс не стоит на месте. MetaQuotes прекратил поддержку MT4 несколько лет назад. Терминал MT4 поддерживается брокерами для обеспечения большего количества пользователей, привыкших к простоте и пользующихся огромным количеством готовых программ.
Большим тормозом для распространения MT5 было отсутствие возможности хеджинговой торговли — возможности открытия нескольких позиций по инструменту для реализации таких алгоритмов, как усреднение, локирование и пр.
Но, был бы спрос — будет и предложение. Сегодня, при открытии счета MT5, большинство брокеров дают возможности выбрать опцию хеджирования. И это не беда, что тестер MT5 на данном этапе, не поддерживает данного режима. MetaQuotes пошел на встречу пользователям по режимам исполнения ордеров, допилят и тестер стратегий.
В части программирования MQL5 так же сделал некоторые «уступки» — вернули привычные функции доступа ценовым данным iClose, iOpen, iLowes, iHighes и т.п. Ранее приходилось пользоваться CopyBuffer, что не всегда было удобно.
Пришло время, господа, обратить большее внимание на программирование MQL5. Нельзя сказать, что раньше я не обращал на него внимания, просто этому не уделялось его не достаточно. Сегодня я решил выпустить релиз своего универсального советника UniversalEA для MT5. Первый релиз уже готов и отправлен на модерацию в маркет MQL5.ru. Но дело не в этом — хочу поделиться некоторыми «вкусностями» программы на MQL5.
Во-первых, это организация доступа к данным технического индикатора. В программе на MQL5 технические индикаторы создаются однократно и используются по мере необходимости. Это должно повысить производительность программы по сравнению с MQL4, т.к. не требует пересчета индикатора при каждом к нему обращению.
Во-вторых, собственно функция создания индикатора:
int IndicatorCreate( string symbol, // имя символа ENUM_TIMEFRAMES period, // период ENUM_INDICATOR indicator_type, // тип индикатора из перечисления ENUM_INDICATOR int parameters_cnt=0, // количество параметров const MqlParam& parameters_array[]=NULL, // массив параметров );
имеет, как и ранее, в качестве входных параметров, имя символа и период. Далее, indicator_id — тип индикатора из перечисления (IND_MA-Moving Average, IND_ICHIMOKU-Ichimoku Kinko Hyo, и т.д., включая IND_CUSTOM-Custom indicator), количество и массив параметров. Последние два параметра, в отличии от фиксированных значений в MQL4, дают возможность передать в индикатор произвольное количество параметров (до 64 шт) произвольного типа.
Для программиста — это гибкость разработки. Появилась возможность через input-параметры советника задать использование произвольного индикатора с произвольной строкой параметров. Здесь придется использовать некоторое мастерство программиста, например, на входе стоит строка, типа «0,0.0,true,’text'», а программа разбирает эту строку и раскладывает значения по структуре.
Данная «вкусность» программы навеяла идею нового универсального советника. Итак, новый советник будет называться торговый конструктор TradeBuilderMT5 и не ограничиваться использованием одного пользовательского индикатора, а получит настраиваемый набор индикаторов с произвольными параметрами для каждой функции — SignalBuy, SignalSell, SignalCloseBuy, SignalCloseSell и т.д.
Идея пошла в работу. Продолжение темы будет..