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()订单属性