HistorySelect

指定されたサーバタイム期間の約定と注文履歴を取得します。

bool  HistorySelect(
  datetime  from_date,    // 開始日
  datetime  to_date        // 終了日
  );

パラメータ

from_date

[in]  リクエストの開始日

to_date

[in]  リクエストの終了日

戻り値

成功の場合は true、それ以外の場合は false

注意事項

HistorySelect() は MQL5 プログラムの注文と取引のリストを作成し、対応する関数での要素参照を可能にします。約定リストのサイズは HistoryDealsTotal() 関数、注文リストのサイズは HistoryOrdersTotal() 関数を使用して取得することが出来ます。注文リストでの選択には HistoryOrderGetTicket() が使用されるべきです。約定リストの要素には HistoryDealGetTicket() が適切です。

MQL5 プログラムで使用可能な注文履歴のリストは HistoryOrderSelect() の使用後にリセットされ、チケットによる注文の検索が成功した場合、見つかった注文で書き入れられます。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()