HistorySelect

Sunucu zamanının belirli bir periyodu için, emir ve işlem geçmişini düzeltir.

bool  HistorySelect(
   datetime  from_date,     // Başlangıç tarihi
   datetime  to_date        // Bitiş tarihi
   );

Parametreler

from_date

[in]  İsteğin başlangıç tarihi.

to_date

[in]  İsteğin bitiş tarihi.

Dönüş değeri

Başarı durumunda 'true', aksi durumda 'false' dönüşü yapar.

Not

HistorySelect() fonksiyonu, daha sonraki başvurular için MQL5 programının içinde bir emir listesi ve bir alım-satım listesi oluşturur. İşlem listesinin uzunluğuna HistoryDealsTotal() fonksiyonu ile; emir listesinin uzunluğuna ise HistoryOrdersTotal() fonksiyonu ile dönüş yapılabilir. Emir listesindeki seçimler için HistoryOrderGetTicket() fonksiyonu, işlemler listesinden yapılacak seçimler içinse HistoryDealGetTicket() fonksiyonu daha uyumludur.

HistoryOrderSelect() fonksiyonunu kullandıktan sonra, MQL5 programında mevcut bulunan emir geçmişi sıfırlanır ve emrin fiş ile aranması başarıyla tamamlanmışsa, bulunan emirlerle yeniden doldurulur. Aynısı, MQL5 programında mevcut bulunan işlem geçmişi içinde geçerlidir - HistoryDealSelect() ile sıfırlanır. Sonra işlemi fiş ile arama başarılı olursa yeniden doldurulur.

Örnek:

void OnStart()
  {
   color BuyColor =clrBlue;
   color SellColor=clrRed;
//--- alım-satım geçmişini iste
   HistorySelect(0,TimeCurrent());
//--- nesneleri oluştur
   string   name;
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   double   price;
   double   profit;
   datetime time;
   string   symbol;
   long     type;
   long     entry;
//--- tüm işlemler için
   for(uint i=0;i<total;i++)
     {
      //--- işlemlerin fişlerini almayı dene
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         //--- işlem özelliklerini al
         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);
         //--- sadece geçerli sembol için
         if(price && time && symbol==Symbol())
           {
            //--- fiyat nesnesini oluştur
            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);
            //--- nesne özelliklerini ayarla
            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));
           }
        }
     }
//--- çizelge üzerinde uygula
   ChartRedraw();
  }

Ayrıca Bakınız

HistoryOrderSelect(), HistoryDealSelect()