MQL4 における 変数配列(Array) について、わかりやすく整理します。
🔹 配列とは?
- 同じ種類の変数をまとめて扱える入れ物
- 1つ1つの変数に名前をつける代わりに、番号(インデックス)で管理する
👉 例:
普通の変数
double price1, price2, price3, price4, price5;
配列を使うと…
double price[5]; // 要素数5の配列を宣言
これで price[0]
~ price[4]
まで5個の変数が使えるようになります。
🔹 配列の宣言
型名 配列名[要素数];
例:
int numbers[10]; // 整数を10個格納できる配列
double prices[100]; // 実数を100個格納できる配列
string symbols[3]; // 文字列を3個格納できる配列
🔹 配列の使い方
double price[5]; // 要素数5の配列
price[0] = 1.1234; // 1つ目に代入
price[1] = 1.2345; // 2つ目に代入
price[2] = 1.3456; // 3つ目に代入
Print(price[0]); // 出力 → 1.1234
Print(price[1]); // 出力 → 1.2345
⚠️ インデックスは 0 から始まる ので注意!
5個なら 0~4
まで使えます。
🔹 配列の応用(for文と組み合わせる)
配列はループと組み合わせると便利です👇
double nums[5];
// 値を代入(0.1, 0.2, 0.3 ...)
for(int i=0; i<5; i++)
{
nums[i] = (i+1) * 0.1;
}
// 出力
for(int i=0; i<5; i++)
{
Print("nums[", i, "] = ", nums[i]);
}
🔹 EA/インジケータでの配列の使いどころ
MQL4 では配列はかなり重要です。
特にインジケータやバックテストでよく使います👇
- 価格データを扱う配列
Open[]
: 始値High[]
: 高値Low[]
: 安値Close[]
: 終値Volume[]
: 出来高
- カスタム計算
- 移動平均を自分で作る
- 過去の価格を保存して比較する
🔹 例:過去5本分の終値を取得する
void OnTick()
{
for(int i=0; i<5; i++)
{
Print("過去", i, "本前の終値 = ", Close[i]);
}
}
出力例(右が新しいローソク足)👇
過去0本前の終値 = 1.2345 ← 最新の終値
過去1本前の終値 = 1.2330
過去2本前の終値 = 1.2315
...
✅ まとめ
- 配列 = 同じ型の変数をまとめて扱う仕組み
- インデックスは 0 から始まる
- MQL4 では価格データの配列(
Close[]
など)がよく使われる
コメント