Новая версия платформы MetaTrader 5 build 3180: Векторы и матрицы в MQL5 и повышение удобства работы - страница 15

 
Roman #:

Кстати и в входных параметрах, было бы не плохо выделить жирным шрифтом имя группы.
В идеале ещё и подсветить другим цветом строку с именем группы. 
Иначе всё сливается, и трудно найти разграничение, когда много групп.

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

Новая версия платформы MetaTrader 5 build 3091: Улучшения в работе

fxsaber, 2021.12.20 10:57

input group "Group";
input string inStr = "String";

void OnInit() {}

Отображение входных параметров при использовании group значительно отличается в Тестере и Терминале.


Обратите внимание, насколько удобнее это сделано в Тестере (внизу)! Просьба в Терминале сделать аналогично.

 
Просим сделать аналогично.
И подсветить строку  с именем группы.
 

IDE MQ Demo 3180

В классах не появляется выпадающий список.

c


Прописываю дальше

с1


Ошибка

'Eye' is not a member of 'matrix' type  Test.mq5        22      9
expression has no effect        Test.mq5        22      7


Слово this не помогает.
Просьба обновить документацию.

 

Как сравнить две матрицы по размеру?

if(A.Size() !=  B.Size())

Метод .Size() отсутствует для матриц.

 
Roman #:

Как сравнить две матрицы по размеру?

Метод .Size() отсутствует для матриц.

У матриц два измерения. Надо сравнивать оба - Cols() и Rows().  Тут Size() не подойдет. 

 

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

Новая версия платформы MetaTrader 5 build 3091: Улучшения в работе

traveller00, 2021.12.04 15:10

Есть простой скрипт

void OnStart()
{
  ushort Item,Array[];
  Print(sizeof(Item));
  Print(sizeof(Array[0]));
}

Будучи собранный старой релизной версией 2940 он выдаёт результат 2 2, как и ожидается.

Будучи собранный последней релизной версией 3091 он выдаёт результат 2 4.

Почему?

На последней релизной 3180 баг на месте.
 

"ZigZag.ex5 version is too old." Соответственно индикаторы на его основе - умерли.

 

3180

В настройках индикатора

input double     ComBr      = 0.74;                   //Комиссия брокера в 1 сторону
input double     ComBirCur  = 0.0014;                 //Комиссия биржи за вал. контр. %  
input double     ComBirProc = 0.0050;                 //Комиссия биржи за проц. контр. % 
input double     ComBirSpot = 0.0060;                 //Комиссия биржи за фонд. контр. %
input double     ComBirInd  = 0.0020;                 //Комиссия биржи за инд. контр. %
input double     ComBirDer  = 0.0040;                 //Комиссия биржи за тов. контр. %

Результат


До 3180 все было нормально

 
Да, во входных параметрах, что-то не так с double величинами.
Простейший показательный пример ("сову" можно набросить на любой график и в окне свойств сразу получим 1.1200000000000001 ):
input double var_price = 1.12 ;

int OnInit()
  {
   return(INIT_SUCCEEDED);
  }


 
 
Georgiy Merts #:

У матриц два измерения. Надо сравнивать оба - Cols() и Rows().  Тут Size() не подойдет. 

Метод .SIze ожидалось увидеть и для матриц.
Для векторов есть, для матриц нет.

ulong Size(matrix &A)
{
   return(A.Rows() * A.Cols());     
}