Numero complesso (complex)

Il tipo complex incorporato è una struttura con due campi double:

struct complex
  {
   double             real;   // Real part
   double             imag;   // Imaginary part
  };

Il tipo "complex" può essere passato per valore come parametro per le funzioni MQL5 (a differenza delle strutture ordinarie, che vengono passate solo per riferimento). Per le funzioni importate da DLL, il tipo "complex" deve essere passato solo per riferimento.

Il suffisso 'i' è usato per descrivere costanti complesse:

complex square(complex c)
  {
   return(c*c);
  } 
void OnStart()
  {
   Print(square(1+2i));  // A constant is passed as a parameter
  }
// "(-3,4)" will be output, which is a string representation of the complex number

Attualmente sono disponibili solo le operazioni semplici per i numeri complessi: =, +, -, *, /, +=, -=, *=, /=, ==,!=.

Il supporto per ulteriori funzioni matematiche verrà aggiunto in seguito, consentendo il calcolo del valore assoluto, seno, coseno e altro.

vectorc

Array unidimensionale di numeri di tipo complex è pensato per gestire numeri complessi. La voce vector<complex> può essere usata nelle funzioni dei template. Le operazioni sui vettori di tipo vectorc non sono ancora state implementate.

matrix

Matrix è un array bidimensionale di numeri di tipo double. La memoria per gli elementi della matrice è distribuita dinamicamente. Le proprietà della matrice possono essere ottenute utilizzando i metodi, con la quale la forma della matrice può essere cambiata. La voce matrix<double> può essere usata nelle funzioni dei template.

matrixf

Array bidimensionale di numeri di tipo float che può essere utilizzato al posto di matrix se la perdita di precisione non ha importanza. La voce matrix<float> può essere usata nelle funzioni dei template.

matrixc

Array bidimensionale di numeri di tipo complex è pensato per gestire numeri complessi. La voce matrix<complex> può essere usata nelle funzioni dei template. Le operazioni sulle matrici di tipo matrixc non sono ancora state implementate.