Nombre complexe (complex)

Le type complex intégré est une structure à deux champs double :

struct complex
  {
   double             real;   // Partie réelle
   double             imag;   // Partie imaginaire
  };

Le type "complex" peut être passé par valeur comme paramètre pour les fonctions MQL5 (contrairement aux structures ordinaires, qui ne sont passées que par référence). Pour les fonctions importées à partir de DLL, le type "complex" doit être passé uniquement par référence.

Le suffixe 'i' est utilisé pour décrire des constantes complexes :

complex square(complex c)
  {
   return(c*c);
  }
void OnStart()
  {
   Print(square(1+2i));  // Une constante est passée en paramètre
  }
// "(-3,4)" will be output, which is a string representation of the complex number 

Seules les opérations simples sont actuellement disponibles pour les nombres complexes : =, +, -, *, /, +=, -=, *=, /=, ==, !=.

La prise en charge de fonctions mathématiques supplémentaires sera ajoutée ultérieurement, permettant le calcul de la valeur absolue, du sinus, du cosinus et autres.