复数(complex)

内置的complex类型是具有两个double字段的结构:

struct complex
  {
   double             real;   // 实数部分
   double             imag;   // 虚数部分
  };

“复数”类型可以作为MQL5函数的参数按值传递(与普通结构不同,普通结构只通过引用传递)。对于从DLL导入的函数,“复数”类型只能通过引用来传递。

'i'后缀用于描述复常数:

complex square(complex c)
  {
   return(c*c);
  }  
void OnStart()
  {
   Print(square(1+2i));  // 常量作为参数传递
  }
// "(-3,4)"将被输出,这是复数的字符串表示 

目前,复数只有简单的运算可用:=、+、-、*、/、+=、-=、*=、/=、==、!=。

之后将添加对附加数学函数的支持,以支持计算绝对值、正弦、余弦等。

vectorc

complex(复数)类型数值的一维数组旨在处理复数。向量<complex>条目可以用在模板函数。对vectorc类型向量的操作尚未执行。

matrix

Matrix(矩阵)是double(双精度)类型数值的二维数组。动态分布矩阵元素的内存。可以使用methods(方法)获得矩阵属性,同时可以更改矩阵形状。矩阵<double>条目可以用在模板函数。

matrixf

如果精度亏损不严重,可以使用float(浮点)类型数值的二维数组来代替matrix(矩阵)类型数值。矩阵<float>条目可以用在模板函数。

matrixc

complex(复数)类型数值的二维数组旨在处理复数。矩阵<complex>条目可以用在模板函数。对matrixc类型矩阵的操作尚未执行。