Terminal

Terminal


 
MQL5
void OnStart() { int arr[4][5]= { {22, 34, 11, 20, 1}, {10, 36, 2, 12, 5}, {33, 37, 25, 13, 4}, {14, 9, 26, 21, 59} }; ulong indexes[4][5]; //--- Отсортируем массив arr.ArgSort(indexes,-1,0); Print("indexes"); ArrayPrint(indexes); } // Результат в журнале: // indexes // [,0][,1][,2][,3][,4] // [0,] 4 2 3 0 1 // [1,] 2 4 0 3 1 // [2,] 4 3 2 0 1 // [3,] 1 0 3 2 4
void OnStart() { string test="some string"; PrintFormat("String length is %d",test.Length()); } // Результат в журнале: // String length is 11
MQL5
double matrix::Flat(ulong index) const; // getter void matrix::Flat(ulong index,double value); // setter
Псевдокод вычисления адреса элемента матрицы:
ulong row=index / mat.Cols(); ulong col=index % mat.Cols(); mat[row,col]
Например, для матрицы matrix mat(3,3) доступы можно записать так:

Tester
Terminal
Terminal
 
MQL5
VPS
MetaEditor
 
 
 

 
    
 
    
 
    
 
    
 
 
 
 
 
 
struct POINT { int x,y; }; int GetYFunc(y) { return(y * y); } void SomeFunction(int x1,int x2,int y) { POINT pt={ x1+x2, GetYFunc(y) }; ProcessPoint(pt); };
 
 
 
 
 
 
 
 
struct complex { double real; // вещественная часть double imag; // мнимая часть };Тип "complex" может передаваться по значению в качестве параметра для MQL5-функций (в отличие от обычных структур, которые передаются только по ссылке). Для функций, импортируемых из DLL, тип "complex" должен передаваться только по ссылке.
complex square(complex c)
  {
   return(c*c);
  }
  
void OnStart()
  {
   Print(square(1+2i));  // в качестве параметра передается константа
  }
// будет выведено "(-3,4)" - это строковое представление комплексного числаДля комплексных чисел на данный момент доступны только простые операции: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

select count(*) as book_count, cast(avg(parent) as integer) as mean, cast(median(parent) as integer) as median, mode(parent) as mode, percentile_90(parent) as p90, percentile_95(parent) as p95, percentile_99(parent) as p99 from moz_bookmarks;


 
 
 
 
 
void func(int &arr[ ][ ][ ][ ])
  {
  } 
 
 
 
 

 

 
struct MyStruct { string Array[]; }; void OnStart() { MyStruct a1,a2; ArrayResize(a1.Array,3); ArrayResize(a2.Array,1); a1=a2; }Ранее в результате вызова такой функции массив "а1" имел размер 3. Теперь он будет иметь размер 1.

 
 
 
 
 
 
    
 
 
 
    
 
    
 
    
 
    
    
    
 
    
 
    
 
    
 
ENUM_FP_CLASS MathClassify( double value // вещественное число );Перечисление содержит следующие значения:
if(MathClassify(value)>FP_ZERO) { Print("value is not a valid number"); }
    
 
    
 
 

 
      
    
 
    
 
    
      
    
 
    
 
    
Изменены критерии оптимизации,
      в которых учитывалось два показателя — баланс и некий второй фактор. 
      Теперь в них учитывается только второй фактор, без баланса. Такие 
      критерии являются более простыми и понятными для анализа.
    
      
    
 
    
 
    
 