Terminal
MQL5
MetaTester
MetaEditor
Correções 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);Os cálculos que podem ser utilizados são:
enum REGRESSION_ERROR { REGRESSION_MAE, // Erro médio absoluto REGRESSION_MSE, // Erro médio quadrático REGRESSION_RMSE, // Raiz do erro médio quadrático REGRESSION_R2, // R ao quadrado REGRESSION_MAPE, // Erro médio absoluto em porcentagem REGRESSION_MSPE, // Erro médio quadrático em porcentagem REGRESSION_RMSLE // Erro médio logarítmico quadrá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]; //--- Classificamos a matriz arr.ArgSort(indexes,-1,0); Print("indexes"); ArrayPrint(indexes); } // Resultado no 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()); } // Resultado no 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 o endereço de um elemento da matriz:
ulong row=index / mat.Cols(); ulong col=index % mat.Cols(); mat[row,col]
Por exemplo, para uma matriz matrix mat(3,3) o acesso aos elementos pode ser registrado assim:
Tester
Terminal
Terminal
MQL5
VPS
MetaEditor
Tester
Documentação atualizada.
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 imaginária };O tipo "complex" pode ser passado por valor como um parâmetro para funções MQL5 (ao contrário de estruturas comuns, que são passadas apenas por referência). Para funções importadas a partir de DLLs, o tipo "complex" deve ser passado apenas por referência.
complex square(complex c) { return(c*c); } void OnStart() { Print(square(1+2i)); // como parâmetro é passada a constante } // será exibido "(-3,4)", que é uma representação de string para um número complexoPara números complexos, atualmente estão disponíveis apenas operações simples: =, +, -, *, /, +=, -=, *=, /=, ==, !=.
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; }Anteriormente, como resultado da chamada de tal função, a matriz "a1" tinha tamanho 3. Agora terá tamanho 1.
Documentação atualizada.
ENUM_FP_CLASS MathClassify( double value // número real );A enumeração contém os seguintes valores:
if(MathClassify(value)>FP_ZERO) { Print("value is not a valid number"); }