Странное поведение WebRequest в MT5 - через какое-то время выдает ошибку.

 

Берём из встроенной в МТ(4/5) Помощи пример для функции WebRequest и копируем его в скрипт WebRequest1.ex5. Компилируем и выполняем на любом графике. В логе нет ошибок.

В примере указан сайт https://finance.yahoo.com. Меняем его на https://www.cmegroup.com. Сохраняем его под именем WebRequest.ex5. Компилируем и выполняем. В логе также нет ошибок.

Понятно, что в настройках в разделе WebRequest разрешаем доступ к этим сайтам. Можно даже сделать 2 скрипта с этими

Спустя, например, 30 минут выполняем повторно эти 2 скрипта -  в логе опять нет ошибок.

А вот далее интересней, через какое-то время, может через час, может через 2, а может и раньше, если ПК уснул и был разбужен, то скрипт с URL www.cmegroup.com выдаёт ошибку: "Ошибка загрузки 'https://www.cmegroup.com', код 1003".

Но тут же запущенный скрипт с URL finance.yahoo.com по прежнему работает без ошибок. Так происходит на МТ5 всегда, рано или поздно.

Но удивительно, что всё тоже самое на МТ4 работает без проблем. Проверял параллельно обе версии МТ. Сначала грешил на конкретную установку МТ5. Проверил на другом брокере и на другом ПК - все так же ошибка, спустя какое-то время. 



Yahoo Finance - Stock Market Live, Quotes, Business & Finance News
Yahoo Finance - Stock Market Live, Quotes, Business & Finance News
  • finance.yahoo.com
At Yahoo Finance, you get free stock quotes, up-to-date news, portfolio management resources, international market data, social interaction and mortgage rates that help you manage your financial life.
 

https://stackoverflow.com/questions/18631488/what-does-http-response-code-1003-means

Its a  non-standard response code. Companies like  Cloudflare use it to specify that the direct IP access is not allowed for this request.

I got this when i tried accessing 80 port of some IP which was a part of Cloudflare. But this does not mean that all 1003 responses mean the same. "Non Standard" :P

What does HTTP Response Code 1003 means?
What does HTTP Response Code 1003 means?
  • 2013.09.05
  • fear_matrix fear_matrix 4,577 10 10 gold badges 42 42 silver badges 63 63 bronze badges
  • stackoverflow.com
Would anyone please tell me what does HTTP response code 1003 means. I tried googling it but unable to find a correct answer
 
Igor Ramensky:

Берём из встроенной в МТ(4/5) Помощи пример для функции WebRequest и копируем его в скрипт WebRequest1.ex5. Компилируем и выполняем на любом графике. В логе нет ошибок.

В примере указан сайт https://finance.yahoo.com. Меняем его на https://www.cmegroup.com. Сохраняем его под именем WebRequest.ex5. Компилируем и выполняем. В логе также нет ошибок.

Понятно, что в настройках в разделе WebRequest разрешаем доступ к этим сайтам. Можно даже сделать 2 скрипта с этими

Спустя, например, 30 минут выполняем повторно эти 2 скрипта -  в логе опять нет ошибок.

А вот далее интересней, через какое-то время, может через час, может через 2, а может и раньше, если ПК уснул и был разбужен, то скрипт с URL www.cmegroup.com выдаёт ошибку: "Ошибка загрузки 'https://www.cmegroup.com', код 1003".

Но тут же запущенный скрипт с URL finance.yahoo.com по прежнему работает без ошибок. Так происходит на МТ5 всегда, рано или поздно.

Но удивительно, что всё тоже самое на МТ4 работает без проблем. Проверял параллельно обе версии МТ. Сначала грешил на конкретную установку МТ5. Проверил на другом брокере и на другом ПК - все так же ошибка, спустя какое-то время. 



позволять засыпать ПК с включенным торговым терминалом (и роботами!), это конечно то ещё техническое решение :-) ну да ладно..

может чудить DNS + CloudFlare и подобные ему. Точнее они точно чудят. После простоя, первое обращение к DNS и адресу за CloudFlare может происходить долго и даже закончится ошибкой. Пока ресолвится имя, пока он выясняют не спамер ли вы,пока выбирают подходящее зеркало и кеши. Таймеры могут отвалится, тем более windows только-только проснулся, часть служб ещё запускается/активирется.

Можно чуть ускорить ресолвы имён (они львиную долю занимают от запросов):

1. если обращения WebRequest к своим ресурсам, или ресурс имеет почти-постоянный и единственный IP, то стоит внести его в /etc/hosts. Но придётся следить на счёт смены IP.

2. кеширующий DNS ещё тоже поможет. Win конечно и так кеширует, но как-то слабенько, надо более агрессивно

3. внезапно, хорошо помогает простой мониторинг: нечасто, раз в 15 мин спрашивать ping нужного сайта или обращаться к главной странице. 

 
Maxim Kuznetsov #:

позволять засыпать ПК с включенным торговым терминалом (и роботами!), это конечно то ещё техническое решение :-) ну да ладно..

может чудить DNS + CloudFlare и подобные ему. Точнее они точно чудят. После простоя, первое обращение к DNS и адресу за CloudFlare может происходить долго и даже закончится ошибкой. Пока ресолвится имя, пока он выясняют не спамер ли вы,пока выбирают подходящее зеркало и кеши. Таймеры могут отвалится, тем более windows только-только проснулся, часть служб ещё запускается/активирется.

Можно чуть ускорить ресолвы имён (они львиную долю занимают от запросов):

1. если обращения WebRequest к своим ресурсам, или ресурс имеет почти-постоянный и единственный IP, то стоит внести его в /etc/hosts. Но придётся следить на счёт смены IP.

2. кеширующий DNS ещё тоже поможет. Win конечно и так кеширует, но как-то слабенько, надо более агрессивно

3. внезапно, хорошо помогает простой мониторинг: нечасто, раз в 15 мин спрашивать ping нужного сайта или обращаться к главной странице. 

При чем тут " позволять засыпать ПК с включенным торговым терминалом (и роботами!), это конечно то ещё техническое решение :-) "? 

Я вам про проблему, вы мне про своё отношение....  ну да ладно..

Этого не замечаете - на МТ4 работает без проблем. 

 

Привет!

Сейчас идет ЖЕСТОЧАЙШАЯ ВОЙНА в сфере айти-информатики и информации.

И в зачастую те же ТРАКТЫ-ШЛЮЗЫ-ДАТЫ через которых  ты "жил", то теперь через них идут "ДИ-ДОС" атаки, атаки флудеров-ботов, атаки интернет бойцов тех или иных стран.

И через все порталы теперь идут терабайты инфы за раз - чтобы уронить тот или иной сайт врага.

Вот почему всё стало на перекосяк.

А наши пик-мик биты идут и блуждают в этих инфо-штормах в сети.
 
Igor Ramensky:

Берём из встроенной в МТ(4/5) Помощи пример для функции WebRequest и копируем его в скрипт WebRequest1.ex5. Компилируем и выполняем на любом графике. В логе нет ошибок.

В примере указан сайт https://finance.yahoo.com. Меняем его на https://www.cmegroup.com. Сохраняем его под именем WebRequest.ex5. Компилируем и выполняем. В логе также нет ошибок.

Понятно, что в настройках в разделе WebRequest разрешаем доступ к этим сайтам. Можно даже сделать 2 скрипта с этими

Спустя, например, 30 минут выполняем повторно эти 2 скрипта -  в логе опять нет ошибок.

А вот далее интересней, через какое-то время, может через час, может через 2, а может и раньше, если ПК уснул и был разбужен, то скрипт с URL www.cmegroup.com выдаёт ошибку: "Ошибка загрузки 'https://www.cmegroup.com', код 1003".

Но тут же запущенный скрипт с URL finance.yahoo.com по прежнему работает без ошибок. Так происходит на МТ5 всегда, рано или поздно.

Но удивительно, что всё тоже самое на МТ4 работает без проблем. Проверял параллельно обе версии МТ. Сначала грешил на конкретную установку МТ5. Проверил на другом брокере и на другом ПК - все так же ошибка, спустя какое-то время. 

Спасибо за сообщение, проверим


1003 - внутренняя ошибка реализации WebRequest

Можно проверить, какое описание ошибки возвращается в параметре result функции WebRequest-а.

 
Igor Ramensky #:

При чем тут " позволять засыпать ПК с включенным торговым терминалом (и роботами!), это конечно то ещё техническое решение :-) "? 

Я вам про проблему, вы мне про своё отношение....  ну да ладно..

Этого не замечаете - на МТ4 работает без проблем. 

MT4 -32 бита, 5-64

внезапно, у них (у 32-х битных и 64) есть разница. В сетевом стеке, конкретно в обращениях с DNS точно есть. Безотносительно MetaTrader или иного приложения. Тем более разница будет проявляться когда комп. засыпает/просыпается

я вам про это говорю, а отчего-то в какие-то обиды.

Обращение к DNS можно сократить по времени, про это всё написал.  

И рабочее решение, пока разработчики разберутся, максимально простое и практичное - не класть в сон комп. с работающим торговым терминалом. 

 
Igor Ramensky:


...

Но удивительно, что всё тоже самое на МТ4 работает без проблем. Проверял параллельно обе версии МТ. Сначала грешил на конкретную установку МТ5. Проверил на другом брокере и на другом ПК - все так же ошибка, спустя какое-то время. 


Уточните пожалуйста версии ОС и терминала, на которых воспроизвелось данное поведение

 
Ilyas #:

Уточните пожалуйста версии ОС и терминала, на которых воспроизвелось данное поведение

МТ5

MetaTrader 5 x64 build 3280 started for MetaQuotes Software Corp.

Windows 11 build 22000, 12 x Intel Xeon  E5-1650 v2 @ 3.50GHz, 19 / 31 Gb memory, 343 / 476 Gb disk, UAC, GMT+3


МТ4

GCI Financial MT4 build 1353 started (GCI Financial Ltd.)
Windows 10 Pro x64, IE 11, UAC, 12 x Intel Xeon  E5-1650 v2 @ 3.50GHz, Memory: 25675 / 32694 Mb, Disk: 343 / 476 Gb, GMT+3 (ПК тот же)

 
Igor Ramensky:

Берём из встроенной в МТ(4/5) Помощи пример для функции WebRequest и копируем его в скрипт WebRequest1.ex5. Компилируем и выполняем на любом графике. В логе нет ошибок.

В примере указан сайт https://finance.yahoo.com. Меняем его на https://www.cmegroup.com. Сохраняем его под именем WebRequest.ex5. Компилируем и выполняем. В логе также нет ошибок.

Понятно, что в настройках в разделе WebRequest разрешаем доступ к этим сайтам. Можно даже сделать 2 скрипта с этими

Спустя, например, 30 минут выполняем повторно эти 2 скрипта -  в логе опять нет ошибок.

А вот далее интересней, через какое-то время, может через час, может через 2, а может и раньше, если ПК уснул и был разбужен, то скрипт с URL www.cmegroup.com выдаёт ошибку: "Ошибка загрузки 'https://www.cmegroup.com', код 1003".

Но тут же запущенный скрипт с URL finance.yahoo.com по прежнему работает без ошибок. Так происходит на МТ5 всегда, рано или поздно.

Но удивительно, что всё тоже самое на МТ4 работает без проблем. Проверял параллельно обе версии МТ. Сначала грешил на конкретную установку МТ5. Проверил на другом брокере и на другом ПК - все так же ошибка, спустя какое-то время. 

тайм аут сколько?

очень похоже, что сам WR из ТМ4 в МТ5 перенесен, а значения по умолчанию для него нет
 
Renat Akhtyamov #:

тайм аут сколько?

очень похоже, что сам WR из ТМ4 в МТ5 перенесен, а значения по умолчанию для него нет

int res=WebRequest("GET",url,cookie,NULL,500,post,0,result,headers); 

эта строка в обоих, всё одинаково.

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

Но вот примерно полгода назад всё работало на обоих МТ один и тот же код, в течении нескольких лет, но МТ5 стал впоследствии слетать, всё было не до него, но недавно стал искать из-за чего более пристально и вышел на WR.

Причина обращения: