
MQL5 MQL5 の取引関数
OrderCheck()
- できること
- 注文を出す前に、証拠金や内容に問題がないか確認する
- 対応
- MQL5
OrderCheck() とは
MQL5 で、注文リクエストを実際には送らずに、証拠金が足りるか・内容が正しいかを確認する関数です。結果は MqlTradeCheckResult 構造体に入り、注文後の証拠金維持率なども分かります。
OrderCheck() の書式と引数
bool OrderCheck(
const MqlTradeRequest &request,
MqlTradeCheckResult &result
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
request | const MqlTradeRequest & | 必須 | 確認する注文内容(OrderSend() に渡すものと同じ)。 |
result | MqlTradeCheckResult & | 必須 | 確認結果。retcode(問題があるときの理由)、margin(必要証拠金)、margin_free(注文後の余剰証拠金)、comment などが入ります。 |
戻り値
問題がなければ true、証拠金不足や内容の誤りがあれば false を返します。
OrderCheck() の使い方(コード例)
MqlTradeRequest req = {};
MqlTradeCheckResult chk = {};
req.action = TRADE_ACTION_DEAL;
req.symbol = _Symbol;
req.volume = 1.0;
req.type = ORDER_TYPE_BUY;
req.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
req.type_filling = ORDER_FILLING_IOC;
if(OrderCheck(req, chk))
Print("注文できます。必要証拠金=", chk.margin, " 注文後の余剰証拠金=", chk.margin_free);
else
Print("注文できません retcode=", chk.retcode, " ", chk.comment);OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
OrderCheck() の注意点
- OrderCheck() が true でも、送信時に価格が動いてリクオートなどで失敗することはあります。
OrderCheck() でよく出るエラー
関連する関数
MQL5 の取引関数の関数一覧
- OrderCheck
- OrderCalcMargin
- OrderCalcProfit
- PositionsTotal
- PositionGetTicket
- PositionGetSymbol
- PositionSelect
- PositionSelectByTicket
- PositionGetDouble
- PositionGetInteger
- PositionGetString
- OrderGetTicket
- OrderGetDouble
- OrderGetInteger
- HistorySelect
- HistoryDealsTotal
- HistoryDealGetTicket
- HistoryDealSelect
- HistoryDealGetDouble
- HistoryDealGetInteger
- HistoryDealGetString












