為替ロボット 研究所

« プログラムの作成 練習2-3 条件分岐 | メイン | あけましておめでとうございます »

プログラムの作成 練習2-4 繰り返しフォー

次は繰り返し処理を行なう方法です。

"Hello"と10回表示させたい時、
Print("Hello"); を10回書いてもいいですが、このようにfor()を使うと楽にできます。

int i;
for(i=0; i<10; i++){
Print("Hello"); // *
}

*の行が10回繰り返し実行されます。

for(i=0; i<10; i++){  ~ } を翻訳(?)すると、
「①始めに i=0をセットします。そしてi<10なら、{}の処理を行いなさい。
 ②{}の処理が終わったら、i++(iを1増やす)を行ない、
 ③それでも i<10なら{}の処理を行いなさい。
 (以下、②③のくりかえし)

こんな感じです。

最初は、i=0なので i<10 ( 0<10 )となり、*のPrint文が実行されます。
それが終わったところで、i++ で iが1になりますが、それでも i<10 ( 1<10 )なので、*のPrint文が実行されます。
そして、i=2、3、4・・・と繰り返していって、iが9の時、*のPrint文を実行したあと最初に戻り、
i++をすると、iは10になります。
i=10だと i<10 の条件を満たさなくなるので、forの処理は終了です。

つまり、i=0からi=9まで合計10回、処理が行なわれるわけです。

この実行結果を見ると分かりやすいと思います。
int i;
Print("forの前");
for(i=0;i<10;i++){
Print("Hello i="+i);
}
Print("forの後");

結果は、
「forの前」
「Hello i=0」
「Hello i=1」
 ・・・
「Hello i=9」
「forの後」
となります。


for( ) は入れ子式にすることもできます。

int I,J;
for(I=0; I<10; I++){
 for(J=0; J<10; J++){
  Print("I="+I+ ",J="+J);
 }
}
Print("end");

結果は、
I=0,J=0
I=0,J=1
 ・・・
I=0,J=8
I=0,J=9
I=1,J=0
I=1,J=1
 ・・・
I=1,J=9
I=2,J=0
 ・・・
 ・・・
I=9,J=9
end

応用として、
このようにするとティック更新の度に、直近10足分の始値が出力されます。
int start(){
int i;
for(i=0; i<10; i++){
Print("Open["+i+"]="+ Open[i]);
}
}
結果は
Open[0]=114.40
Open[1]=114.23
Open[2]=114.30
...
Open[9]=114.89

Open[ ]はMT4に備わっている機能で、指定した本数分 前の足の始値を得るものです。
Open[0]は現在の足、Open[1]なら一つ前の足の始値になります。
上の例だと新しいものから順に出力されますが、古い順に出力したい場合には、

Print("Open["+i+"]="+ Open[i]);
iを下のように(9-i)に変えます。
Print("Open["+(9-i)+"]="+ Open[9-i]);

もしくは、

int start(){
int i;
for(i=9; i>-1; i--){
Print("Open["+i+"]="+ Open[i]);
}
}
のように、繰り返しのたびにiを減らしていくように、for文を変更するといいでしょう。
( i=9,8,7,,,1,0 と変化していきます)

結果
Open[9]=114.89
Open[8]=114.80
Open[7]=114.20
...
Open[0]=114.40



« プログラムの作成 練習2-3 条件分岐 | メイン | あけましておめでとうございます »

トラックバック

このエントリーのトラックバックURL:
http://kawarobo.com/motp/mt-tb.cgi/339

このリストは、次のエントリーを参照しています: プログラムの作成 練習2-4 繰り返しフォー:

» はじめました from 為替システムトレード with MetaTrader
というわけで、はじめました。どうぞよろしくお願いします。 メインページはこちらで [続きを読む]

トラックバック時刻: 2006年04月17日 13:40

» 為替システムトレード with MetaTrader from 為替システムトレード with MetaTrader
というわけで、はじめました。どうぞよろしくお願いします。 メインページはこちらで [続きを読む]

トラックバック時刻: 2006年04月17日 13:53

コメント

コメントしてください




保存しますか?


おすすめFX