Коротко: Добавьте точный адрес советника в Сервис → Настройки → Советники, в список «Разрешить WebRequest для следующих URL», и нажмите OK; ошибка 4014, скорее всего, значит, что его там нет.

MT5 не пропускает вызовы WebRequest из советника, пока его точный адрес не внесён в список, который ведёте вы. Откройте Сервис → Настройки → Советники, отметьте «Разрешить WebRequest для следующих URL», добавьте адрес, к которому ходит советник (например, https://lic.midasgrid.com), нажмите OK и ищите на вкладке «Эксперты» ошибку 4014, «Системная функция не разрешена для вызова».
В статье (12)
Что значит «WebRequest не разрешён» и ошибка 4014?
Ошибка 4014, «Системная функция не разрешена для вызова», — то, что сообщает заблокированный вызов WebRequest в MT5: скорее всего, адреса нет в списке разрешённых, либо вызов идёт из индикатора или из тестера стратегий.
WebRequest() — функция MQL5, которой программа отправляет HTTP-запрос. При сбое она возвращает -1, а причину подскажет GetLastError(). В таблице ошибок времени выполнения 4014 — это ERR_FUNCTION_NOT_ALLOWED (справочник MQL5, ошибки времени выполнения, дата обращения 8 октября 2026).
Её могут дать три ситуации:
- Адреса нет в списке или не включена сама опция WebRequest. В примере из справочника при результате -1 выводится подсказка, что URL, возможно, отсутствует в списке и его нужно добавить (справочник по WebRequest). Прямо связать 4014 с этим случаем справочник не берётся. Это делают ответы на форуме и инструкции некоторых разработчиков; в теме про соседние функции сокетов, которые тоже возвращают 4014, ответы отправляют к тому же списку, но помогло ли это, там не сказано. Поэтому считайте это вероятной причиной, а не доказанной.
- Вызов идёт из индикатора. Справочник: из индикаторов WebRequest вызывать нельзя, такой вызов даёт 4014.
- Программа запущена в тестере стратегий, где функция не выполняется; в одной теме на форуме 4014 видели именно там.
Строку в журнале пишет автор советника, поэтому формулировки разные («WebRequest не разрешён», «err=4014»). Ищите номер.
Почему MT5 по умолчанию блокирует WebRequest?
MT5 блокирует WebRequest по умолчанию: MetaQuotes выключает опцию из соображений безопасности и просит вручную указать адреса доверенных сайтов (справка MetaTrader 5, настройки «Советники», дата обращения 8 октября 2026). Риск понятен: советник видит номер вашего счёта, баланс и открытые сделки, а WebRequest может отправить их куда угодно. Представьте проходную со списком пропусков: советник может попроситься куда угодно, но охрана выпустит его только по списку. Через WebRequest обычно идут проверка лицензии, котировки или новости и уведомления в мессенджер.
Как разрешить WebRequest для URL в MT5: пошагово
Чтобы разрешить WebRequest для адреса в MT5, откройте Сервис → Настройки → Советники, отметьте «Разрешить WebRequest для следующих URL», добавьте точный адрес, к которому ходит советник, и нажмите OK.
- Скопируйте точный адрес из документации советника. Именно скопируйте, а не перепечатывайте.
- В MT5 откройте Сервис → Настройки (Ctrl+O), вкладка Советники.
- Отметьте Разрешить WebRequest для следующих URL.
- Щёлкните строку «добавить URL в формате 'https://www.mql5.com'», вставьте адрес, нажмите Enter и убедитесь, что запись осталась в списке.
- Нажмите OK.
Чтобы удалить запись, выделите её и нажмите Delete. Соседний флажок «Разрешить автоматическую торговлю» (в англоязычном терминале — Allow algorithmic trading) отвечает за саму торговлю. Если советник молчит из-за него, смотрите «Автоторговля отключена в MT5».
Какие ошибки в адресе ломают запрос?
Список не умеет угадывать, какой адрес вы имели в виду, поэтому неверная запись выглядит так же, как отсутствующая. На примере адреса Midas:
| Что ввели | Почему не работает | Что делать |
|---|---|---|
Пропущенную букву или .co вместо .com | Это другой адрес | Вставлять, а не печатать |
https://midasgrid.com, когда советник ходит на https://lic.midasgrid.com | Поддомен — отдельный сервер; подтверждения, что MetaQuotes принимает маски, мы не нашли | Добавить тот хост, куда идёт запрос |
http:// вместо https:// | Порт выбирается по протоколу: 80 для http, 443 для https (справочник); что одна запись покрывает оба протокола, мы не нашли | Копировать протокол как в документации |
https://lic.midasgrid.com/path | В списке сервер, а не страница: подсказка в самой строке и пример из справочника — протокол и хост, без пути | Только хост, если разработчик не требует иного |
| Адрес добавлен, галочка не стоит | По умолчанию опция выключена | Поставить галочку |
Нужно ли перезапускать MT5 после добавления адреса WebRequest?
Нужен ли перезапуск MT5 после добавления адреса, точно сказать нельзя. На страницах MetaQuotes, которые мы читали, перезапуск не упомянут, и официального ответа «да» или «нет» мы не нашли. Инструкции некоторых разработчиков советников советуют перезапустить. Разумный порядок такой: нажать OK, дождаться следующего запроса советника (тот, что проверяет лицензию раз в час, сразу не повторит) и перезапускать MT5, только если не помогло.
Если открыты позиции, не спешите с перезапуском. Пока терминал закрыт, ими никто не управляет, а инструкция по установке Midas прямо просит не закрывать терминал, пока открыта корзина.
Почему WebRequest не работает в тестере стратегий?
Справочник говорит прямо: в тестере стратегий WebRequest() не выполняется. На форуме автор, уже добавивший адрес в список, всё равно видел 4014 в прогоне тестера, а модератор ответил ограничением тестера (тема по ссылке выше). Советник, который проверяет лицензию по сети или берёт данные с внешнего сервера, там не сработает, а что он сделает вместо этого, решает его автор: спросите у разработчика. Сетевой код проверяйте на демо-графике в обычном терминале.
Индикаторам WebRequest закрыт по другой причине: они работают в едином потоке, и, по словам справочника, задержка в одном индикаторе может остановить обновление всех графиков того же символа. Перенесите вызов в советник или скрипт.
Нужно ли добавлять адрес заново на VPS и во втором терминале?
Да, считайте, что нужно: окно настроек принадлежит одной установке MT5, а текста MetaQuotes о том, что список копируется между установками, мы не нашли, поэтому терминалу на VPS, терминалу у другого брокера и копии на другом компьютере нужна своя запись. На Windows VPS подключитесь по удалённому рабочему столу, откройте настройки внутри того терминала и добавьте тот же адрес (как подключиться, описано в разделе про VPS).
Если вместо 4014 вы видите 5201, 5202 или 5203, вызов дошёл до сети, а проблема, скорее всего, в соединении: проверьте исходящий HTTPS с VPS, брандмауэр, прокси, VPN или антивирус, который перехватывает HTTPS. В одной теме на форуме про ошибку 5203 ответ отсылал к настройкам прокси (Сервис → Настройки → Сервер) и к такому ПО; подтверждённой причины в теме не названо. Соседние коды разобраны в статье «Ошибки советника в MT5».
Что вы разрешаете, добавляя адрес?
Вы разрешаете любой программе MQL5 в этом терминале, которая умеет вызывать WebRequest, то есть советнику или скрипту, отправлять запросы на этот сервер; книга по MQL5 называет методы HEAD, GET и POST. Список лежит в настройках терминала, а не у одного советника. Он определяет, куда можно слать данные; что слать, решает код советника. Поэтому:
- добавляйте только те адреса, которым доверяете и которые понимаете, из документации самого разработчика;
- если документация молчит, спросите, что именно отправляет советник;
- удаляйте записи, которыми больше не пользуетесь.
Это отдельный переключатель, не путайте его с «Разрешить импорт DLL»: для незнакомых советников MetaQuotes советует держать импорт DLL выключенным.
Как проверить, что заработало?
- Откройте вкладку «Эксперты» (Ctrl+T открывает окно «Инструменты»). После следующего запроса советника строки с 4014 быть не должно.
- Посмотрите собственный статус советника, если он есть.
- Запустите тестовый скрипт. В MetaEditor выберите «Файл → Создать → Скрипт», вставьте код, нажмите F7 и перетащите скрипт на график:
void OnStart()
{
string url = "https://www.mql5.com"; // адрес, который есть в вашем списке
char post[], result[];
string headers;
ResetLastError();
int code = WebRequest("GET", url, NULL, NULL, 5000, post, 0, result, headers);
Print("HTTP code: ", code, ", GetLastError: ", GetLastError());
}
WebRequest возвращает HTTP-код ответа сервера или -1 при системной ошибке (книга по MQL5, выше). Любой код, даже 404, значит, что запрос вышел из терминала и сервер ответил. Если -1, смотрите номер ошибки: 4014 или 5200–5203.
Пример: адрес лицензии Midas
Мы делаем Midas — советник для MT5, который торгует золотом (XAUUSD) на хеджевых центовых счетах. Инструкция по установке (шаг 6) просит одну запись в списке, https://lic.midasgrid.com, и тот же адрес стоит в параметре LicenseServer вашего .set-файла (как загрузить set-файл). Загрузка .set-файла не добавляет адрес в список: список — настройка самого терминала.
Midas проверяет ключ на нашем сервере не чаще раза в час. Страница о конфиденциальности перечисляет, что несёт проверка: номер счёта, лицензионный ключ, версию советника, сборку терминала и символ графика, плюс IP-адрес, который видит сервер. Там же сказано, что это единственный запрос советника к нам и что баланс, ордера и история сделок не отправляются.
Если в журнале «Эксперты» написано, что WebRequest не разрешён: повторите шаг 6 и проверьте каждый символ (https://, без пробелов, ничего после .com). Затем, когда корзины нет, нажмите F3, удалите переменные, имя которых начинается с Midas_Lic_, и снова прикрепите Midas, иначе следующая проверка может ждать до часа. Те же шаги есть в блоке «Если не работает» инструкции по установке; если советник молчит по другим причинам, смотрите «Устранение неполадок».
Что может пойти не так?
- Непроверенный адрес. Сервер из списка может получить всё, что отправит код советника. Каждая запись — это разрешение, которое вы выдаёте.
- Сервер недоступен. Запрос падает (скорее всего, с 5201 или 5202) либо возвращает HTTP-код ошибки, а что советник делает в этом случае, решает его автор.
- Рабочая проверка ничего не говорит о риске. Зелёный статус лицензии значит лишь, что советнику можно работать. Мартингейл-сетка связана с риском: при недостаточном депозите возможен стоп-аут; см. «Риск, прямо».
Источники: справочник MQL5 (WebRequest() и ошибки времени выполнения), книга по MQL5 (раздел об обмене данными с веб-сервером по HTTP/HTTPS), справка MetaTrader 5, темы форума MQL5 по ссылкам выше, инструкция по установке Midas; всё получено 8 октября 2026. Это инструкция по настройке, а не прогноз и не индивидуальная инвестиционная рекомендация. Торговля с плечом связана с риском: если депозита не хватает, возможен стоп-аут. Подбирайте депозит с запасом.
FAQ
Как добавить адрес в список разрешённых для WebRequest в MT5?
Откройте Сервис → Настройки (Ctrl+O), вкладку «Советники», отметьте «Разрешить WebRequest для следующих URL», щёлкните пустую строку списка, вставьте точный адрес, к которому ходит советник, нажмите Enter и OK. Копируйте адрес из документации советника вместе с https:// и добавляйте только хост, без пути к странице, если разработчик не требует иного. Если запись не сохранилась, проверьте галочку и кнопку OK.
Что значит ошибка 4014 в MT5?
Это ERR_FUNCTION_NOT_ALLOWED, «Системная функция не разрешена для вызова». Справочник называет одну причину, вызов WebRequest из индикатора, и сообщает, что в тестере стратегий функция не выполняется. Ответы на форуме указывают на адрес, которого нет в списке разрешённых: проверьте его в Сервис → Настройки → Советники. Сначала убедитесь, что вызов идёт не из индикатора и не из тестера.
Можно ли проверить в тестере стратегий MT5 советник, который использует WebRequest?
Сам веб-запрос в тестере не проверить: в справочнике MQL5 сказано, что WebRequest() в тестере стратегий не выполняется, поэтому список адресов там ничего не решает. Советник, которому нужен веб-сервер, можно проверить на демо-графике в обычном терминале. Как конкретный советник ведёт себя в тестере, решает его автор. Если список настроен верно, а ошибка есть только в тестере, это ожидаемо.
Почему советник не подключается к серверу в MT5?
Сначала прочитайте номер ошибки. 4014 указывает на список разрешённых адресов, индикатор или тестер. 5200 значит, что URL не прошёл проверку: перепроверьте символы. 5201 — не удалось подключиться, 5202 — таймаут, 5203 — запрос не удался; это похоже на сетевую причину: брандмауэр, прокси, антивирус или недоступный сервер. Список лечит только 4014, сеть чинят на стороне VPS или провайдера.
Чем рискуете, добавляя адрес в список WebRequest?
Каждая запись — разрешение: советник, который работает в этом терминале, может отправлять запросы на этот сервер. Список определяет, куда можно слать данные, а что слать, решает код советника, и он видит номер счёта, баланс и открытые сделки. Добавляйте только адреса, которым доверяете, из документации разработчика, и удаляйте ненужные записи.