MetaTrader 5 build 2485: Улучшения в iCustom и общая оптимизация в MQL5
Что нового в MetaTrader 5?
Terminal
- Оптимизировано и значительно ускорено редактирование баровой истории у пользовательских финансовых инструментов, в том числе при помощи функции CustomRatesUpdate.
- Исправлены ошибки, возникавшие при экспорте настроек пользовательских инструментов в JSON-файл.
- Исправления по крешлогам.
MQL5
- Изменен алгоритм загрузки пользовательских индикаторов с помощью iCustom.
Если перед именем пользовательского индикатора указан обратный слеш
'\', то EX5-файл индикатора ищется относительно корневой папки MQL5.
Таким образом при вызове iCustom(Symbol(), Period(),
"\FirstIndicator"...) индикатор будет загружаться как
MQL5\FirstIndicator.ex5. Если по этому пути файла не окажется, вернется
ошибка 4802 (ERR_INDICATOR_CANNOT_CREATE).
Если же путь не начинается с '\', то поиск и загрузка индикатора производятся в следующей последовательности:
- Сначала
EX5-файл индикатора ищется в той же папке, где находится EX5-файл
вызывающей программы. Например, советник CrossMA.EX5 находится в папке
MQL5\Experts\MyExperts и содержит вызов iCustom(Symbol(), Period(),
"SecondIndicator"...) – тогда поиск индикатора производится по пути
MQL5\Experts\MyExperts\SecondIndicator.ex5.
- Если индикатор не
найден в том же каталоге, то поиск производится относительно корневой
директории индикаторов MQL5\Indicators. То есть ищется файл
MQL5\Indicators\SecondIndicator.ex5. Если индикатор не найден по обоим
путям, то функция вернет INVALID_HANDLE и будет взведена ошибка 4802
(ERR_INDICATOR_CANNOT_CREATE).
Если путь к
индикатору задан в поддиректории, например как
MyIndicators\ThirdIndicator, то сначала поиск ведется в папке вызывающей
программы (советник находится в папке MQL5\Experts\MyExperts) по пути
MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5, а затем в случае
неуспеха ищется файл MQL5\Indicators\MyIndicators\ThirdIndicator.ex5.
При этом разделителем в пути нужно обязательно указывать двойной
обратный слеш '\\', например, iCustom(Symbol(), Period(),
"MyIndicators\\ThirdIndicator"...).
Также при обнаружении в
коде программы вызова пользовательского индикатора через iCustom,
компилятор будет неявно добавлять директиву "#property tester_indicator
XXX", если таковая отсутствует.
- Оптимизирована и значительно ускорена работа функции HistorySelect, позволяющая запрашивать историю сделок и ордеров.
- Исправлена ошибка, возникавшая при запросе тиков через функцию CopyTicksRange. Из-за нее в качестве начала диапазона принималось начало указанного дня без учета указанного времени.
- Оптимизировано и значительно ускорено отображение предупреждений с помощью функции Alert.
- Добавлено новое свойство SYMBOL_TIME_MSC — время последнего тика
символа в миллисекундах. Для получения свойства используется функция SymbolInfoInteger.
Посмотрите предыдущие новости, пожалуйста: