HistoryOrderSelect

Uygun fonksiyonlarla yapılacak daha sonraki çağrılar için geçmişteki bir emri seçer. Fonksiyon başarıyla tamamlanmışsa 'true', aksi durumda 'false' dönüşü yapar. Hata ile ilgili daha fazla bilgi için GetLastError() fonksiyonunu çağırın.

bool  HistoryOrderSelect(
   ulong  ticket      // Emir fişi
   );

Parametreler

ticket

[in]  Emir fişi.

Dönüş değeri

Başarılı ise 'true' değerine, aksi durumda 'false' değerine dönüş yapar.

Not

Alım-satım geçmişindeki emirlerle - "AraçKutusu" çubuğunun "Trade" sekmesinde görünen - bekleyen emirleri birbirine karıştırmayın. İptal edilmiş veya bir faaliyete konu olmuş emirler, "AraçKutusu" çubuğunun "Geçmiş" sekmesinde bulunabilir.

HistoryOrderSelect() fonksiyonu, bir MQL5 program programı içerisinde, çağrı için mevcut emirlerin listesini temizler ve çalışması başarıyla tamamlanmışsa tek bir emri kopyalar. HistorySelect() fonksiyonu ile seçilmiş tüm emirleri incelemeniz gerekiyorsa, HistoryOrderGetTicket() fonksiyonunu kullanmanız daha iyi olacaktır.

Örnek:

#define   TICKET    1819621374   // bilinen herhangi bir emrin fişi, örneğin hesap geçmişinden
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- TICKET içinde belirtilen fişe göre geçmiş bir emir seç
   if(!HistoryOrderSelect(TICKET))
     {
      PrintFormat("HistoryOrderSelect(%I64u) failed. Error %d"TICKETGetLastError());
      return;
     }
 
//--- bir emir başarıyla seçilirse, verilerini al ve emir açıklamasını günlükte görüntüle
   ENUM_ORDER_TYPE   order_type  = (ENUM_ORDER_TYPE)HistoryOrderGetInteger(TICKETORDER_TYPE);
   ENUM_ORDER_STATE  order_state = (ENUM_ORDER_STATE)HistoryOrderGetInteger(TICKETORDER_STATE);
   ENUM_ORDER_REASON order_reason= (ENUM_ORDER_REASON)HistoryOrderGetInteger(TICKETORDER_REASON);
   long              order_time  = HistoryOrderGetInteger(TICKETORDER_TIME_SETUP_MSC);
   string            order_symbol=HistoryOrderGetString(TICKETORDER_SYMBOL);
   double            order_vol_init=HistoryOrderGetDouble(TICKETORDER_VOLUME_INITIAL);
   double            order_vol_curr=HistoryOrderGetDouble(TICKETORDER_VOLUME_CURRENT);
   PrintFormat("%s Order %.2f/%s %s #%I64u %s by %s at %s",
               order_symbolorder_vol_init, (order_vol_curr>0 ? DoubleToString(order_vol_curr,2) : "0"),
               OrderTypeDescription(order_type), TICKETOrderStateDescription(order_state),
               OrderReasonDescription(order_reason), TimeMscToString(order_time));
   /*
  belirtilen çeşitli fişler için sonuç:
   EURUSD Order 0.50/0.50 Buy Limit #2812894647 Canceled by Client at 2024.09.04 19:02:31.793
   EURUSD Order 0.10/0 Sell #1753011743 Filled by Take Profit at 2023.06.12 17:04:20.353
   GBPUSD Order 0.10/0 Buy #1819621374 Filled by Client at 2023.07.24 06:16:25.746
   */
  }
//+------------------------------------------------------------------+
//| Emir türü açıklamasını geri döndür                               |
//+------------------------------------------------------------------+
string OrderTypeDescription(const ENUM_ORDER_TYPE type)
  {
   switch(type)
     {
      case ORDER_TYPE_BUY              :  return("Buy");
      case ORDER_TYPE_SELL             :  return("Sell");
      case ORDER_TYPE_BUY_LIMIT        :  return("Buy Limit");
      case ORDER_TYPE_SELL_LIMIT       :  return("Sell Limit");
      case ORDER_TYPE_BUY_STOP         :  return("Buy Stop");
      case ORDER_TYPE_SELL_STOP        :  return("Sell Stop");
      case ORDER_TYPE_BUY_STOP_LIMIT   :  return("Buy Stop Limit");
      case ORDER_TYPE_SELL_STOP_LIMIT  :  return("Sell Stop Limit");
      default                          :  return("Unknown order type: "+(string)type);
     }
  }
//+------------------------------------------------------------------+
//| Emir durumu açıklamasını geri döndür                             |
//+------------------------------------------------------------------+
string OrderStateDescription(ENUM_ORDER_STATE state)
  {
   switch(state)
     {
      case ORDER_STATE_STARTED         :  return("Started");
      case ORDER_STATE_PLACED          :  return("Placed");
      case ORDER_STATE_CANCELED        :  return("Canceled");
      case ORDER_STATE_PARTIAL         :  return("Partial");
      case ORDER_STATE_FILLED          :  return("Filled");
      case ORDER_STATE_REJECTED        :  return("Rejected");
      case ORDER_STATE_EXPIRED         :  return("Expired");
      case ORDER_STATE_REQUEST_ADD     :  return("Request Add");
      case ORDER_STATE_REQUEST_MODIFY  :  return("Request Modify");
      case ORDER_STATE_REQUEST_CANCEL  :  return("Request Cancel");
      default                          :  return("Unknown state: "+(string)state);
     }
  }
//+------------------------------------------------------------------+
//| Emir yerleştirme nedeni açıklamasını geri döndür                 |
//+------------------------------------------------------------------+
string OrderReasonDescription(const ENUM_ORDER_REASON reason)
  {
   switch(reason)
     {
      case ORDER_REASON_CLIENT   :  return("Client");
      case ORDER_REASON_MOBILE   :  return("Mobile");
      case ORDER_REASON_WEB      :  return("Web");
      case ORDER_REASON_EXPERT   :  return("Expert");
      case ORDER_REASON_SL       :  return("Stop Loss");
      case ORDER_REASON_TP       :  return("Take Profit");
      case ORDER_REASON_SO       :  return("Stop Out");
      default                    :  return("Unknown reason: "+(string)reason);
     }
  }
//+------------------------------------------------------------------+
//| Milisaniyeli zamanı geri döndür                                  |
//+------------------------------------------------------------------+
string TimeMscToString(const long time_mscint flags=TIME_DATE|TIME_MINUTES|TIME_SECONDS)
  {
   return(TimeToString(time_msc/1000flags) + "." + IntegerToString(time_msc %10003, '0'));
  }

Ayrıca Bakınız

HistorySelect(), HistoryOrderGetTicket(), Emir özellikleri