IndicatorCreate MQL5

Прогресс не стоит на месте. 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 и т.д.

Идея пошла в работу. Продолжение темы будет..

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

Вы должны быть авторизованы, чтобы разместить комментарий.