Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления - страница 21

 
Rashid Umarov #:

Что именнно

Если код из примера представить как скрипт:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   int eig_vectors = 0;
//--- Eigen Solver
   matrix_a.Eig(matrix_v, vector_e);
//--- проверим правильность A * v = lambda * v
   for(ulong n = 0; n < vector_e.Size(); n++)
     {
      vector eigen_vector = matrix_v.Col(n);
      vector vector_c1   = eigen_vector * vector_e[n];
      vector vector_c2   = matrix_a.MatMul(eigen_vector);
      //--- слишком много делений, потому ослабим проверку на точность до 10-го знака
      int    errors      = vector_c1.CompareByDigits(vector_c2, 10);
      if(!errors)
         eig_vectors++;
     }
  }

То после компиляции имеем:

'matrix_a' - undeclared identifier      test_Eig.mq5    16      4
'vector_e' - undeclared identifier      test_Eig.mq5    18      25
'matrix_v' - undeclared identifier      test_Eig.mq5    20      29
'vector_e' - undeclared identifier      test_Eig.mq5    21      43
'n' - some operator expected    test_Eig.mq5    21      52
']' - semicolon expected        test_Eig.mq5    21      53
']' - unexpected token  test_Eig.mq5    21      53
'matrix_a' - undeclared identifier      test_Eig.mq5    22      28
possible loss of data due to type conversion from 'ulong' to 'int'      test_Eig.mq5    24      26


Другие примеры из раздела "Преобразования матриц" компилируются нормально.

Если конечно пример подразумевает своё воспроизведение. Если нет, то вопрос снимается...

Документация по MQL5: Методы матриц и векторов / Преобразования
Документация по MQL5: Методы матриц и векторов / Преобразования
  • www.mql5.com
Преобразования - Методы матриц и векторов - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Файлы:
 

Просьба добавить задание интервала показа истории с точностью до секунды.


Нужно для активных скальперов.

Строка для поиска: Uluchshenie 058.
 
Баг-репорты и вопросы улучшений имеют больше шансов на рассмотрение при проводке их через СД или же форума достаточно?
 
Уважаемые разработчики. Есть просьба добавить что-то вроде DRAW_LINE_SHIFTED
Детали здесь https://www.mql5.com/ru/forum/441422
Масштабирование линий одного индикатора в одном окне - Сделайте масштабирование линий одного индикатора в одном окне
Масштабирование линий одного индикатора в одном окне - Сделайте масштабирование линий одного индикатора в одном окне
  • 2023.02.09
  • www.mql5.com
Окно индикатора масштабируется по максимальному и минимальному значениям. В частности по значениям белой линии вашего индикатора. Но боюсь вы просто невнимательно прочитали мое первое сообщение и пропустили момент про уровни 0 и -992582
 
Vitaliy Kuznetsov #:

Давно обращал внимание на мигание, например, уровневых индикаторов. Мигает до тех пор, пока не загрузятся все бары на графике. Возможное решение - не давать рисовать линии, пока всё не загрузится, но тогда некоторые будут думать, что индикатор не работает. Тогда конечно можно выводить надпись "Loading". И всё же, решение на уровне терминала было бы логичнее. А также скорость перерисовки линий/прямоугольников с привязкой к X/Y тоже происходит с некоторым дёрганьем.

Итог, МТ5 затачивается под автоторговлю, но под работу с индикаторами пока что быстрее МТ4, хоть и не без изъянов. Да, да, всё понимаю, 21 век на дворе, все трейдеры уже в МТ5... но не точно

"...не точно" - это правильная оговорка.

 
Denis Kirichenko #:

Если код из примера представить как скрипт:

То после компиляции имеем:


Другие примеры из раздела "Преобразования матриц" компилируются нормально.

Если конечно пример подразумевает своё воспроизведение. Если нет, то вопрос снимается...

Теперь понятно. Нужно посмотреть, почему так получилось.  Поправим,спасибо

 
b3580, это ошибка компилятора?
template <typename T>
void f( string ) {}

void f( const string ) {}

void OnStart()
{
  f(NULL); // 'f' - ambiguous call to overloaded function with the same parameters
  f<int>(NULL);
}
Вроде, все однозначно.
 
fxsaber #:
b3580, это ошибка компилятора? Вроде, все однозначно.

Неоднозначно: подходит и шаблон, и нешаблон.

 
Stanislav Korotky #:

Неоднозначно: подходит и шаблон, и нешаблон.

Если бы это был так, то следующий код компилировался бы.

template <typename T>
void f( string ) {}

void OnStart()
{
  f(NULL); // could not deduce template argument #0
}
 
fxsaber #:

Если бы это был так, то следующий код компилировался бы.

Как раз наоборот. Данная ошибка подтверждает, что шаблон берется в расчет и компилятор не может узнать тип.