Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1394

 
leonerd #:

Здравствуйте, не подскажете, получаю ошибку 4014 иногда при вызове SocketCreate()...

Вызываю в сервисе. В доке как-то непонятно описано:

А при вызове из сервисов как? 

Может об этом надо написать в «Ошибки, баги, вопросы»? Сервис и скрипт мало чем отличаются. Хотя возможно, что по каким-то соображениям запретили использование и в сервисах…

 
Alexey Viktorov #:

Может об этом надо написать в «Ошибки, баги, вопросы»? Сервис и скрипт мало чем отличаются. Хотя возможно, что по каким-то соображениям запретили использование и в сервисах…

Да в том-то и дело, что в целом работает. Но иногда вот вылетает 4014. Какая закономерность, пока не понял.

 
leonerd #:

Да в том-то и дело, что в целом работает. Но иногда вот вылетает 4014. Какая закономерность, пока не понял.

То-есть не запрещено?

Может тогда засунуть это в цикл do while и поставить, в случае ошибки, задержку на несколько миллисекунд? Именно в такой цикл, чтобы один раз цикл выполнялся обязательно.

 
Alexey Viktorov #:

То-есть не запрещено?

Может тогда засунуть это в цикл do while и поставить, в случае ошибки, задержку на несколько миллисекунд? Именно в такой цикл, чтобы один раз цикл выполнялся обязательно.

Хм...

ERR_FUNCTION_NOT_ALLOWED      4014      Системная функция не разрешена для вызова

В какой-то момент времени вызов функции блокируется подсистемой. Может нужно не ожидать, а выйти просто до следующего захода?

 
Artyom Trishkin #:

Хм...

В какой-то момент времени вызов функции блокируется подсистемой. Может нужно не ожидать, а выйти просто до следующего захода?

Сервис заходит только при запуске терминала, или при запуске самого сервиса. Следовательно если выйти, то следующий заход будет при перезапуске одного из двух… но и то, и другое делается вручную…

 
Alexey Viktorov #:

Сервис заходит только при запуске терминала, или при запуске самого сервиса. Следовательно если выйти, то следующий заход будет при перезапуске одного из двух… но и то, и другое делается вручную…

Понял. Т.е., сервис работает в цикле? Или в таймере?

 
Artyom Trishkin #:

Понял. Т.е., сервис работает в цикле? Или в таймере?

Сервис работает как скрипт. Разница только в том, что сервис запускается с запуском МТ, а скрипт, сам знаешь… Соответственно если что-то не сработало, то не сработает до перезапуска МТ. Получается, что желательно сделать пау́зу и повторить… Я так думаю.

 
Alexey Viktorov #:

Сервис работает как скрипт. Разница только в том, что сервис запускается с запуском МТ, а скрипт, сам знаешь… Соответственно если что-то не сработало, то не сработает до перезапуска МТ. Получается, что желательно сделать пау́зу и повторить… Я так думаю.

Ты не понял моего вопроса. Или я не так изъясняюсь ¯\_(ツ)_/¯

 
Artyom Trishkin #:

Ты не понял моего вопроса. Или я не так изъясняюсь ¯\_(ツ)_/¯

Одно из двух. Но сервис не работает в цикле и не работает в таймере.

 
Alexey Viktorov #:

Одно из двух. Но сервис не работает в цикле и не работает в таймере.

Хочешь сказать, что он срабатывает разово только при запуске терминала? Нет. А как тогда?