В папку к индикаторам.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Vasiliy Sokolov, 2016.07.04 13:42
Здесь телепатов нет. Приведите Ваш код обращения к индикатору через iCustom. Также уточните о какой платформе идет речь.Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Alexey Viktorov, 2016.07.04 13:48
Попробую по-телепатить...
В mql5 делается попытка обратиться к пользовательскому индикатору так-же как в mql4.
Ну если телепат из меня никакой, то уж извиняйте...
По всей видимости нет, т.к. пациент говорит, цитирую: "упорно возвращает Invalid Hndle". Т.е. сознательно работает именно с хендлом. Возможно чтение сонника нам поможет.<
Раз Invalid Handle, то речь идет именно об МТ5. Поставьте после вызова iCustom:
Print("Не удалось получить Handle. Ошибка №", GetLastError());
и посмотрите, в чем именно дело.
Коллеги, кто-то реально пользовался функцией iCustom для обращения к пользовательскому индикатору? Проблема похоже с указанием пути к индикатору. iCustom упорно возвращает Invalid Hndle.
Как правильно обратиться к индикатору, в какую папку его нужно положить?
Главное меню - Файл - Открыть каталог данных, дальше: MQL5 - Indicators. После копирования файла, если исходник, его надо откомпилировать - открыть в редакторе и нажать на кнопку "компилировать".
Имя файла для в ставки в iCustom() лучше копировать мышкой, расширение не нужно.
Извиняюсь, что не указал детали сразу.
В функции OnInit() советника запрашиваю хендл индикатора, к буферам которого в дальнейшем хочу обращаться.
Запрос выглядит так:
int OnInit() { //--- get indicator handle FL_Handle = iCustom( NULL, 0, "\\FractalsLevelModified", 20); if(FL_Handle <= 0) return(-1); Comment("Recieved Indicator Handle " + (string)FL_Handle); //--- return(INIT_SUCCEEDED); }
Индикатор имеет единственный параметр? который я указываю. Сам индикатор компилируется и отлично работает. Все рисует как положено.
Пробовал копировать скомпилированный файл индикатора и в папку C:\Program Files\MetaTrader 5\MQL5\Indicators, эта папка изначально пустая, и в папку
C:\Users\UserName\AppData\Roaming\MetaQuotes\Terminal\9DF863192B2256668BB7189BB5EA0122\MQL5\Indicators (в которой лежат все откомпилированные файлы). Функция все равно возвращает Negative Handle.
В чем может быть проблема?
Главное меню - Файл - Открыть каталог данных, дальше: MQL5 - Indicators. После копирования файла, если исходник, его надо откомпилировать - открыть в редакторе и нажать на кнопку "компилировать".
Имя файла для в ставки в iCustom() лучше копировать мышкой, расширение не нужно.
Извиняюсь, что не указал детали сразу.
В функции OnInit() советника запрашиваю хендл индикатора, к буферам которого в дальнейшем хочу обращаться.
Запрос выглядит так:
Индикатор имеет единственный параметр? который я указываю. Сам индикатор компилируется и отлично работает. Все рисует как положено.
Пробовал копировать скомпилированный файл индикатора и в папку C:\Program Files\MetaTrader 5\MQL5\Indicators, эта папка изначально пустая, и в папку
C:\Users\UserName\AppData\Roaming\MetaQuotes\Terminal\9DF863192B2256668BB7189BB5EA0122\MQL5\Indicators (в которой лежат все откомпилированные файлы). Функция все равно возвращает Negative Handle.
В чем может быть проблема?
из справки
Возвращаемое значение
Возвращает хэндл указанного технического индикатора, в случае неудачи возвращает INVALID_HANDLE. Для освобождения памяти компьютера от неиспользуемого больше индикатора служит функция IndicatorRelease(), которой передается хэндл этого индикатора.
Для проверки на успешность создания нужно выполнять операцию сравнения с INVALID_HANDLE, убрать слеши, путь, расширение указывать необязательно
Примерно так
int OnInit() { //--- get indicator handle FL_Handle = iCustom( NULL, 0, "FractalsLevelModified", 20); if(FL_Handle == INVALID_HANDLE ) return(-1); Comment("Recieved Indicator Handle " + (string)FL_Handle); //--- return(INIT_SUCCEEDED); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как правильно обратиться к индикатору, в какую папку его нужно положить?