(‘mt5’, ‘MQL5’)発注前チェック
OrderCheck発注前にエラーになるかを事前確認する(MQL5)
OrderSendに渡す注文内容(MqlTradeRequest)を、実際に送らずに事前チェックする。証拠金不足・ロット刻み違反などをあらかじめ検出できる。
1書式
bool OrderCheck(
MqlTradeRequest &request,
MqlTradeCheckResult &result // チェック結果を受け取る構造体
);
MQL4に直接の対応関数は無い。
2引数
| 引数 | 内容 |
|---|---|
| request | OrderSendに渡すのと同じ内容の注文リクエスト |
| result | チェック結果(余剰証拠金等)を受け取る構造体 |
3戻り値
通ると見込まれればtrue。
4使用例
MqlTradeRequest req = {};
MqlTradeCheckResult res = {};
req.action = TRADE_ACTION_DEAL;
req.symbol = _Symbol;
req.volume = 0.1;
req.type = ORDER_TYPE_BUY;
req.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
if(!OrderCheck(req, res))
Print("事前チェックNG: ", res.comment);
MetaEditorでコンパイル0エラー・0警告を確認済み。
6よくある罠
⚠ 実務で踏んだもの
MqlTradeRequestの各メンバーを初期化し忘れると、ゴミ値のまま判定されて意図しない結果になる。= {}で必ずゼロ初期化してから値を詰める。