大量データを処理する場合、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つしかない場合、波括弧{}を省略してもかまいません。
Comentarios