MQL4 / MQL5 両対応列挙型・定数時間足
目次
時間足の定数一覧PERIOD_M1・PERIOD_H1等
MQL4は時間足を「分数を表すint定数」として、MQL5は専用の列挙型ENUM_TIMEFRAMESとして扱う。定数名はほぼ共通だが型が違うため、そのまま使い回すとコンパイルエラーになる。
1時間足の対応表
| 定数名 | 分数(MQL4のint値) | 意味 |
|---|---|---|
| PERIOD_M1 | 1 | 1分足 |
| PERIOD_M5 | 5 | 5分足 |
| PERIOD_M15 | 15 | 15分足 |
| PERIOD_M30 | 30 | 30分足 |
| PERIOD_H1 | 60 | 1時間足 |
| PERIOD_H4 | 240 | 4時間足 |
| PERIOD_D1 | 1440 | 日足 |
| PERIOD_W1 | 10080 | 週足 |
| PERIOD_MN1 | 43200 | 月足 |
| PERIOD_CURRENT | 0 | いま見ているチャートの時間足 |
2使用例
if(Period() == PERIOD_H1) Print("いまはH1足");
double h1open = iOpen(NULL, PERIOD_H1, 0);
Print(h1open);
MetaEditorでコンパイル0エラー・0警告を確認済み。
3MQL4→MQL5の違い
🔁 差分
MQL5ではENUM_TIMEFRAMESという専用の型になり、intへ暗黙変換できない。「時間足を分数として使いたい」場合(時間の計算など)はPeriodSecondsを使うか、明示的に(int)でキャストする必要がある。
4よくある罠
⚠ 実務で踏んだもの
- 定数の値そのもの(
PERIOD_H1=60等)はMQL4・MQL5で共通。「型が違う」だけであって「値が違う」わけではないので、比較(==)はどちらでも同じように書ける。詰まるのは代入や関数の引数として渡すときの型検査。
5関連する項目
MORNING BRIEF平日 毎朝7時までに更新
今日はどこを見ればいいか。
ドル円とユーロドルの主要ライン・予想高値安値を、平日の朝に図1枚にまとめています。
朝刊を見る→9/25 8:27 時点ドル円158.78▼-7 pipsドル円 予想レンジ158.41 〜 159.23ドル円 上の節目158.90▲ドル円 下の節目157.80▼ユーロドル1.1378▼-2 pipsユーロドル 予想レンジ1.1351 〜 1.1408ユーロドル 上の節目1.1403▲ユーロドル 下の節目1.1359▼きょうの指標重要指標なし