変数配列

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 では配列はかなり重要です。
特にインジケータやバックテストでよく使います👇

  1. 価格データを扱う配列
    • Open[] : 始値
    • High[] : 高値
    • Low[] : 安値
    • Close[]: 終値
    • Volume[]: 出来高
    👉 チャートのローソク足の値をインデックスで取れる。
  2. カスタム計算
    • 移動平均を自分で作る
    • 過去の価格を保存して比較する

🔹 例:過去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[] など)がよく使われる

コメント

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