top of page

MT4におけるwhileループ処理とforループ処理について

已更新:2019年3月20日


大量データを処理する場合、while() 或いは for()ループ処理を使うと便利でしょう。


1、whileループ処理

 丸括弧()中の条件が成り立った場合、波括弧{}中の命令文が成立しなくなるまでに、whileループ処理を実行します。


while(判断条件)

 {

 命令文1;

 命令文2;

 ・・・;

 }


例:

 int fast=15;

 int slow=30;

 double buffered[ ];

 int i=0;

  while(i<100)

   {

    buffered= iMA(symbol,0,fast,0,MODE_SMA,PRICE_CLOSE,i)

     -iMA(symbol,0slow,0,MODE_SMA,PRICE_CLOSE,i);

        i++;

    }


解説:

 上記のwhileループ処理の条件はi<100、ループ処理の中には2つ命令文があります。


  ①、移動平均線の差を時系列配列buffered[ ]に取り込む。

  ②、i++は初期値0のiという変数を100回までカウンターとして、ループする。


 つまり、iが100回までループしたら、i=0からi=100になります。そうなれば、i<100は成り立たなくなるので、ループ処理は終了です。同時に、時系列配列buffered[ ]の中にも100個の値が取り込むことが出来ました。


2、forループ処理

 上記のwhileループ処理との原理はほぼ同じですが、命令文の書き方は少し違いがあります。


 例:

   int fast=15;

   int slow=26;

   double buffered[ ];

   for(int i=0; i<100; i++)

  {

    buffered= iMA(NULL,0,fast,0,MODE_EMA,PRICE_CLOSE,i)

     -iMA(NULL,0,slow,0,MODE_EMA,PRICE_CLOSE,i);

}


解説:

  ①、丸括弧()のiに初期値を与えて、1回のみ実行する。

  ②、i<100に成り立っているかどうかを判断する。

  ③、波括弧中{}の命令文を実行する。

  ④、最初丸括弧()最後のi++を実行し、限界値100までループ。

 

 もし、forループ処理の波括弧{}の中に命令文1つしかない場合、波括弧{}を省略してもかまいません。



36 次查看0 則留言
bottom of page