Números complejos (complex)

El tipo complex incorporado es una estructura con dos campos double:

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.

Para describir las constantes complejas, se usa el sufijo 'i':

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 complejo

Para los números complejos, en estos momentos están disponibles solo las operaciones sencillas: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

En el futuro, se añadirán funciones matemáticas adicionales: obtención del valor absoluto, seno, coseno y muchas otras.

vectorc

Array numérico unidimensional del tipo complex, está diseñado para trabajar con números complejos. En las funciones de plantilla se puede utilizar la notación vector<complex>. Las operaciones sobre vectores de tipo vectorc aún no están implementadas.

matrixc

Array numérico bidimensional del tipo complex, está diseñado para trabajar con números complejos. En las funciones de plantilla se puede utilizar la notación matrix<complex>. En estos momentos, las operaciones sobre matrices del tipo matrixc aún no están implementadas.