【超入門】MQL5 EA講座 第20回「多次元配列」【EAの作り方】

MQL5でEA作ろう講座

前回は 静的配列動的配列について解説しました。

改めて前回の内容をおさらいをしておくと、

ということをお伝えしました。

今回は多次元配列(multiple dimension array)というものについて解説していきたいと思います。

・・・とはいっても、この多次元配列についてはそれほど深掘りはしません。

なぜなら、EAを作るうえでは、この多次元配列が持つ役割のほとんどはこの後、講座記事で取り上げる予定の 構造体 というもので代用できるからです。

なので、あまりかしこまらずにリラックスして読んでいただきたいと思います。<m(__)m>

今回の記事を読んで勉強して頂くことによって、「配列にはこのような使い方もあるんだ!」という気付きを得られ、配列に対する基本的な理解がより深まるかと思います。

MQL5で自動売買プログラム作るにあたっては、メタトレーダー5・メタエディター5がお使いのパソコンにインストールされている必要があります。

もし、まだメタトレーダー5のダウンロードが完了していない方は、

こちらからデモ口座の開設とメタトレーダー5のダウンロード・インストールを完了して頂ければと思います。

スポンサーリンク
スポンサーリンク

多次元配列とは?

講座記事の第18回で初めて配列を解説した際、配列のことを

変数が複数連なったもの

という表現をしました。

今回取り上げる多次元配列というのは、

配列が複数連なったもの。

という言い方ができるでしょう。

「どういうこと?( ゚Д゚)」と思われたかもしれません。

多次元配列はコードにするとこんな感じです。

//多次元配列「multiDimension」を作る。
double multiDimension[3][3];

変数配列名のmultiDimensionの後ろに、[3]が2個ついていますね。

これは3個のデータを格納できる変数配列が2個くっついている状態を意味しています。

これが2次元配列になります。(これまでの講座記事で取り上げてきたのは1次元配列になります)

値を代入してみましょう。[]が2個つくと、2次元配列、[][][]と3個で3次元配列となります。

多次元配列は4次元配列まで作ることができます。

(が!2次元以上の多次元配列が使われることはほとんどありません。基本的には構造体の方が使い勝手が良いからです)

//各変数配列に値を代入していく。
         multiDimension[0][0]=1.2;
         multiDimension[0][1]=1.5;
         multiDimension[0][2]=1.8;
         multiDimension[1][0]=2.5;
         multiDimension[1][1]=3.2;
         multiDimension[1][2]=4.6;
         multiDimension[2][0]=4.8;
         multiDimension[2][1]=6.9;
         multiDimension[2][2]=8.3;

それぞれの配列に、値を代入してみました。

何が起こっているか、ついてこれておりますでしょうか?

なんか、ピンとこない、という人は

エクセルなどに代表される、行列で構成された表を思い浮かべると理解がしやすいかもしれません。

multiDimension[0][1][2]
[0]1.21.51.8
[1]2.53.24.6
[2]4.86.98.3

こんな↑感じで値が格納されているイメージを思い浮かべてもらうといいでしょう。

今までの1次元配列は1行しかない表と考えてみると・・・

[0][1][2]
multiDimension

横軸だけではなく、縦軸にもデータを格納できるということは

単に、より多くのデータを扱える、というだけでなくデータを表形式的に整理・利用できるということを意味します。

ちなみに、前回静的配列動的配列について解説しましたが、

多次元配列においては、動的配列にできるのは、初めの配列だけです。(後に連なる2次元3次元・・・は静的配列になります)

※「静的配列動的配列って何だっけ?」という方は→前回の記事をご覧ください。

※プログラミング文脈における「静的」と「動的」という言葉についての詳細は↓の記事をご参照ください

//多次元配列「multiDimension」の最初の次元は動的配列にする
double multiDimension[][3];

1次元目の配列動的配列、2次元目の配列静的配列として作られました。

最初の次元の配列を、変更・設定するのにArrayResize関数を使うのは、1次元配列と同じです。

//多次元配列「multiDimension」の最初の次元は動的配列にする
double multiDimension[][3];

//最初の次元の配列サイズを3に設定する
      ArrayResize(multiDimension,3);

まとめ

今回は 多次元配列について解説しました。

今回の記事では以下のことを学びました

最後までお読みいただきありがとうございました<m(__)m>

【超入門】MQL5 EA講座 第19回「静的配列と動的配列」【EAの作り方】

        →【超入門】MQL5 EA講座 第21回「Enum列挙型」【EAの作り方】

コメント

タイトルとURLをコピーしました