【MQLリファレンス】演算子一覧 プログラム例あり

演算子一覧

演算子とは

演算子とは、「+」や「-」などの、計算に使われる記号のことです。

MQLプログラミングでは、演算子と呼びます。

演算子には、たくさんの種類がありますので、詳しく解説します。

 

算術演算子

算術演算子使用方法
y + x変数や数値を加算します。
y – x変数や数値を減算します。
y * x変数や数値を乗算します。
y / x変数や数値は除算します。
y % x変数や数値の剰余(余り)を計算します。
y++変数に 1 を加算します。数値には使えません。
「インクリメント」と呼ばれることもあります。
y–変数に 1 を減算します。数値には使えません。
「デクリメント」と呼ばれることもあります。

使用例

//変数の加算                 
i = j + 2;

//変数の減算                 
i = j - 3;

//符号の反転                 
x = - x;

//変数の乗算                 
z = 3 * x;

//除算                      
i = j / 5;

//剰余                      
minutes = time % 60;

//変数に 1 を加算する          
i++;
//変数に 1 を加算する          
++i;

//変数から 1 を減算する         
k--;
//変数から 1 を減算する         
--k;

注意点とサンプルプログラム

インクリメントやデクリメントは、計算式の途中で使用できません。

int a=3;
a++;           // 有効な式
int b=(a++)*3; // 無効な式

 

代入演算子

代入演算子使用方法
y = x変数 y に変数 x の値を代入します。
y += x変数 y と変数 x を加算し、その結果を変数 y に代入します。
y -= x変数 y と変数 x を減算し、その結果を変数 y に代入します。
y *= x変数 y と変数 x を乗算し、その結果を変数 y に代入します。
y /= x変数 y と変数 x を除算し、その結果を変数 y に代入します。
y %= x変数 y と変数 x の剰余(余り)を計算し、その結果を変数 y に代入します。
y >>= x変数 y の 2 進数表現を、右に変数 x ビットだけシフトし、その結果を変数 y に代入します。
y <<= x変数 y の 2 進数表現を、左に変数 x ビットだけシフトし、その結果を変数 y に代入します。
y &= x変数 y と変数 x の 2 進数表現の AND ビット演算し、その結果を変数 y に代入します。
y != x変数 y と変数 x の 2 進数表現の OR ビット演算し、その結果を変数 y に代入します。
y ^= x変数 y と変数 x の 2 進数表現の XOR ビット演算し、その結果を変数 y に代入します。

使用方法

//y 変数に x を加算                          
y += x

//y 変数から x を減算                         
y -= x;

//y 変数 に x を乗算                         
y *= x;

//y 変数を x で除算                          
y /= x;

//y 変数を x で除算した残り                     
y %= x;

//y の 2 進数表現を右に x ビットだけシフトする        
y >>= x;

//yの 2 進数表現を左に x ビットだけシフトする         
y <<= x;

//y とx の 2 進数表現の AND ビット演算           
y &= x;

//y とx の 2 進数表現の OR ビット演算            
y |= x;

//y とx の 2 進数表現の XOR ビット演算           
y ^= x;

関係演算子

関係演算子使用方法
y == x変数 y と変数 x が等しければ true を返します。
y != x変数 y と変数 x が等しくなければ true を返します。
y < x変数 y が変数 x より小さければ true を返します。
y > x変数 y が変数 x より大きければ true を返します。
y <= x変数 y が変数 x 以下ならば true を返します。
y >= x変数 y が変数 x 以上ならば true を返します。

使用例

// y と x が等しければ True      
y == x;

// y と x が等しくなければ True    
y != x;

// y が x より小さければ True     
y < x;

// y が x より大きければ True     
y > x;

// y が x 以下であれば True      
y <= x;

// y が x 以上であれば True      
y >= x;

論理演算子

論理演算子使用方法
!y変数 y を否定します。( !false なら true 、!ture なら false)
条件式a || 条件式b「OR」の論理演算をします。
条件式a または条件式b のどちらかが ture なら true を返します。
条件式a && 条件式b「AND」の論理演算をします。
条件式a が true かつ条件式b が true なら true を返します。

使用例

//論理否定
if( !y ) 
  Print("not 'y'");  

//ORの論理演算
if(x < 0 || x >= 1000)
  Print("out of range");

//ANDの論理演算
if(x > 0 && x <= 1000)
  Print("range");

ビット演算子

ビット演算子使用方法
~y変数 y の 1 の補数を計算します。
x >> y変数 x の2進数表現を、y桁だけ右にシフトします。
x << y変数 x の2進数表現を、y桁だけ左にシフトします。
x | y変数 x と変数 y の2進数表現で、同じ桁の OR の論理演算をします。
x & y変数 x と変数 y の2進数表現で、同じ桁の AND の論理演算をします。
x ^ y変数 x と変数 y の2進数表現で、同じ桁の XOR の論理演算をします。

使用例

//1の補数
  char a='a',b;
  b=~a;
  Print("a = ",a, "  b = ",b);  
  // 結果:
  // a = 97   b = -98

//右シフト
  b=a>>1;
  Print("After:   a = ",a, "  b = ",b);
  // 結果:
  // After:   a = 97   b = 48

//左シフト
  b=a<<1;
  Print("After:   a = ",a, "  b = ",b);
  // 結果:
  // After:   a = 97   b = -62

//ORの2進数論理演算
  char c=a|b;
  Print("a = ",a,"  b = ",b);
  Print("a | b = ",c);
  // 結果:
  // a = 97   b = 98
  // a | b = 99

//ANDの2進数論理演算
  char c=a&b;
  Print("a = ",a,"  b = ",b);
  Print("a & b = ",c);
  // 結果:
  // a = 97   b = 98
  // a & b = 96

//XORの2進数論理演算
  char c=a^b;
  Print("a = ",a,"  b = ",b);
  Print("a ^ b = ",c);
  // 結果:
  // a = 97   b = 98
  // a ^ b = 3

 

コメント