
MQL4MQL5 配列
ArraySetAsSeries()
- できること
- 配列の並び順を時系列(0 が最新)にする
- 対応
- MQL4・MQL5
ArraySetAsSeries() とは
配列の添字の向きを設定する関数です。true にすると 0 番が最新のバー(時系列)、false にすると 0 番が最も古いバーになります。CopyBuffer()・CopyRates() で取得した配列や、OnCalculate() の配列でよく使います。
ArraySetAsSeries() の書式と引数
bool ArraySetAsSeries(const void &array[], bool flag)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
array | const void &[] | 必須 | 配列(動的配列)。 |
flag | bool | 必須 | true で時系列(0 が最新)、false でふつうの順(0 が最も古い)。 |
戻り値
設定できたら true。
ArraySetAsSeries() の使い方(コード例)
MQL4・MQL5 共通
double c[];
ArraySetAsSeries(c, true); // c[0] を最新にする
if(CopyClose(_Symbol, PERIOD_CURRENT, 0, 3, c) == 3)
Print("現在=", c[0], " 1本前=", c[1], " 2本前=", c[2]);OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
ArraySetAsSeries() の注意点
- データの中身は移動せず、添字の数え方だけが変わります。
- サイズを書いて宣言した配列(静的配列)には使えません。
- Copy 系の関数を呼ぶ前でも後でも設定できます。
MQL4 と MQL5 の違い
MQL4 の Close[] などの定義済み配列やインジケーターバッファは既定で時系列です。MQL5 の配列は既定で 0 が最も古いバーなので、MQL4 からの移植で値がずれるときはこの関数で向きを確認します。












