HistorySelect

지정된 기간 동안의 거래 및 주문 기록을 검색합니다.

bool  HistorySelect(
   datetime  from_date,     // 시작일
   datetime  to_date        // 종료일
   );

Parameter

from_date

[in]  요청 시작일.

to_date

[in]  요청 종료일.

반환값

성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

참고

HistorySelect() 는 mql5 프로그램에서 주문 목록과 거래 목록을 만들어 해당 함수를 사용하여 목록 요소를 추가로 참조합니다. 거래 목록의 크기는 HistoryDealsTotal() 함수를 사용하여 반환할 수 있으며, 내역에서의 주문 목록의 크기는 HistoryOrdersTotal()를 사용하여 얻을 수 있습니다. HistoryOrderGetTicket()는 주문 목록의 아이템을 더 잘 선택하므로 HistoryDealGetTicket() 거래 목록의 아이템을 더 잘 선택해야 합니다.

HistoryOrderSelect()를 사용한 후, 티켓별 주문 검색이 성공적으로 완료되면 mql5 프로그램에서 사용할 수 있는 주문 내역 목록이 재설정되고 발견된 주문으로 다시 채워집니다. 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  =(datetime)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()