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()