このページでは、配列について解説します。
MQL上での配列はチャートを表すのに使われている重要なものです。配列を理解しないとローソク足のイメージもできないため、しっかり把握しておきましょう。
配列とは
配列とは、同一の型の複数のデータを一つの変数に連ねた状態で格納できる箱のようなものです。
貨物列車をイメージするとわかりやすいですが、貨物列車には1両目には○○、2両目には××、3両目には△△、というように荷物となるデータを格納されています。
貨物列車全体を見る場合は、各車両のことは気にせず「貨物列車」として捉えますが、実際のデータを確認する場合は、貨物列車の「〇両目」という形で指定するかと思います。
配列の宣言方法
配列の宣言方法は、以下の通りです。
- double Hairetsu[] ;
他のプログラミングで使う配列の場合は、[]内に任意の数を指定して宣言する場合が多いですが、MQLの場合は、指定せずに宣言して使う方が多いかもしれません。
配列の使われ方
MQLでの配列の使われ方は明確で、チャートを表現するのに使用されています。
ローソク足のそれぞれの値を配列で表現しています。
始値 | open[]; |
---|---|
高値 | high[]; |
安値 | low[]; |
終値 | close[]; |
他にも色々なところで使用されています。
日足の終値を例に見てみましょう。
各日付の終値はclose[]という配列内に格納されています。
当日の値は「0」,1日前は「1」というように配列番号によって管理されています。
一般的な配列のイメージを説明すると、左から右に番号が振られた箱があるイメージを見ると思いますが、実際のチャートは一番右側が当日で、左に向かって過去にさかのぼっていく形で表示されているので、配列も右から左に番号が振られていると思っていただければいいです。
おまけ:MQLでの配列のややこしいところ
配列については当日から過去にさかのぼって番号が振られていると説明しましたが、設定により逆にすることもできます。
MT4(MQL4)では標準がこのようになっているだけです。
しかし、MT5(MQL5)では、標準が過去から当日に向かって番号が振られている仕様となっています。そういった点がややこしくしているのかなとも感じています。
その他にもMQLには、IndicatorBuffers(インジケーターバッファ)というメモリの割り当てという方法があるのですが、これが一般的な配列と違う点で初めはよくわからず悩まされました。
チャートというのは、相場が動いていれば新しい足が生成されていきます。
ローソク足が1本増えるごとに配列番号も1つ増やす必要がありますが、インジケーターバッファに割り当てられた配列の場合、上記のように常に「0」が当日となります。
ここら辺が他とは違ってややこしいなと感じた部分ではありますが、ここでは配列自体が理解できていれば大丈夫です。
コメント