Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 46

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5

fxsaber, 2018.11.27 18:41

Обозначенная проблема не началась с 19xx билдов, а была и раньше. Переключаюсь между Терминалом и редактором через F4. Несколько раз в день обнаруживаю такое положение окон

Все подокна доведены до минимальных размеров. Правлю до нормальных, проходит какое-то время - повторяется. Не сильно напрягает, но все же.


Sergey Chalyshev:

Аналогично, давно наблюдаю такую проблему, иногда даже сильно напрягает.

Только от F4 это не зависит, переключаюсь только с помощью мыши.

 

Оптимизатор по завершении выводит такую статистику

optimization finished, total passes 200
optimization done in 2 minutes 57 seconds
shortest pass 0:00:00.764, longest pass 0:00:01.982, average pass 0:00:00.862


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

Первая пачка

pass 0 (batch of 128 tasks) started
common synchronization completed
EURUSD: ticks synchronized already [43 bytes]
pass 0 returned result 412.96 in 0:00:01.982
pass 1 returned result 909.11 in 0:00:00.873
pass 2 returned result 1231.45 in 0:00:00.827


Вторая пачка

pass 126 returned result 9220.59 in 0:00:00.998
pass 127 returned result 9254.93 in 0:00:00.826
pass 128 (batch of 72 tasks) started
pass 128 returned result 9289.36 in 0:00:01.233
pass 129 returned result 9323.05 in 0:00:00.889
pass 130 returned result 9356.73 in 0:00:00.874


Возможно ли поправить статистику с учетом этих всплесков холодных стартов? Может прекратить учитывать время на холодный старт? А то итоговая стата получается искаженной.

 

Просьба добавить Recent-советники в Тестер - список последних выбранных в Тестере советников.


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

 

Ситуация с WebRequest и доступ к cftc.gov через MetaTrader 5 - причина отказа в доступе найдена.

Как и обещал делаю рапорт. Оказалось что в MetaTrader 4 и MetaTrader 5 по-разному обрабатываются поля 'Allow WebRequest to listed URL'.

Возможность доступа к сайту будет зависеть от комбинаций адреса в функции url

WebRequest("GET", url, cookie, 5000, post, result, headers);

и того, что указано в графе Allow WebRequest for listed URL:

При этом у разных платформ разное поведение!

У MetaTrader 4 поведение следующее:

Протокол указанный в 'Allow WebRequest for listed URL'Протокол, указанный в параметре url функции WebReuest Доступ к сайту
httphttp Разрешен
httphttps Запрещен 
httpshttpЗапрещен 
httpshttpsРазрешен 

У MetaTrader 5 до билда 1950:

Протокол указанный в 'Allow WebRequest for listed URL'Протокол, указанный в параметре url функции WebReuest Доступ к сайтуКомментарии сервера/MT5 
httphttpЗапрещен400 The plain HTTP request was sent to HTTPS port
httphttps Запрещен Ошибка 4014 - вызов функции запрещен 
httpshttpЗапрещен Ошибка 4014 - вызов функции запрещен
httpshttpsРазрешен  Код сервера 200 - все OK.

После билда 1950 протокол в WebRequest for listed URL в MetaTrader 5 можно не указывать вовсе, в связи с переходом на WebSocket он будет игнорироваться:

Renat Fatkhullin:
В новой версии в связи с добавлением SocketXXX функций мы вообще игнорируем имя протокола. http и https становятся незначащими.

Т.е. теперь можно писать без указания протокола, например так:


Это будет работать. Однако адрес в параметре url функции WebRequest должен содержать фактический протокол передачи данных. Для сайта cftc.gov это https.

Т.е.:

WebRequest("GET", "https://www.cftc.gov", cookie, 5000, post, result, headers);

Будет работать, а 

WebRequest("GET", "http://www.cftc.gov", cookie, 5000, post, result, headers);

работать не будет.

Хотя апдейт 1950 не сделал обе платформы полностью унифицированными, этого вполне достаточно для работы. Всем спасибо:)

 
Vasiliy Sokolov:

Ситуация с WebRequest и доступ к cftc.gov через MetaTrader 5 - причина отказа в доступе найдена.

Как и обещал делаю рапорт. Оказалось что в MetaTrader 4 и MetaTrader 5 по-разному обрабатываются поля 'Allow WebRequest to listed URL'.

Возможность доступа к сайту будет зависеть от комбинаций адреса в функции url

и того, что указано в графе Allow WebRequest for listed URL:

При этом у разных платформ разное поведение!

У MetaTrader 4 поведение следующее:

Протокол указанный в 'Allow WebRequest for listed URL'Протокол, указанный в параметре url функции WebReuest Доступ к сайту
httphttp Разрешен
httphttps Запрещен 
httpshttpЗапрещен 
httpshttpsРазрешен 

У MetaTrader 5 иное поведение:

Протокол указанный в 'Allow WebRequest for listed URL'Протокол, указанный в параметре url функции WebReuest Доступ к сайтуКомментарии сервера/MT5 
httphttpЗапрещен400 The plain HTTP request was sent to HTTPS port
httphttps Запрещен Ошибка 4014 - вызов функции запрещен 
httpshttpЗапрещен Ошибка 4014 - вызов функции запрещен
httpshttpsРазрешен  Код сервера 200 - все OK.

Из-за того что один и тот же код, компилировался под разные платформы, ошибка проявлялась только на МТ5. В связи с этим хотелось бы видеть:

  1. Унифицированного поведения для обоих платформ;
  2. Поведения, которое бы не зависело от того, какой префикс стоял бы как минимум в Allow WebRequest for listed URL - Пользователи не понимают что нужно туда ставить, путаются от http и https. Пишут мне в личку с просьбой настроить.
В новой версии в связи с добавлением SocketXXX функций мы вообще игнорируем имя протокола. http и https становятся незначащими.
 
Renat Fatkhullin:
В новой версии в связи с добавлением SocketXXX функций мы вообще игнорируем имя протокола. http и https становятся незначащими.

Перешел на 1950. Потестил. Обновил пост с учетом последней информации. Спасибо.

 

Терминал 1950. советник скомпилирован тоже на 1950. Вылетает в реальной торговле.

Access violation at 0x00007FF76380D5E2 read to 0x000000BF827C4A80

00007FF76380D580 4053              push       rbx

00007FF76380D582 56                push       rsi

00007FF76380D583 57                push       rdi

Безопасно ли откатиться на 1881 если у брокера сейчас стоит 1940. Терминалы для фондового и срочного рынка ММВБ.

И как правильно откатиться ? Одной замены terminal64.exe достаточно ?

Я думаю функция отката на предыдущую версию термина была бы всеми востребована.

Файлы:
 
pivomoe :

Терминал 1950. советник скомпилирован тоже на 1950. Вылетает в реальной торговле.

Access violation at 0x00007FF76380D5E2 read to 0x000000BF827C4A80

00007FF76380D580 4053              push       rbx

00007FF76380D582 56                push       rsi

00007FF76380D583 57                push       rdi

Безопасно ли откатиться на 1881 если у брокера сейчас стоит 1940. Терминалы для фондового и срочного рынка ММВБ.

И как правильно откатиться ? Одной замены terminal64.exe достаточно ?

Я думаю функция отката на предыдущую версию термина была бы всеми востребована.

Попробуйте последнюю версию бета-версии 1952 года.
 
Alain Verleyen:
Попробуйте последнюю версию бета-версии 1952 года.

При компиляции идут варнинги на все места где вместо заявленного в определении функции возвращаемого значения bool функция возвращает, что-то другое. Например в стандартном файле Curve.mqh варнинг в этой строчке.

  bool              TrendLineVisible(void)               const { return(m_trend_visible); }

Переменная m_trend_visible объявлена как double.

   //--- trend line property
   uint              m_trend_clr;
   double            m_trend_visible;

 Других варнингов стандартной библиотеке не нашел.Вообще сами эти изменения мне понравились. Благодаря им нашел ошибку в своем коде.

 
pivomoe:

Терминал 1950. советник скомпилирован тоже на 1950. Вылетает в реальной торговле.

Access violation at 0x00007FF76380D5E2 read to 0x000000BF827C4A80

00007FF76380D580 4053              push       rbx

00007FF76380D582 56                push       rsi

00007FF76380D583 57                push       rdi

Безопасно ли откатиться на 1881 если у брокера сейчас стоит 1940. Терминалы для фондового и срочного рынка ММВБ.

И как правильно откатиться ? Одной замены terminal64.exe достаточно ?

Я думаю функция отката на предыдущую версию термина была бы всеми востребована.

Спасибо за сообщение.

Предоставьте пожалуйста больше сведений об ошибке через ЛС.
Если есть исходный код программы которая вызывает данную ошибку, то приложите пожалуйста его. Код будет удалён после изучения и исправления ошибки.
Если кода нет, то приложите EX5 файл