MetaTrader 4のバージョンアップにより仕様が変わってきた部分がありますので、 記事を新しい仕様で書き直しております。この注意書きが書かれていないページは 旧仕様の記事になります。旧仕様の記事でも一部を除き基本的にはシステムの制作に問題はありません。
今回は、if文(条件分岐)の説明です。
プログラミング初心者の方には、結構難しい部類に入ると思いますが、少しずつ内容を理解して行けば、ちゃんと出来ますので頑張って下さい。
if文
では、いつものようにMetaEditorを起動して下さい。
今回の名前はifbunnにして置きましょう。
ではまず、void OnTick()の真上に、下のコードを書いてください。
今回は、真上です。
間違えないで下さい。
何故void OnTick()の中じゃなくて真上かというのは後ほど説明します。
int aaa = 0;
書けましたか?
実際に書くとこんな感じです。
int aaa =0;
void OnTick()
{
}
これは前回やった変数です。
変数は、箱の種類を決めて箱を作った時にも数字を入れることが出来ます。
覚えて置いて下さい。
では、次はvoid OnTick()の中に次のコードを書いてください。
If( aaa > 10 )
{
aaa = 0;
}
これがIf文です。
プログラミングで初心者の方がぶつかる最初のほうの壁ですが、これが出来るようになるとかなり色んなことが出来るようになりますので、頑張って習得して下さい。
では、説明しますね。
分かり易いように書くと次のようになります。
もし( 条件)
{
条件が成立したら、中の処理をする。
}
ifの英語の意味は「もし」ですよね?
英語の意味そのままです。
そして、()の中に条件を書きます。
条件の種類が色々とあるので、下に纏めて書きます。
・A == B AとBが等しければ =(イコール)を二回書きます。
・A != B AとBが異なっていれば
・A < B AよりBの方が大きければ <=にすることによって同じ数字も含みます。
・A > B AよりBの方が小さければ >=にすることによって同じ数字も含みます。
また、複数の条件分岐をする方法もあるのですが、それは次回やることにします。
そして、最後に{}の中に、条件が成立した時に実行する内容を書きます。
先程書いてもらったコードを日本語にすると、
もしaaaが10より大きかったらaaaを0にする、という内容になります。
最後に、If分の下に次のコードを書いてください。
Print(“aaa=”,aaa );
aaa = aaa + 1;
書けましたか?
print()は毎回使ってますので、皆さんそろそろ慣れて来たころでしょうか?
前回と同じく、aaaの中の数字を表示させています。
aaa = aaa + 1; は、ロウソク足が更新する度にaaaに+1しています。
また、1プラスだけならaaa++;でも行けます。
これで、元のaaaに+1した数字がaaaに入ります。
マイナスの場合は、aaa–;です。
void OnTick()の上に書いた理由
さて、先程int aaa=0;をvoid OnTick()の上に書いた理由ですが、void OnTick()の中に書くとローソク足が更新する度に、中の内容がリセットされます。
ですので、aaa = aaa + 1;としていても、ローソク足が更新したらaaaの中身は0に戻っています。
しかし、外に書いておくことによって、void OnTick()と関係をなくして、ローソク足が更新してもaaaの変数の中身をそのままにしておけます。
少々ややこしいですが、使って行くうちに慣れて行くと思いますので、そういうものだという風に覚えて置いてください。
さて、これで今回のプログラミングは終了です。
最後にまとめて書きますね。
int aaa = 0;
void OnTick()
{
if( aaa > 10)
{
aaa = 0;
}
Print(“aaa=”,aaa);
aaa = aaa + 1;
}
今回のプログラムは、aaaが10以下ならローソク足が更新する度にaaaに1を足して行き、もし10以上ならaaaを0にして、print()でaaaを表示するというものです。
では、前回と同じようにコンパイルのボタンを押してください。
そろそろエラーが出やすくなる頃だと思います。
もしエラーになったら、半角になっているか、;を付け忘れていないか、{}を付け忘れていないか、{}の数は合っているかを確認して下さい。
エラーが出なかったら、MetaTrader 4のバックテストでifbunnを選んで、スタートして下さい。
終わったら、操作履歴をみて下さい。

メッセージの一番右端にaaa = と書いてあり、その後の数字が0~10まで表示されていますね。
今回は、これで終了です。
If文がどういうものか分かって頂けたでしょうか?
少々難しかったと思いますが、使って行くうちに慣れて行くと思いますので、頑張ってください。
次回は、If文の複数の条件分岐の仕方を説明して行きます。