FX外貨自動システムトレードを始めよう! - MetaTrader 4MT4)で作るFX投資ロボット入門
FX(外貨)自動システムトレード - MetaTrader 4でFX投資ロボットを作ろう!

3.4. よく使う演算子

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

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

3.4.1. 代数演算子

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

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

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

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

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

3.4.2. 条件分岐

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

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

double max=High[iHighest(NULL,PERIOD_H1,MODE_HIGH,5,1)];

if(max < High[0]){
  OrderSend(Symbol(),OP_BUY,Lots,Ask,3,NULL,NULL,NULL,0,0,Blue);
}

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

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

3.4.3. 比較演算子

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

a < b // aよりbが小さい
a <= b // aよりbが小さいまたは等しい
a > b // aよりbが大きい
a >= b // aよりbが大きいまたは等しい
a == b // aとbが等しい
a <> b // aとbとが等しくない

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

変数と型
MetaTraderで注文指示