MQL4 / MQL5 両対応列挙型・定数注文種別
目次
注文種別の対応表OP_BUY等とORDER_TYPE_BUY等の対応
MQL4はOP_BUY等のint定数で注文種別を表す。MQL5はENUM_ORDER_TYPEという専用の型になり、成行・指値・逆指値に加えて決済系の種別も同じ列挙型に含まれる。
1対応表(新規発注に関わるもの)
| MQL4(int定数) | 値 | MQL5(ENUM_ORDER_TYPE) |
|---|---|---|
| OP_BUY | 0 | ORDER_TYPE_BUY |
| OP_SELL | 1 | ORDER_TYPE_SELL |
| OP_BUYLIMIT | 2 | ORDER_TYPE_BUY_LIMIT |
| OP_SELLLIMIT | 3 | ORDER_TYPE_SELL_LIMIT |
| OP_BUYSTOP | 4 | ORDER_TYPE_BUY_STOP |
| OP_SELLSTOP | 5 | ORDER_TYPE_SELL_STOP |
2使用例
if(OrderType() == OP_BUY)
Print("買いポジションです");
MetaEditorでコンパイル0エラー・0警告を確認済み。
3MQL4→MQL5の違い
🔁 差分
MQL5のENUM_ORDER_TYPEには、上の6種類に加えて決済専用の種別(ORDER_TYPE_CLOSE_BY等)も含まれる。一方、保有中のポジションの種別を調べるPositionGetInteger(POSITION_TYPE)は、別の列挙型ENUM_POSITION_TYPE(POSITION_TYPE_BUY/POSITION_TYPE_SELLの2種類だけ)を返す。「注文の種別」と「ポジションの種別」で型が分かれている点がMQL4との大きな違い。
4よくある罠
⚠ 実務で踏んだもの
OP_BUY(0)とORDER_TYPE_BUY(0)は値としては同じ0だが型としては別物。MQL5のOrderSend(構造体版)にOP_BUYをそのまま渡すとコンパイルエラーになる。
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▼きょうの指標重要指標なし