交易请求结果结构 (MqlTradeResult)
交易请求结果,交易服务器返回有关交易要求处理结果的相关数据来作为类型的MqlTradeResult 特殊预定义结构。
struct MqlTradeResult
{
uint retcode; // 操作返回代码
ulong deal; // 交易订单号,如果完成的话
ulong order; // 订单号,如果下订单的话
double volume; // 交易交易量,经纪人确认的
double price; // 交易价格,经纪人确认的
double bid; // 当前买入价
double ask; // 当前卖出价
string comment; // 经纪人操作注释 (默认填充操作描述)
uint request_id; // 分派期间通过程序端设置Request ID
int retcode_external; // 返回外部交易系统代码
};
域描述
域 |
描述 |
---|---|
retcode |
交易服务器的返回代码 |
deal |
交易 标签,如果执行订单,对于 TRADE_ACTION_DEAL 交易操作类型来说是可行的 |
order |
订单 标签,如果安置标签,对于 TRADE_ACTION_PENDING 交易操作类型来说是可行的 |
volume |
交易成交量,由经纪人确认,取决于 订单填充类型 |
price |
|
bid |
当前市场买价(请求报价) |
ask |
当前市场卖价(请求报价) |
comment |
经纪人评论操作(通过操作描述默认填满) |
request_id |
发送至交易服务器时通过程序端设置Request ID |
retcode_external |
通过外部交易系统返回的错误代码。这些错误的使用和类型取决于交易操作发送的交易商和外部交易系统 |
交易操作结果返回到MqlTradeResult类型变量,以第二秒参量 OrderSend() 去执行 交易操作 。
程序端修正了当使用OrdersSend() 和 OrderSendAsync()函数发送至交易服务器时的request_id字段的 requestID。程序端接收来自交易服务器的执行交易的信息,并通过含有以下组件作为参数的OnTradeTransaction()函数提交它们用于处理:
- MqlTradeTransaction结构的交易事务说明;
- OrderSend() 或 OrdersSendAsync() 函数发送的交易请求的说明。Request ID由程序端向交易服务器发送,而该请求本身及其request_id被存储在程序端存储器中;
- 交易请求执行结果为MqlTradeResult 结构,request_id字段包含该请求的ID。
OnTradeTransaction()函数接收三个输入参数,但后两个仅适用于有TRADE_TRANSACTION_REQUEST 类型的交易分析。在所有其他情况下,不填写有关交易请求及其执行结果的数据。参数分析的例子可以在交易请求结构找到。
当将交易请求发送至服务器时通过程序端为其设置request_id ,主要介绍用于OrderSendAsync() 异步函数工作。该标识符允许将执行的操作与此操作发送到OnTradeTransaction()的结果相关联(OrderSend 或 OrderSendAsync 函数调用)。
示例:
//+------------------------------------------------------------------+ |