WebRequest()

 

Всем привет!

Прошу помочь разобраться с возникшей проблемой.

Использую советника, который читает календарь с ForexFactory. Ранее не было ни каких проблем, чтобы запускать советника в тестере стратегий в терминале MT4. Читал календарь, отображал необходимые новости и выставлял ордера.

Изначально использовал функцию WebRequest() в коде советника (советник так же был размещён в маркете). Позже убрал WebRequest() и начал использовать стандартную Windows библиотеку wininet.dll.

Всё работало исправно.

Пару лет спустя вернулся на WebRequest() и хотел обновить версию советника в маркете. И тут началось интересное!

Система проверки файлов советника не пропускает советника:

Знаю, что есть такое примечание: При работе в тестере стратегий функция WebRequest() не выполняется (информация из справки).

Но!

На моём домашнем компьютере работает версия без DLL-библиотеки и тестер стратегий работает исправно (на всех валютных парах):


При загрузке файла на MQL для обновления продукта, система не пропускает его и пишет что невозможно открыть сделки.

Попробовал запустить тестер стратегий на другом компьютере. Тоже не может открыть сделки и пишет код ошибки 5203 ERR_WEBREQUEST_REQUEST_FAILED Ошибка в результате выполнения HTTP запроса.

Проверял версии, отключал DLL библиотеки в настройках терминала, даю разрешение на использование WebRequest, прописывал адрес сайта.

В итоге, на моём компьютере работает всё исправно через WebRequest() в тестере стратегий (на некоторых компьютерах так же всё работает), на некоторых нет и в MQL не могу обновить файл.

Комментарии к продукту по данной проблеме ещё не получал (ждуна включил) и не могу обновить продукт.

Что это может быть? Как обойти WebRequest() и чтобы он работал в тестере стратегий?

Покопался в старых версиях советника, ни чего не менял, всё как и прежде в коде прописано, но вот такая картина получилась. С DLL-библиотекой MQL не пропустит файл, оно и правильно.

На реальном/демо счетах работает без проблем без использования DLL-библиотеки.

 

Судя по скриншоту система проверки не пускает из за отсутствия сделок при тестировании.

Чтоб пройти тест, добавьте код вида

If(Is Testing()) OrderSend ();

 
Sergey Likho:

Судя по скриншоту система проверки не пускает из за отсутствия сделок при тестировании.

Чтоб пройти тест, добавьте код вида

If(Is Testing()) OrderSend ();

А для маркета это допустимо? У меня такая же проблема. Эксперт полу-автомат авто валидатор не пропускает. Ранее когда модератор проверял в ручную опубликовать получилось, а сейчас обновление не пропускает.

 
Vitalii Ananev:

А для маркета это допустимо? У меня такая же проблема. Эксперт полу-автомат авто валидатор не пропускает. Ранее когда модератор проверял в ручную опубликовать получилось, а сейчас обновление не пропускает.

Это способ пройти валидатор. Потом модератору можно объяснить в чем дело.

В любом случае, если у вас советник, то его как-то должны тестить перед покупкой.

 
Sergey Likho:

Это способ пройти валидатор. Потом модератору можно объяснить в чем дело.

В любом случае, если у вас советник, то его как-то должны тестить перед покупкой.

Можно попробовать, но тогда результаты тестирования на реале будут отличаться от результатов в тестере. У меня в советнике трейдер должен в ручную задать торговые уровни, а эксперт уже автоматом торгует от этих уровней. При чем когда я тестирую на своем компе. забив эти уровни от балды все нормально сделки открываются, а у автовалидатора нет. 

 

Проблема не в ордерах, а в том что советник новости прочитать не может в тестере.

На сколько я помню, ограничение по работе WebRequest в тестере появилось недавно, раньше оно только на индикаторы действовало.

Терминал МТ4 и официальный сайт показывают, что последнее обновление было 19 мая 2017. А за последний год не было ли ещё "каких-то" обновлений?

Какие ограничения были добавлены при работе с WebRequest? 

Каким тогда образом на моём компьютере и некоторых других советник работает без использования DLL-библиотеки и они способны прочитать новости в тестере, а в каких-то нет? И соответственно какие ограничения теперь при проверке WebRequest в MQL?

Последние обновления MetaTrader 4
Последние обновления MetaTrader 4
  • www.metatrader4.com
MetaTrader 4 build 1080 Месяц назад Microsoft выпустила большое обновление операционной системы Windows 10 Creators Update (версия 1703). После его установки у некоторых пользователей перестали запускаться MQL4-программы. В новой версии платформы MetaTrader 4 build 1080 эта проблема исправлена. Советники и индикаторы будут корректно...
 
Evgeniy Russkiy:

Проблема не в ордерах, а в том что советник новости прочитать не может в тестере.

На сколько я помню, ограничение по работе WebRequest в тестере появилось недавно, раньше оно только на индикаторы действовало.

Терминал МТ4 и официальный сайт показывают, что последнее обновление было 19 мая 2017. А за последний год не было ли ещё "каких-то" обновлений?

Какие ограничения были добавлены при работе с WebRequest? 

Каким тогда образом на моём компьютере и некоторых других советник работает без использования DLL-библиотеки и они способны прочитать новости в тестере, а в каких-то нет? И соответственно какие ограничения теперь при проверке WebRequest в MQL?

Вы приложили скриншот ошибки 'нет торговых операций'. Это значит, что сова в автовалидаторе не открывает сделок.

 
Vitalii Ananev:

Вы приложили скриншот ошибки 'нет торговых операций'. Это значит, что сова в автовалидаторе не открывает сделок.

Вижу.

Вопрос не в том что на Screenshot от MQL.

Почему появились ограничения на WebRequest()? Для чего добавлять WebRequest() в советник, если в MQL из-за этого файл не может пройти проверку и пользователи не могут обновиться? Если многие советники построены на WebRequest() и не имеют других открытий ордеров (только через календарь событий), как же обновлять тогда файлы тут?

Не ясно то, что у них это не работает, но у меня это работает (и многих других).

 
Скинули интересную стать почитать по данному вопросу.
Причина обращения: