MQL5参考交易函数HistorySelect 

HistorySelect

在服务器特定时间段,检索交易和订单的历史。

bool  HistorySelect(
   datetime  from_date,     // 开始日期
   datetime  to_date        // 结束日期
   );

参量

from_date

[in]  要求开始日期。

to_date

[in] 要求的结束日期。

返回值

如果成功返回true,否则返回false。

注释

HistorySelect()建立一系列MQL5程序的订单和交易列表,使用类似函数来执行列表元素。订单列表大小可以使用 HistoryDealsTotal() 函数返回。使用 HistoryOrdersTotal()可以显示历史订单列表的大小。在订单列表中选择应该使用 HistoryOrderGetTicket(),订单列表 HistoryDealGetTicket() 更适合。

在使用 HistoryOrderSelect()后,MQL5程序中的历史可用订单列表就会重设并被发现的订单填满。如果成功执行 the search of an order by the ticket ,同样适用于MQL5程序可行性订单中-通过 HistoryDealSelect() 重设并再次成功填满。

示例:

void OnStart()
  {
   color BuyColor =clrBlue;
   color SellColor=clrRed;
//--- 请求交易历史记录
   HistorySelect(0,TimeCurrent());
//--- 创建物件
   string   name;
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   double   price;
   double   profit;
   datetime time;
   string   symbol;
   long     type;
   long     entry;
//--- 所有交易
   for(uint i=0;i<total;i++)
     {
      //--- 尽力获得交易报价
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         //--- 获得交易属性
         price =HistoryDealGetDouble(ticket,DEAL_PRICE);
         time  =HistoryDealGetInteger(ticket,DEAL_TIME);
         symbol=HistoryDealGetString(ticket,DEAL_SYMBOL);
         type  =HistoryDealGetInteger(ticket,DEAL_TYPE);
         entry =HistoryDealGetInteger(ticket,DEAL_ENTRY);
         profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         //--- 只对当前交易品种
         if(price && time && symbol==Symbol())
           {
            //--- 创建价格物件
            name="TradeHistory_Deal_"+string(ticket);
            if(entry) ObjectCreate(0,name,OBJ_ARROW_RIGHT_PRICE,0,time,price,0,0);
            else      ObjectCreate(0,name,OBJ_ARROW_LEFT_PRICE,0,time,price,0,0);
            //--- 设置物件属性
            ObjectSetInteger(0,name,OBJPROP_SELECTABLE,0);
            ObjectSetInteger(0,name,OBJPROP_BACK,0);
            ObjectSetInteger(0,name,OBJPROP_COLOR,type?BuyColor:SellColor);
            if(profit!=0) ObjectSetString(0,name,OBJPROP_TEXT,"Profit: "+string(profit));
           }
        }
     }
//--- 应用于图表
   ChartRedraw();
  }

另见

HistoryOrderSelect()HistoryDealSelect()