Terminal
MQL5
MetaTester
MetaEditor
Correcciones de crash logs.
Terminal
MQL5
double vector.RegressionError(const enum lr_error); double matrix.RegressionError(const enum lr_error); vector matrix.RegressionError(const enum lr_error,const int axis);Los cálculos que se pueden utilizar son:
enum REGRESSION_ERROR { REGRESSION_MAE, // Error medio absoluto REGRESSION_MSE, // Error medio cuadrático REGRESSION_RMSE, // Raíz del error medio cuadrático REGRESSION_R2, // R al cuadrado REGRESSION_MAPE, // Error medio absoluto en porcentaje REGRESSION_MSPE, // Error medio cuadrático en porcentaje REGRESSION_RMSLE // Error medio logarítmico cuadrático };
MetaEditor
Tester
Terminal
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]; //--- Sort the array arr.ArgSort(indexes,-1,0); Print("indexes"); ArrayPrint(indexes); } // Result log: // 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()); } // Result log: // String length is 11
MQL5
double matrix::Flat(ulong index) const; // getter void matrix::Flat(ulong index,double value); // setter
Pseudocódigo para calcular la dirección de un elemento de la matriz:
ulong row=index / mat.Cols(); ulong col=index % mat.Cols(); mat[row,col]
Por ejemplo, para una matriz mat(3,3), el acceso a los elementos puede escribirse como sigue
Tester
Terminal
Terminal
MQL5
VPS
MetaEditor
Tester
Documentación actualizada.
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; // parte real double imag; // parte imaginaria };El tipo "complex" puede transmitirse mediante un valor en calidad de parámetro para las funciones MQL5 (a diferencia de las estructuras normales, que se transmiten mediante un enlace). Para las funciones importadas desde una DLL, el tipo "complex" debe transmitirse solo mediante un enlace.
complex square(complex c) { return(c*c); } void OnStart() { Print(square(1+2i)); // se transmite una constante como parámetro } // se mostrará "(-3,4)", la representación de línea del número complejoPara los números complejos, en estos momentos están disponibles solo las operaciones sencillas: =, +, -, *, /, +=, -=, *=, /=, ==, !=.
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; }Antes, como resultado de la llamada de esta función, la matriz "а1" tenía un tamaño 3. Ahora, tendrá un tamaño 1.
Documentación actualizada.
ENUM_FP_CLASS MathClassify( double value // número real );La enumeración contiene los siguientes valores:
if(MathClassify(value)>FP_ZERO) { Print("value is not a valid number"); }