MQL5超入門(12)/MT5のOrderSend()

ロシアのフォーラムで校正中のヘルプファイルに、OrderSend()の仕様が公開されました。
下図は、英訳版のキャプチャですが、OrderSend 自体は引数が2つのシンプルな形になっています。

2つの引数は、注文のリクエスト用の構造体と、注文結果を受け取る構造体です。
構造体が何だったか忘れてしまった人は…過去記事を読み直してください..orz。


OrderSend の使用イメージは、

//2つの構造体変数を用意する。
MqlTradeRequest  request;
MqlTradeResult   result;

// Ask変数が無くなったので関数から取得
double Ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);

                                     // 構造体に値を代入する
request.action = TRADE_ACTION_MARKET;// 成行き注文
request.expert = 1001;               // MagicNumber
request.symbol = _Symbol;            // Symbol() と書いても良い。
request.volume = 1.0;                // ロット数
request.price  = Ask;                // 注文価格
request.type   = ORDER_TYPE_BUY;     // 注文タイプ
request.comment= "test buy";         // コメント

bool ret = OrderSend(request,result);

Print ("retcode=",result.retcode);   //注文の成否を表示

のように使います。返り値のret は、OrderSendの呼出しミス?が分かるだけで、ret からはオーダーの結果は分かりません。

MT5になって、10ロット注文して8ロット約定のように、注文の成否が複雑化したために、結果の受け取りにも構造体を使う仕組みになっていますが、特に難しいことはなさそうです。