📘 定義済み変数 vs システム関数(MQL4)
1️⃣ 定義済み変数(Predefined Variables)
- MetaTrader 4 が最初から提供している「変数」や「配列」
- ユーザーが宣言しなくても使える
- 値が 自動的に更新される
- 主に チャート上の価格データや環境情報 を表す
🔹 代表例
変数 | 内容 |
---|---|
Open[] | 各バーの始値 |
High[] | 各バーの高値 |
Low[] | 各バーの安値 |
Close[] | 各バーの終値 |
Time[] | 各バーの時間 |
Volume[] | 各バーのティック数 |
Digits | 通貨ペアの小数点桁数 |
Point | 通貨ペアの最小単位 |
👉 例:
double currentClose = Close[0]; // 今の足の終値
int digitCount = Digits; // 桁数
2️⃣ システム関数(System Functions)
- MetaTrader 4 が最初から提供している「関数」
- 呼び出すと その時点の値を返す
- 主に 口座情報・環境情報・取引情報 を取得するために使う
- 引数を与える場合もある
🔹 代表例
関数 | 内容 |
---|---|
AccountBalance() | 口座残高 |
AccountEquity() | 有効証拠金 |
AccountFreeMargin() | 余剰証拠金 |
AccountNumber() | 口座番号 |
Symbol() | 現在のチャート銘柄 |
Period() | 現在の時間足 |
TimeCurrent() | サーバー時刻 |
OrdersTotal() | 現在の注文数 |
👉 例:
double balance = AccountBalance(); // 残高を取得
string symbol = Symbol(); // 現在の銘柄
datetime now = TimeCurrent(); // サーバー時間
3️⃣ 違いを整理
比較項目 | 定義済み変数 | システム関数 |
---|---|---|
正体 | 変数/配列 | 関数 |
宣言の必要 | 不要 | 不要 |
値の更新 | 自動更新 | 呼び出し時に取得 |
主な用途 | ローソク足データ、桁数などのチャート情報 | 口座・環境・取引情報の取得 |
例 | Close[0] , Digits , Time[1] | AccountBalance() , Symbol() , TimeCurrent() |
✅ まとめ
- 定義済み変数 → 値(配列や環境データ)が 常に保持されている
- システム関数 → 呼び出すことで その瞬間の値を返す
つまり:
📌 「変数」=いつでも読めるデータ
📌 「関数」=呼び出して初めて返ってくるデータ
コメント