4. よく使う演算子

Bookmark and Share

前の章では、MetaEditorに限らず、プログラミングにおいて重要な概念である「変数」について説明しました。そこでこの章では、実際にそんな変数を使ってプログラミングする際に必ず必要な、「演算子」について解説します。

なんだかものすごく難しく聞こえる「演算子」という言葉ですが、何のことはありません。数学で言うところの「+」や「÷」といった記号を、プログラム中で表現するだけです。

1. 代数演算子

代数演算子はその名のとおり、基本的に加減乗除の計算を表すものです。それぞれ次のように表されます。

  1. int number = 3 + 4; // [加法]numberは7になります
  2. int number = 3 - 4; // [減法]numberは-1になります
  3. int number = 3 * 4; // [乗法]numberは12になります
  4. double number = 3 / 4; // [除法]numberは0.75になります

4行目の変数numberの型が、double(小数)になっていることに気をつけてください。

次に、プログラミングでよく使われる代数演算子を紹介します。
一つ目は"%"です。"a % b"は、「aをbで割った余り」を表します。(数学的にはa (mod b)と合同な正整数のうち、最小のものです)
二つ目は厳密には代数演算子ではないですが、"."です。これは2つの文字列をつなげるときに使われます。

  1. int number = 16 % 3; // numberは1になります
  2. string example = "It is " + "fine today."; // exampleは"It is fine today."となります

2. 条件分岐

投資プログラム(に限りませんが)を作っていると、ほぼ必ず登場するものが、条件分岐です。
たとえば「EURUSDが直前5時間の高値を上回ったら、ロングポジションを持つ」の、「たら」の部分が、条件分岐になっています。

このような条件分岐は、プログラム中では"if"を使って表します。
上の例を実際にMetaEditorのプログラムにしてみましょう。

  1. double max=High[iHighest(NULL,PERIOD_H1,MODE_HIGH,5,1)];
  2.  
  3. if(max < High[0]){
  4.   OrderSend(Symbol(),OP_BUY,Lots,Ask,3,NULL,NULL,NULL,0,0,Blue);
  5. }

1行目では、変数maxに、直前5時間の高値を代入しています。
3行目では、変数maxと現在の高値を比較し、後者の値がより大きければ、4行目で注文が発注されます。

もちろん現時点で1行目と3行目の詳細はわからないと思いますが、条件分岐についてなんとなくご理解いただけたでしょうか?

3. 比較演算子

さて、上の例の3行目では、変数maxと現在の高値を比較しているわけですが、こういった比較を表す演算子を、比較演算子と呼びます。
論理演算子には、次のようなものがあります。

  1. a > b // aよりbが小さい
  2. a >= b // aよりbが小さいまたは等しい
  3. a < b // aよりbが大きい
  4. a <= b // aよりbが大きいまたは等しい
  5. a == b // aとbが等しい
  6. a != b // aとbとが等しくない

これらの演算子は、その性質上if()のカッコ内に記述されることが多いです。