(‘mt5’, ‘MQL5’)発注前チェック
OrderCalcMargin発注に必要な証拠金を事前に計算する(MQL5)
実際に注文を送る前に、そのロット数で必要になる証拠金額を計算する。証拠金不足で発注が失敗するのを事前に避けるために使う。
1書式
bool OrderCalcMargin(
ENUM_ORDER_TYPE action,
string symbol,
double volume,
double price,
double &margin // 結果を受け取る(参照渡し)
);
MQL4に直接の対応関数は無い(MarketInfo(symbol, MODE_MARGINREQUIRED)で1ロットあたりの必要証拠金を調べて自分でロット数を掛ける形になる)。
2引数
| 引数 | 内容 |
|---|---|
| action | ORDER_TYPE_BUY等、注文の種類 |
| symbol | 対象銘柄 |
| volume | 発注したいロット数 |
| price | 想定する約定価格 |
| margin | 結果(必要証拠金額)を受け取る変数 |
3戻り値
成功でtrue。
4使用例
double margin;
if(OrderCalcMargin(ORDER_TYPE_BUY, _Symbol, 0.1, SymbolInfoDouble(_Symbol, SYMBOL_ASK), margin))
Print("必要証拠金: ", margin);
MetaEditorでコンパイル0エラー・0警告を確認済み。
6よくある罠
⚠ 実務で踏んだもの
- この関数はあくまで「今このロット数で送ったら」の見積もりで、実際に注文を送るわけではない。見積もりと発注(
OrderSend)は別の呼び出しになる。