*

第7回:条件の書き方 == && ||

公開日: : EA開発講座 , , , ,

今回はif文の中の条件を記述します。

== 等しいことを条件にする

A == B でAとBが等しいことを条件にできます。

これと現在の口座のポジション数を表すOrdersTotal()という関数を使うと

というように
ポジションを持っていない場合のみ
新規ポジションを取るように条件付けをすることができます。

※OrdersTotal():口座のポジションの数。ロットの数ではありません。

&& かつ、しかも

A && Bで、AかつBという条件になります。これまでに使った関数を使うと、

このように、
ポジション数が0で、かつ、6時のときにオーダーが送信されます。

これで条件はまだまだ足りませんが、
深夜のトレードや”朝スキャ”が自動でできるようになります。

|| または、もしくは

A || B で、AもしくはBという条件になります。先ほどのを書き換えると

ポジションが0のとき、
もしくは、
時刻が6時のときにオーダーが送信されます。

この場合、
ポジションを1つ以上持っていたとしても6時になればオーダーが送信されます。
また、6時でなくてもポジションが0ならばオーダーが送信されます。

&& と || の連結

&& と || は一つのIF文の中に何回でも記述することができます。

とすれば、
「ポジション数が0 かつ、 時刻が5時か15時のとき」
という条件文になります。

もしこのとき()が1つなかったら、

、「ポジション数が0 かつ、 時刻が5時か15時のとき」なのか
、「ポジション数が0かつ時刻が5時、または15時のとき」なのかはっきりしません。

現在のMT4のバージョンでは
()の区切りを明確にしなくても||と&&の順序がおかしくなることはないですが、
なるべく()を使って論理の区切りをはっきりさせましょう。

1 < 2 < 3 とは書けない

もう一つ注意しなければならない点があります。
数学では不等号を用いて、1>2>3のように書くことができますが、
プログラミングではそれはできません。

if( 1>2>3 )
とするとエラーになります。

if( 1>2 && 2>3 )のようにそれぞれを分けて
、&&で結んで記述しなければなりません。

関連記事

eyecatch1

第13回:コードに汎用性を持たせる~”USDJPY”よりSymbol()~

MT4で設定を変更ができるような記述をする これまでに様々なコードを扱いましたが、 これまでの書

記事を読む

eyecatch1

第15回:OrderModifyで損切り、利確注文を出す

SL,TPをEAから送信する ここでは ポジション取得時に損切りと利確を同時に送信するMQLプロ

記事を読む

eyecatch1

第6回:オーダーに条件をつける IF文

ここではオーダーを送信する前に条件文を挿入します。 条件の書き方 前回までには、「新規ポジシ

記事を読む

eyecatch1

第21回:パラメータ設定で変更できる数値を作る

パラメータ変数の作り方 EAはMT4側で設定できるようにした方がユーザーフレンドリーです。

記事を読む

eyecatch1

第24回:iCustomでインジケータをEA化する

インジケータとiCustom 今回はインジケーターのシグナルを使って、EAを作ります。 iC

記事を読む

medium-5
2016.12.01~2016.12.07 -3860円 GIO

2016.12.07 22:17 Sell GBPUSD 1.2626

medium-4
2016.11.23~2016.11.29 -7990円 GIO

2016.11.29 23:03 Sell EURUSD 1.0647

medium-1
2016.11.16~2016.11.22 +3840円 GIO

2016.11.22 23:07 Sell EURUSD 1.0628

medium
2016.11.14~2016.11.16 -1810円 GIO

2016.11.16 23:33 Sell EURUSD 1.0688

medium
2016.11.07~2016.11.10 +69920円 GIO

2016.11.10 23:09 Buy GBPCHF 1.2384

→もっと見る

PAGE TOP ↑