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