システムトレード研究所 〜FXで完全自動売買〜

このサイトでは、FXで完全自動売買を行うために必要な情報を書いていこうと思っています。システムを自分で作りたい方、システムトレードをやってみたい方は御覧になっていって下さい。
<< MetaTrader4 プログラム入門 part3 If文 | main | MetaTrader4 プログラム入門 part5 for文 >>
MetaTrader4 プログラム入門 part4 If文 複数の条件分岐
 今回は前回に引き続きIf文の複数の条件分岐について説明します。

 前回よりも難しいと思いますが、少しずつ理解して行けばそこまで難しくはないので、頑張って下さい。

 では、前回と同じようにMetaEditorを起動して下さい。

 Nameはifbunn2にして置いて下さい。

 まず前回と同じように、int start()の真上に、下のコードを書いてください。 

 int a = 0;

 前回と同じく、真上ですので間違えないで下さい。

 次に、int start()の中のreturn(0);の上辺りに次のコードを書いてください。

 今回は、分けると逆にややこしくなるので、一度に全部書きます。


 if(a < 10 || a >20 && a <30)
 {
   Print("a=0~9 or a=21~29 a=",a);
 }
 else if(a >= 10 && a <= 20)
 {
   Print("a=10~20 a=",a);
 }
 else
 {
   Print("a=30 a=",a);
   a=0;
 }


 a++;


 意味が分からないと思いますが、とりあえずこの通りに書いてください。

 書けましたか?

 では、少しずつ説明して行きます。

 まず、if(a < 10 || a >20 && a <30)ですが、基本的には前回やったIf文と同じです。

 ただ、条件分岐が複数になっただけです。

 ||がorで、&&がandです。

 日本語で訳すと次のようになります。

 もし、aが10未満、もしくはaが21以上(20は含まないので)で30未満の場合。

 こういう意味になります。

 この複数の条件分岐を使うことによって、より細かく条件を指定出来るようになります。

 また、もっと細かく条件分岐をする場合は、||と&&がどれとどれを示しているのかややこしくなりますので、()で纏めると良いです。

 先程のやつを纏めると次のようになります。

 if(( a < 10 || a >20 ) && a <30 )

 こうすると余計なミスがかなり減ります。

 Print()は、分かり易いように内容を書いてます。

 次に、else if(a >= 10 && a <= 20)です。

 一度、Ifを使った後にelseを使うと、前に使ったIf以外という意味を付ける事が出来ます。

 日本語にすると次のような意味になります。

 前のIf以外で、もしaが10以上で、20以下だった場合。

 このような意味になります。
 
 最後のelseですが、単体で書くと今までのIf以外の条件という意味になります。

 今回は、aが30以上の場合という意味です。

 aが30以上だった場合、Print()をした後、aを0にしています。

 
 その後、If文の後で、時間足が変わるたびにaに+1しています。

 今回のプログラミングはこれで終了です。

 今回は使いませんでしたが、If文は他に入り子式に使うことも出来ます。

if(a >= 10)
{
  if(a <= 20)
  {

  }
}

 これで、aが10以上で20以下の場合という条件が出来ます。

 if(a >= 10 && a <= 20)でも意味は同じですが、入り子式にすると10以上の場合に何か処理をしてから、10以上で20以下の場合の処理もすることが出来ます。

 よく分からない人は、使って行く内になんとなく使い方が分かってきますので、こういうやり方もあると覚えて置いてください。


 では、最後にまとめて書きます。



if文 複数の条件分岐




int a=0;
int start()
{

 if(a < 10 || a >20 && a <30)
 {
   Print("a=0~9 or a=21~29 a=",a);
 }
 else if(a >= 10 && a <= 20)
 {
   Print("a=10~20 a=",a);
 }
 else
 {
   Print("a=30 a=",a);
   a=0;
 }


 a++;

 return(0);

}

 
 今回のプログラムは、aの値によってコメントを変えて行き、時間足が更新する度にaに+1をして、aが30以上になったら0に戻すというものです。

 では、いつもと同じようにコンパイルをするためにcompileのボタンを押してください。

 エラーが出てきた場合は、半角になっているか、;を付け忘れていないか、{}を付け忘れていないか、{}の数は合っているかを確認して下さい。

 特に、今回はIf文を多く使ったので、{}をよくチェックして下さい。

 一応エラーが出た場合は、下のほうのDescriptionの所にエラー内容が書いてます。

 かなり分かり辛いので、あまり使いやすくはないですが……。

 エラーが出なかったら、MetaTrader4のバックテストでifbunn2を選んで、スタートして下さい。

 終わったら、操作履歴をみて下さい。
 


操作履歴




 メッセージの一番右端に、条件分岐によってaのコメントが書かれていて、その後にaの値が書いてますね。

 今回はこれで終了です。

 多分、プログラム初心者の方には分かり辛かったと思います。

 If文が難しいと思った方は、紙にフローチャートを作ると良いと思います。


 条件1 Yes→
      No→
 
 こんな感じのものです。

 作業量は増えますが、途中で分からなくなることは少なくなります。

 
 次回は、for文というものを説明して行きます。


 

 宜しかったら、応援して下さい


システムトレード研究所〜FXで完全自動売買〜INDEXへ

----------------------注意----------------------
 このプログは半角のスペースが認識されない為、コードを見易くするために全角で書いている場合があります。
 実際にプログラムにコードを書くときは、コピー&ペーストせずに半角で書いて行って下さい。
| 小松 | MetaTrader4 プログラム入門編 | 00:04 | comments(0) | - |









   1234
567891011
12131415161718
19202122232425
262728293031 
<< March 2017 >>



このページの先頭へ