メッシです。
前回は「+」や「-」などの記号を使って演算をする記号(演算子)について解説しましたね。
※前回の記事はこちらからどうぞ → 第5回 FX初心者でも作れるEA(自動売買)の自作方法とは?今さら聞けない基礎的なことから解説
今回は繰り返しと配列に関して説明していきます。
繰り返しとは?
繰り返しというのは、ある条件が満たされるまで同じ処理を繰り返すことを言います。
ループ的な感じですね。
繰り返しはforを使う
繰り返しのコードは、forを用いたコードになりますが、以下のように3つからなり、最後に{ }で閉じる形になります。
カッコ内の代入と繰り返しの条件の後ろには、セミコロンを付けますが、繰り返しの後の処理の後ろにはセミコロンが付かないので気を付けましょう。
また、for()の後ろには ; ではなく、{ } を付けましょう。この辺は条件分岐の書き方である if文と一緒ですね。
では、繰り返しのコードの例を見ていきましょう。
例1
1 2 3 4 5 6 7 8 9 10 |
void OnTick() { int i; for(i=0;i<10;i++) { Print("iは",i); } } |
※繰り返しの時は基本的に決まりは無いのですが、変数を用いる時は i を使用することが多いので、今回は i にしています
int i ; は、変数 i を宣言
for(i=0; i<10; i++) は、変数 i に0を代入し、i が10よりも小さければという繰り返しの条件を出しており、i に1を足す処理がされる
Print(“iは” , i); は、 i が10よりも小さければという繰り返しの条件を受け、10よりも小さい場合にPrintで表示されます
これをコンパイルしてMT4のターミナルを見てみると、以下のように表示されるはずです。
0から9までがひたすら繰り返されていると思います。
要するにiに0を代入しているので0から始まり、iが10より小さい時にと言う条件があるので、9までしか表示されないということです。
次の例を見てみましょう。
例2
1 2 3 4 5 6 7 8 9 |
void OnTick() { int i; for(i=9;i>=0&&i<10;i--){ Print("iは",i); } } |
int i ; は、変数 i を宣言
for(i=9; i>=0&&i<10; i–) は、変数 i に9を代入し、i が0以上かつ10未満という繰り返しの条件を出していて、i に1を引く処理がされる
Print(“iは” , i); は、 i が0以上かつ10未満という繰り返しの条件を受け、iが0から9の場合にPrintで表示されます
これをコンパイルしてMT4のターミナルを見てみると、例1の時とは逆に9から0に向かって減っていくはずです。
for(i=9; i>=0&&i<10; i–) の考え方して、i>=0&&i<10; の繰り返しの条件の部分を、i>=0と&&とi<10で分けて考えるとわかりやすくなります。
i>=0 は、i が0以上(0も含む)、i<10 は i が10未満(10は含まない)。そして&&は「かつ」なので、両方の条件を満たすということでしたね(※これについては、演算子を参照下さい)。
要するにiに9を代入しているので9から始まり、0以上と10未満の両方を満たす時にはという条件とiから1が引かれる処理がされるため、0まで表示されるということになるわけです。
続いて配列に関して解説していきますね。
配列とは?
同じ型の変数に番号を付けて管理する仕組みのことになります。
例えば同じ型の名前がいくつもある場合、それぞれ変数として定義するよりも関連する値として管理する方が便利です。
どういうことなのか例を見てみましょう。
1~5までの整数値を変数を使用して宣言する場合は、以下のように変数を5つ使用して入力する必要があります。
しかし、配列を使用すると、以下のように1行で簡単にすることができるわけです。
配列のコードは、変数の宣言と同じintを使い、任意の名前を付けて(ここではname)カッコの中に配列の数を指定します。
配列の宣言
配列変数と同じように宣言が必要です。
配列の宣言は以下のように入力します。
※[]の中には配列の数を指定しますが、基本的な入力の形の説明なので、上では指定をしていません
例を見ていきましょう。
1 2 3 4 5 6 7 8 9 |
void OnTick() { int name[3]; name[0]=5; name[1]=12; name[2]=name[0]+name[1]; Print("変数は順番に",name[0],name[1],name[2],"が入っています"); } |
int name[3]; は、変数が3つあるということを宣言している
name[0]=5; は、5を代入
name[1]=12; は、12を代入
name[2]=name[0]+name[1]; は、name[0]とname[1]を足した数なので17を代入
配列は1からではなく、0から始まります
コンパイルしてMT4を見てみると、以下のように表示されるはずです。
今回は繰り返しと配列に関して解説しましたが、ちょっと難しい所もありましたね。
実際にEAを作成する際にまた解説するので、イメージだけでも感じてもらえればと思います。
More from my site

利益を上げ続けるために
逆算して身に付けていく3つのポイントとは?
Midas FX公式メルマガでは一つ一つポイントを絞ってわかりやすくお伝えしています
さらに「Trade Workbook」&「レンジブレイクアウト攻略法」で
より具体的なスキル(手法やマルチタイムフレーム分析力)を身に付けることが可能です
※「Trade Workbook」と「レンジブレイクアウト攻略法」は
メルマガ登録後すぐ手に入ります
Midas FX公式メルマガ登録【今なら無料】
この記事へのコメントはありません。