HistoryOrderGetTicket

在历史中返回相关订单报价。优先调用HistoryOrderGetTicket(),首先需要接收使用HistorySelect()或者 HistorySelectByPosition() 函数的交易和订单历史记录。

ulong  HistoryOrderGetTicket(
   int  index      // 订单列表中的数量
   );

参量

index

[in]  订单列表中的订单数。

返回值

无符长整型 值。 如果函数失败,则返回0。

注释

不能把出现在客户端"工具箱"的"交易" 标签中的当前挂单和交易历史订单弄乱。取消的或者导致的交易的订单列表可以在"工具箱"客户端中的"历史记录"标签浏览。

示例:

void OnStart()
  {
   datetime from=0;
   datetime to=TimeCurrent();
//--- 要求全部历史记录
   HistorySelect(from,to);
//--- 返回订单属性值变量
   ulong    ticket;
   double   open_price;
   double   initial_volume;
   datetime time_setup;
   datetime time_done;
   string   symbol;
   string   type;
   long     order_magic;
   long     positionID;
//--- 当前挂单数量
   uint     total=HistoryOrdersTotal();
//--- 循环检测通过订单
   for(uint i=0;i<total;i++)
     {
      //--- 通过其列表中的位置返回订单报价
      if((ticket=HistoryOrderGetTicket(i))>0)
        {
         //--- 返回订单属性
         open_price=       HistoryOrderGetDouble(ticket,ORDER_PRICE_OPEN);
         time_setup=       (datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_SETUP);
         time_done=        (datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_DONE);
         symbol=           HistoryOrderGetString(ticket,ORDER_SYMBOL);
         order_magic=      HistoryOrderGetInteger(ticket,ORDER_MAGIC);
         positionID =      HistoryOrderGetInteger(ticket,ORDER_POSITION_ID);
         initial_volume=   HistoryOrderGetDouble(ticket,ORDER_VOLUME_INITIAL);
         type=GetOrderType(HistoryOrderGetInteger(ticket,ORDER_TYPE));
         //--- 准备并显示订单信息
         printf("#ticket %d %s %G %s at %G was set up at %s => done at %s, pos ID=%d",
                ticket,                  // 订单报价
                type,                    // 类型
                initial_volume,          // 已下的交易量
                symbol,                  // 交易品种
                open_price,              // 规定的开盘价
                TimeToString(time_setup),// 下订单时间
                TimeToString(time_done), // 订单执行或者删除时间
                positionID               // 一个包括订单交易的仓位ID
                );
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| 返回订单类型字符串名称                                              |
//+------------------------------------------------------------------+
string GetOrderType(long type)
  {
   string str_type="unknown operation";
   switch(type)
     {
      case (ORDER_TYPE_BUY):            return("buy");
      case (ORDER_TYPE_SELL):           return("sell");
      case (ORDER_TYPE_BUY_LIMIT):      return("buy limit");
      case (ORDER_TYPE_SELL_LIMIT):     return("sell limit");
      case (ORDER_TYPE_BUY_STOP):       return("buy stop");
      case (ORDER_TYPE_SELL_STOP):      return("sell stop");
      case (ORDER_TYPE_BUY_STOP_LIMIT): return("buy stop limit");
      case (ORDER_TYPE_SELL_STOP_LIMIT):return("sell stop limit");
     }
   return(str_type);
  }

另见

HistorySelect()HistoryOrdersTotal()HistoryOrderSelect()订单属性