в тестере при попытке прочитать GlobalVariableGet(...)
получаю ошибку, попутно кто-нибудь подскажет как по коду ошибки получить ее описание, не могу в МТ5 найти библиотеку с этой функцией...
ERR_GLOBALVARIABLE_NOT_FOUND |
4501 |
Глобальная переменная клиентского терминала не найдена |
А Вы уверены что предварительно эта глобальная переменная была создана ?
А Вы уверены что предварительно эта глобальная переменная была создана ?
дело вот в чем, я думаю, буду проверять:
глобальные переменные создаются скриптом на реальном графике в реальном времени,
программа в отладчике работает в прошлом времени по отношению к времени создания переменных, поэтому они для нее
не существуют...
юра подскажи, пожалуйста как по коду ошибки получить ее описание, не могу в МТ5 найти библиотеку с этой функцией...
дело вот в чем, я думаю, буду проверять:
глобальные переменные создаются скриптом на реальном графике в реальном времени,
программа в отладчике работает в прошлом времени по отношению к времени создания переменных, поэтому они для нее
не существуют...
юра подскажи, пожалуйста как по коду ошибки получить ее описание, не могу в МТ5 найти библиотеку с этой функцией...
Правда, я не Юра, но тоже сгожусь ))
Долбанный сайт опять не вставляет код...еще попытка
#ifndef Errors #define Errors //+------------------------------------------------------------------+ //| Errors.mqh | //| Alexey Volchanskiy | //| https://mql.gnomio.com/ | //+------------------------------------------------------------------+ #property copyright "Alexey Volchanskiy" #property link "http://www..ru" #property strict #include <stderror.mqh> #include <stdlib.mqh> // узнает код последней ошибки и возвращает строку с описанием // код ошибки возвращается, т.к. передается по ссылке string GetMyLastError(int &err) { err = GetLastError(); string serr = ErrorDescription(err); ResetLastError(); return(serr); } // узнает код последней ошибки и возвращает строку с описанием string GetMyLastError() { int err = GetLastError(); string serr = ErrorDescription(err); ResetLastError(); return(serr); } #endif
В прошлый раз перекрестится забыл ) Вставилось! Спасиба Господи!
А без шуток надо после кода вставлять пустую строку, сайт суров, без этого не пропускает
Правда, я не Юра, но тоже сгожусь ))
Долбанный сайт опять не вставляет код...еще попытка
В прошлый раз перекрестится забыл ) Вставилось! Спасиба Господи!
А без шуток надо после кода вставлять пустую строку, сайт суров, без этого не пропускает
странно, но у меня этих файлов в МТ5 нет, если вас не затруднит, киньте их прямо здесь...
#include <stderror.mqh> #include <stdlib.mqh>
дело вот в чем, я думаю, буду проверять:
глобальные переменные создаются скриптом на реальном графике в реальном времени,
программа в отладчике работает в прошлом времени по отношению к времени создания переменных, поэтому они для нее
не существуют...
юра подскажи, пожалуйста как по коду ошибки получить ее описание, не могу в МТ5 найти библиотеку с этой функцией...
Денис,
перед вызовом этой функции GlobalVariableGet("имяпеременной")
можно вызвать вот эту GlobalVariableCheck("имяпеременной")
и если получаешь false это означает что глобальной переменной нет
дело вот в чем, я думаю, буду проверять:
глобальные переменные создаются скриптом на реальном графике в реальном времени,
программа в отладчике работает в прошлом времени по отношению к времени создания переменных, поэтому они для нее
не существуют...
юра подскажи, пожалуйста как по коду ошибки получить ее описание, не могу в МТ5 найти библиотеку с этой функцией...
например в редакторе MQL5 нажимаем F1
набираем в закладке введите ключевое слово для поиска
GetLastError
затем кликайте например
Коды возврата торгового сервера
увидите список ошибок - правда это касается только ошибок возвращаемых торговым сервером
---
Возвращаемое значение
Возвращает значение последней ошибки, произошедшей во время исполнения mql5-программы.
кликайте по ссылке ошибки
а тут вы увидите более широкий список ошибок
например в редакторе MQL5 нажимаем F1
набираем в закладке введите ключевое слово для поиска
GetLastError
затем кликайте например
Коды возврата торгового сервера
увидите список ошибок - правда это касается только ошибок возвращаемых торговым сервером
---
Возвращаемое значение
Возвращает значение последней ошибки, произошедшей во время исполнения mql5-программы.
кликайте по ссылке ошибки
а тут вы увидите более широкий список ошибок
юра, привет. все я это знаю, что ты говоришь, я не могу найти в МТ5 билиотеку с функцией string ErrorDescription(GetLastError())...
у меня нет в МТ5 этих вот файлов :
#include <stderror.mqh> #include <stdlib.mqh>
юра, привет. все я это знаю, что ты говоришь, я не могу найти в МТ5 билиотеку с функцией string ErrorDescription(GetLastError())...
у меня нет в МТ5 этих вот файлов :
Ааа , так это я понимаю как пример вот от сюда ?
https://www.mql5.com/ru/docs/basis/preprosessor/import
если так то ясно
дело в том что в каталоге ..\MQL5\include
этого файла и нет в базовой поставке
--
это привели как пример..
а в MQL4\include два этих файла есть
Вообще - на форуме если долго рыться можно найти вот такую функцию
msgErrors
или ее аналог
и где то и в моих не очень многочисленных исходниках на форуме возможно была
ее легко приспособить под MQL5 ну только коды - надо взять из MQL5.HELP
у меня просто практически за 10 лет разработок mql было всего несколько заказов на MQL5 и кстати все были в 2016 году
потому нет готовой под mql5
string msgErrors(int error_code) { string strError; switch(error_code) { case 0: strError=error_code+" Нет ошибки "; break; case 1: strError=error_code+" Нет ошибки, но результат неизвестен "; break; case 2: strError=error_code+" Общая ошибка "; break; case 3: strError=error_code+" Неправильные параметры "; break; case 4: strError=error_code+" Торговый сервер занят "; break; case 5: strError=error_code+" Старая версия клиентского терминала "; break; case 6: strError=error_code+" Нет связи с торговым сервером "; break; case 7: strError=error_code+" Недостаточно прав "; break; case 8: strError=error_code+" Слишком частые запросы "; break; case 9: strError=error_code+" Недопустимая операция нарушающая функционирование сервера "; break; case 64: strError=error_code+" Счет заблокирован "; break; case 65: strError=error_code+" Неправильный номер счета "; break; case 128: strError=error_code+" Истек срок ожидания совершения сделки "; break; case 129: strError=error_code+" Неправильная цена "; break; case 130: strError=error_code+" Неправильные стопы "; break; case 131: strError=error_code+" Неправильный объем "; break; case 132: strError=error_code+" Рынок закрыт "; break; case 133: strError=error_code+" Торговля запрещена "; break; case 134: strError=error_code+" Недостаточно денег для совершения операции "; break; case 135: strError=error_code+" Цена изменилась "; break; case 136: strError=error_code+" Нет цен "; break; case 137: strError=error_code+" Брокер занят "; break; case 138: strError=error_code+" Новые цены "; break; case 139: strError=error_code+" Ордер заблокирован и уже обрабатывается "; break; case 140: strError=error_code+" Разрешена только покупка "; break; case 141: strError=error_code+" Слишком много запросов "; break; case 145: strError=error_code+" Модификация запрещена, так как ордер слишком близок к рынку "; break; case 146: strError=error_code+" Подсистема торговли занята "; break; case 147: strError=error_code+" Использование даты истечения ордера запрещено брокером "; break; case 148: strError=error_code+" Количество ордеров достигло предела разрешенного брокером "; break; case 4000: strError=error_code+" Нет ошибки "; break; case 4001: strError=error_code+" Неправильный указатель функции "; break; case 4002: strError=error_code+" Индекс массива - вне диапазона "; break; case 4003: strError=error_code+" Нет памяти для стека функций "; break; case 4004: strError=error_code+" Переполнение стека после рекурсивного вызова "; break; case 4005: strError=error_code+" На стеке нет памяти для передачи параметров "; break; case 4006: strError=error_code+" Нет памяти для строкового параметра "; break; case 4007: strError=error_code+" Нет памяти для временной строки "; break; case 4008: strError=error_code+" Неинициализированная строка "; break; case 4009: strError=error_code+" Неинициализированная строка в массиве "; break; case 4010: strError=error_code+" Нет памяти для строкового массива "; break; case 4011: strError=error_code+" Слишком длинная строка "; break; case 4012: strError=error_code+" Остаток от деления на ноль "; break; case 4013: strError=error_code+" Деление на ноль "; break; case 4014: strError=error_code+" Неизвестная команда "; break; case 4015: strError=error_code+" Неправильный переход "; break; case 4016: strError=error_code+" Неинициализированный массив "; break; case 4017: strError=error_code+" Вызовы DLL не разрешены "; break; case 4018: strError=error_code+" Невозможно загрузить библиотеку "; break; case 4019: strError=error_code+" Невозможно вызвать функцию "; break; case 4020: strError=error_code+" Вызовы внешних библиотечных функций не разрешены "; break; case 4021: strError=error_code+" Недостаточно памяти для строки, возвращаемой из функции "; break; case 4022: strError=error_code+" Система занята "; break; case 4050: strError=error_code+" Неправильное количество параметров функции "; break; case 4051: strError=error_code+" Недопустимое значение параметра функции "; break; case 4052: strError=error_code+" Внутренняя ошибка строковой функции "; break; case 4053: strError=error_code+" Ошибка массива "; break; case 4054: strError=error_code+" Неправильное использование массива-таймсерии "; break; case 4055: strError=error_code+" Ошибка пользовательского индикатора "; break; case 4056: strError=error_code+" Массивы несовместимы "; break; case 4057: strError=error_code+" Ошибка обработки глобальныех переменных "; break; case 4058: strError=error_code+" Глобальная переменная не обнаружена "; break; case 4059: strError=error_code+" Функция не разрешена в тестовом режиме "; break; case 4060: strError=error_code+" Функция не подтверждена "; break; case 4061: strError=error_code+" Ошибка отправки почты "; break; case 4062: strError=error_code+" Ожидается параметр типа string "; break; case 4063: strError=error_code+" Ожидается параметр типа integer "; break; case 4064: strError=error_code+" Ожидается параметр типа double "; break; case 4065: strError=error_code+" В качестве параметра ожидается массив "; break; case 4066: strError=error_code+" Запрошенные исторические данные в состоянии обновления "; break; case 4067: strError=error_code+" Ошибка при выполнении торговой операции "; break; case 4099: strError=error_code+" Конец файла "; break; case 4100: strError=error_code+" Ошибка при работе с файлом "; break; case 4101: strError=error_code+" Неправильное имя файла "; break; case 4102: strError=error_code+" Слишком много открытых файлов "; break; case 4103: strError=error_code+" Невозможно открыть файл "; break; case 4104: strError=error_code+" Несовместимый режим доступа к файлу "; break; case 4105: strError=error_code+" Ни один ордер не выбран "; break; case 4106: strError=error_code+" Неизвестный символ "; break; case 4107: strError=error_code+" Неправильный параметр цены для торговой функции "; break; case 4108: strError=error_code+" Неверный номер тикета "; break; case 4109: strError=error_code+" Торговля не разрешена "; break; case 4110: strError=error_code+" Длинные позиции не разрешены "; break; case 4111: strError=error_code+" Короткие позиции не разрешены "; break; case 4200: strError=error_code+" Объект уже существует "; break; case 4201: strError=error_code+" Запрошено неизвестное свойство объекта "; break; case 4202: strError=error_code+" Объект не существует "; break; case 4203: strError=error_code+" Неизвестный тип объекта "; break; case 4204: strError=error_code+" Нет имени объекта "; break; case 4205: strError=error_code+" Ошибка координат объекта "; break; case 4206: strError=error_code+" Не найдено указанное подокно "; break; case 4207: strError=error_code+" Ошибка при работе с объектом "; break; default: strError="unknown error"; } return (strError); }
![Документация по MQL5: Основы языка / Препроцессор / Импорт функций (#import) Документация по MQL5: Основы языка / Препроцессор / Импорт функций (#import)](/i/community/logo_mql5_small.png)
- www.mql5.com
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
в тестере при попытке прочитать GlobalVariableGet(...)
получаю ошибку, попутно кто-нибудь подскажет как по коду ошибки получить ее описание, не могу в МТ5 найти библиотеку с этой функцией...
ERR_GLOBALVARIABLE_NOT_FOUND
4501
Глобальная переменная клиентского терминала не найдена