HistoryOrderGetString

Restituisce la proprietà richiesta di un ordine. La proprietà dell'ordine deve essere di tipo stringa. Ci sono due varianti della funzione.

1. Restituisce immediatamente il valore della proprietà.

string  HistoryOrderGetString(
   ulong                       ticket_number,     // Ticket
   ENUM_ORDER_PROPERTY_STRING  property_id        // Identificativo della proprietà
   );

2. Restituisce true o false, a seconda del successo della funzione. In caso di successo, il valore della proprietà è posto in una variabile di destinazione passata per riferimento dall ultimo parametro.

bool  HistoryOrderGetString(
   ulong                       ticket_number,     // Ticket
   ENUM_ORDER_PROPERTY_STRING  property_id,       // Identificativo della proprietà
   string&                     string_var         // Qui si accetta il valore della proprietà
   );

Parametri

ticket_number

[in]  Ticket dell'ordine.

property_id

[in] Identificativo della proprietà dell'ordine. Il valore può essere uno dei valori dell' enumerazione ENUM_ORDER_PROPERTY_STRING.

string_var

[out] Variabile di tipo stringa.

Valore restituito

Valore di tipo stringa.

Nota

Non confondere gli ordini della cronistoria di trading con gli attuali ordini pendenti che vengono visualizzati nella scheda "Trade" della barra "BoxAttrezzi". L'elenco degli ordini che sono stati cancellati o hanno portato ad una transazione, possono essere visualizzati nella scheda "Cronistoria" del "BoxAttrezzi" del terminale client.

Esempio:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- cronologia delle operazioni e degli ordini
   if(!HistorySelect(0TimeCurrent()))
     {
      Print("HistorySelect() failed. Error "GetLastError());
      return;
     }
     
//--- in un ciclo dalla lista di tutti gli ordini della cronologia sul conto
   int total=HistoryOrdersTotal();
   for(int i=0i<totali++)
     {
      //--- ottenere il ticket dell'ordine nella lista tramite l'indice del ciclo
      ulong ticket=HistoryOrderGetTicket(i);
      if(ticket==0)
         continue;
      
      //--- ottenere il tipo di ordine e visualizzare l'intestazione per la lista delle proprietà stringa dell'ordine selezionato
      string type=OrderTypeDescription((ENUM_ORDER_TYPE)HistoryOrderGetInteger(ticketORDER_TYPE));
      PrintFormat("String properties of an history order %s #%I64u:"typeticket);
      
      //--- stampare tutte le proprietà stringa dell'ordine selezionato sotto l'intestazione
      HistoryOrderPropertiesStringPrint(ticket16);
     }
   /*
   risultato:
   String properties of an history order Buy #2646074112:
   Comment:        [tp 1.09137]
   Symbol:         EURUSD
   External ID:    
   String properties of an history order Buy #2646131906:
   Comment:        
   Symbol:         EURUSD
   External ID:    
   */
  }
//+------------------------------------------------------------------+
//| Visualizza le proprietà stringa                                  |
//| della cronologia selezionata nel journal                         |
//+------------------------------------------------------------------+
void HistoryOrderPropertiesStringPrint(const long ticketconst uint header_width=0)
  {
   uint   w=0;
   string header="";
   string value="";
   
//--- definire il testo dell'intestazione e la larghezza del campo dell'intestazione
//--- se la larghezza dell'intestazione viene passata alla funzione uguale a zero, allora la larghezza sarà la dimensione della riga dell'intestazione + 1
   header="Comment:";
   w=(header_width==0 ? header.Length()+1 : header_width);
//--- ottenere e visualizzare il commento con la larghezza dell'intestazione specificata nel journal
   if(!HistoryOrderGetString(ticketORDER_COMMENTvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- visualizzare nel journal un simbolo per il quale è stato effettuato l'ordine
   header="Symbol:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!HistoryOrderGetString(ticketORDER_SYMBOLvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- visualizzare l'ID dell'ordine in un sistema esterno nel journal
   header="External ID:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!HistoryOrderGetString(ticketORDER_EXTERNAL_IDvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
  }
//+------------------------------------------------------------------+
//| Restituire la descrizione del tipo di ordine                     |
//+------------------------------------------------------------------+
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);
     }
  }

Vedi anche

HistorySelect(), HistoryOrdersTotal(), HistoryOrderSelect(), Proprietà Ordini