🔰 はじめに|演算子=「条件のルール」をマスターしよう
今回は、FX自動売買EAを自作したい超初心者向けに、if文などの条件分岐で必須となる「演算子」についてわかりやすく解説します。
演算子は算数で習う「大なり(>)」「小なり(<)」そのままの意味なので、意外と難しくありません。
この記事で『演算子の種類と意味』が理解できればOK!
演算子をしっかり使いこなせば、if文の判断の幅がグッと広がります。
一緒に覚えていきましょう!
🔗 前回の記事:
▶ 【第3回】if文とは?初心者でもわかるEAプログラミング基礎|条件分岐の考え方を丁寧に解説
演算子を学ぶ
前回の記事で紹介したif文は、演算子がセットで使われます。
たとえば「a < b」は「aはbより小さい」という意味。
小学校や中学校で習った記号そのままなので、すぐイメージできますよね。
以下がMQL4でよく使う基本の演算子一覧です。
演算子 | 例 | 意味 |
---|---|---|
< | a < b | aがbより小さい |
> | a > b | aがbより大きい |
<= | a <= b | aがb以下 |
>= | a >= b | aがb以上 |
== | a == b | aとbが等しい |
!= | a != b | aとbが等しくない |
特に注意したいのが ==
の使い方です。
プログラミングで「等しい」を表すのは ==
で、=
は「代入」を意味します。
例えば
a == b
→ 「aとbは等しいか?」の判断a = b
→ 「bの値をaにセットする」操作
まったく別の意味なので間違えないようにしましょう。
演算子を使いこなそう
では実際に、前回のif文のソースコードの演算子を変えて動きを見てみましょう。
if (Ask >= High[1]) {
Comment("↓:", Ask);
} else {
Comment("↑:", Ask);
}
- Askが100円でHigh[1]が101円の場合 → 「↑」が表示される(else部分)
- Askが100円でHigh[1]が99円の場合 → 「↓」が表示される(if部分)
- Askが100円でHigh[1]が100円の場合 → 「↓」が表示される(if部分)
>=
には「イコール(=)」も含まれるため、値が同じ場合もifが実行されます。
次に ==
の例も試してみましょう。
if (Ask == High[1]) {
Comment("↓:", Ask);
} else {
Comment("↑:", Ask);
}
- Askが100円でHigh[1]が101円の場合 → 「↑」が表示される
- Askが100円でHigh[1]が99円の場合 → 「↑」が表示される
- Askが100円でHigh[1]が100円の場合 → 「↓」が表示される
==
は「等しい場合だけ」という条件になるので、値がピッタリ同じ時だけifが実行されます。
✅ まとめ|演算子を味方にしてEAの判断力をアップ!
今回のポイントはこれだけ!
- 演算子は条件のルールを表す記号
>
,<
,>=
,<=
,==
,!=
がよく使う基本演算子- 特に「==」と「=」は意味が違うので注意!
- 演算子を使い分けることでif文での条件判断が広がる
- EA開発にはif文と演算子はセットで必須
演算子を覚えれば、EAが「こう動いてほしい!」という細かい条件を自由に設定できるようになります。
まずは大きい・小さい・等しいの3つの基本演算子をしっかり使えるようにしましょう。
▶ 次回予告
次回は「変数」について解説します。
プログラムの情報を入れる箱を理解して、もっと自由にデータを扱っていきましょう!
コメント
はじめまして。教えていただいことがありまして。こちらから失礼致します。買いのエントリーしていて、売りのエントリー条件が出たら損切というはどうしたらよろしいでしょうか??
はじめまして、菊地さん!
『買いのエントリーしていて、売りのエントリー条件が出たら損切したい』
という内容ですね。売りエントリー条件が出たら以下のようなif文を入れるとOKだと思いますがわかりますでしょうか?
if(OrderTotal() > 0 && OrderType()==OP_BUY){
ポジション決済
}else{
売りエントリー
}
この場合、以下のような感じになります。
・ロングポジションがある → ロングポジション決済
・ポジションがない → ショートエントリー
・ショートポジションがある → ショートエントリー
ご親切に有り難うございます。
勉強になります。
関数が長くなりすぎて…
損切りは全部固定ピプスで書いていたのですが全部書き直しでしょうか??
固定ピプスはそのままでOKですよ。
お問合せからソースコード送って頂ければ修正方法を具体的に教えられると思います。