
MQL4MQL5 配列
ArrayResize()
- できること
- 動的配列の要素数を変更する
- 対応
- MQL4・MQL5
ArrayResize() とは
動的配列(double a[]; のようにサイズを書かずに宣言した配列)の要素数を変更する関数です。要素を追加していくときに使います。
ArrayResize() の書式と引数
int ArrayResize(
void &array[],
int new_size,
int reserve_size=0
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
array | void &[] | 必須 | サイズを変える配列。 |
new_size | int | 必須 | 新しい要素数。 |
reserve_size | int | 0 | 余分に確保しておく数。何度も1つずつ増やすときに指定すると速くなります。 |
戻り値
成功したら新しい要素数、失敗したら -1。
ArrayResize() の使い方(コード例)
MQL4・MQL5 共通
double prices[];
for(int i = 1; i <= 5; i++)
{
int n = ArraySize(prices);
ArrayResize(prices, n + 1, 10); // 1つ増やす(10個分は余分に確保)
prices[n] = iClose(_Symbol, PERIOD_CURRENT, i);
}
Print("要素数:", ArraySize(prices));OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
ArrayResize() の注意点
- サイズを書いて宣言した配列(静的配列)や、インジケーターバッファには使えません。
- サイズを増やしたとき、新しい要素の中身は決まっていません。必要なら値を入れておきます。












