Ошибки, баги, вопросы - страница 3663

 
Georgiy Merts #:

НЕТ.

Когда заложен нос - люди дышат ртом, и это у них вполне себе получается. Однако, рот человека, всё-таки, не предназначен для дыхания, и дышать им в обычных условиях неправильно. 

Также и тут - начальные проверки и инициализация должны проводиться в Init(). Если при этом таймсерии могут быть недоступны - это должно быть, как минимум, чётко указанно в описании события Init для индикаторов. В справке ничего этого нет сказано. В описании порядка доступа к таймсериям - указано, что бары могут быть несформированы, и для этого надо использовать скрипт с функцией Sleep(), которая не должна вызываться в индикаторах. 

Наконец важно и то, что если индикатор запускается на графике - то всё проходит нормально, и количество баров благополучно выдаётся в функции Init(). Если же терминал перезапущен - то в функции Init() количество баров нулевое. На мой взгляд, тут надо либо привести к общему поведению, когда в функции Init() таймсерии доступны (или недоступны), ну, либо, хотя бы указать в справке - что поведение не определено, и запрашивать число баров в этой функции нельзя. 

DeepSeek, конечно, авторитет... Особенно, учитывая, что функция Bars() появилась РАНЬШЕ, чем функция SeriesInfoInteger() (если не ошибаюсь, ещё в МТ3).

Ну, так я ведь и сказал - "без параметров". 

В обычных случаях разницы нет, однако, когда надо в одном месте получать разные данные, и в том числе количество баров - предпочтительнее SeriesInfoInteger(), а не отдельные функции, среди которых будет и Bars()

Тоже было. Хотел получить данные баров в онинит) и значения индикаторов на них. В общем пришел к тому, что они и не с первого раза получаются. Пришлось сделать цикл, пока не получены данные. Только так получилось.) и это в онкалкулейт)
 
Georgiy Merts #:

НЕТ.

Ну, собственно, я не спорю. Я просто привёл пример, что ехать можно и без шашечек.

Поведение терминала при старте действительно похоже на баг.

Баги сказано писать сюда.

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5 - Версия MetaTrader 5 расширила поддержку библиотеки линейной алгебры OpenBLAS.
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5 - Версия MetaTrader 5 расширила поддержку библиотеки линейной алгебры OpenBLAS.
  • 2025.07.31
  • www.mql5.com
SylvesterEquationTriangular решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц верхнетреугольные. SylvesterEquationTriangularBlocked решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц верхнетреугольные матрицы
 
Описание возвращаемого значения противоречит примеру:
 
Sergey Gridnev #:
Описание возвращаемого значения противоречит примеру:

Не увидел противоречия.

 
fxsaber #:

Не увидел противоречия.

Да. Был неправ.
Прочитал бегло: "Нулевое значение записывается в переменную _StopFlag, если ..."

 

Build 5233

Вопрос по ArrayResize. В справке написано:

Возвращаемое значение

При успешном выполнении функция возвращает количество всех элементов, содержащихся в массиве после изменения размера; в противном случае возвращает -1 и массив не меняет размеры.

Запускаю скрипт:

void OnStart()
  {
   ulong array[][2];
   int size = ArrayResize(array, 100, 1024);
   Print(size);   
  }

Результат в MT5:

2025.08.28 03:07:07.749 test_ArrayResize (GBPUSD,M10)   100

Результат в MT4:

2025.08.28 03:27:15.124 test_ArrayResize GBPUSD,M5: 200

В MT5 обман? Или теперь так?

Файлы:
 
Konstantin Gruzdev #:

Build 5233

Вопрос по ArrayResize. В справке написано:

Запускаю скрипт:

Результат в MT5:

Результат в MT4:

В MT5 обман? Или теперь так?

Устанавливает новый размер в первом измерении массива

Возвращает то, что изменила. Критика уместная с Вашей стороны.

Почитайте тут https://www.mql5.com/ru/docs/array/arrayrange
Документация по MQL5: Операции с массивами / ArrayRange
Документация по MQL5: Операции с массивами / ArrayRange
  • www.mql5.com
Возвращает число элементов в указанном измерении массива. Параметры array[] [in]  Проверяемый массив. rank_index [in]  Индекс измерения...
 
Konstantin Gruzdev #:

Вопрос по ArrayResize. В справке написано:

В MT5 обман? Или теперь так?

Так было всегда в MQL4 и MQL5. Это одно из отличий языков.

 
Aleksey Vyazmikin и fxsaber спасибо за ответы.
 
Terminal MetaTrader 5 x64 build 5233 started for MetaQuotes Ltd.

Terminal Windows 11 build 26100, 12 x AMD Ryzen 5 5500U with Radeon, AVX2, 10 / 15 Gb memory, 271 / 476 Gb disk, UAC, GMT+10

Когда запускаешь терминал на основном мониторе ноутбука, то данный эффект не наблюдается.

Когда запускаешь терминал на дополнительном мониторе, подключенном к ноутбуку (и в качестве основного, и в качестве расширенного пространства) странное поведение дополнительных окон терминала (Окно данных, Навигатор, Обзор рынка, может и другие):

Когда открепляешь окно (режим Floating) и выставляешь его в нужном месте и нужного размера, то по горячим клавишам(меню) оно появляется и убирается в том месте и размере, как выставишь, но только до закрытия терминала.

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

Первоначально доп.окно(окна) открывается в установленном месте и размере и тут же само раскрывается в полный размер запущенного окна терминала.

Бесячий мешающий работе баг, которого нет на двух мониторном пк конфиге.

P.S. Когда открываешь письма во вкладке Почта или Новости в панели Инструменты, то они тоже раскрываются во всё окно терминала.