MQL5構造体OrderSendMQL5専用
目次
MqlTradeRequest発注内容をまとめて渡す構造体(MQL5)
MQL5のOrderSend・OrderCheckに渡す、発注内容ひとまとめの構造体。MQL4のOrderSend(symbol, cmd, volume, price, ...)のような引数の羅列に代わる形。
1主なメンバー一覧
| メンバー | 型 | 内容 |
|---|---|---|
| action | ENUM_TRADE_REQUEST_ACTIONS | 操作の種類。TRADE_ACTION_DEAL(成行)等 |
| symbol | string | 対象銘柄 |
| volume | double | ロット数 |
| type | ENUM_ORDER_TYPE | 注文種別。ORDER_TYPE_BUY等 |
| price | double | 希望価格 |
| sl / tp | double | 損切り・利確価格 |
| deviation | ulong | 許容ずれ幅(Point単位。MQL4のslippageに相当) |
| magic | ulong | マジックナンバー |
| comment | string | 注文コメント |
2使用例
MqlTradeRequest req = {};
MqlTradeResult res = {};
req.action = TRADE_ACTION_DEAL;
req.symbol = _Symbol;
req.volume = 0.1;
req.type = ORDER_TYPE_BUY;
req.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
req.deviation = 5;
if(!OrderSend(req, res))
Print("発注失敗 retcode=", res.retcode);
MetaEditorでコンパイル0エラー・0警告を確認済み。
3MQL4→MQL5の違い
🔁 差分
MQL4はOrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color)のように、引数を決まった順番で並べて渡す。MQL5はMqlTradeRequest構造体のメンバーに名前で値を詰めてから渡す形になり、引数の順番を覚える必要がなくなる代わりに、使う前に必ず={}でゼロ初期化する手間が増える。
4よくある罠
⚠ 実務で踏んだもの
- 構造体を
={}で初期化し忘れると、指定していないメンバーがゴミ値のまま残り、意図しない値で発注されることがある。宣言のたびに必ず初期化する。
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▼きょうの指標重要指標なし