複素数 (complex, complexf)

組み込みの complex 型は、2 つの double フィールドを持つ構造体です:

struct complex
 {
  double             real;   // 実部
  double             imag;   // 虚部
 };

組み込みの complexf 型は、2 つの float フィールドを持つ構造体です:

struct complexf
 {
  float             real;   // 実部
  float             imag;   // 虚部
 };

 

complex 型と complexf 型は、MQL5 関数のパラメータとして値渡しできます(参照渡しのみが可能な通常の構造体とは異なります)。DLL からインポートされた関数では、complex 型と complexf 型は参照渡しのみで渡す必要があります。

複素定数を記述するには接尾辞 'i' を使用します:

complex square(complex c)
 {
  return(c*c);
 }  
void OnStart()
 {
  Print(square(1+2i)); // 定数がパラメータとして渡されます
 }
// 複素数の文字列表現である "(-3,4)" が出力されます

現在、複素数で使用できるのは単純な演算のみです: =, +, -, *, /, +=, -=, *=, /=, ==, !=.

絶対値、正弦、余弦などを計算する追加の数学関数のサポートは、後で追加される予定です。

vectorc

complex 型数値の 1 次元配列は、複素数を扱うためのものです。テンプレート関数では vector<complex> という記述を使用できます。

matrixc

complex 型数値の 2 次元配列は、複素数を扱うためのものです。テンプレート関数では matrix<complex> という記述を使用できます。

vectorcf

complexf 型数値の 1 次元配列は、複素数を扱うためのものです。テンプレート関数では vector<complexf> という記述を使用できます。

matrixcf

complexf 型数値の 2 次元配列は、複素数を扱うためのものです。テンプレート関数では matrix<complexf> という記述を使用できます。