HistoryDealGetTicket

La funzione seleziona un accordo per l'ulteriore elaborazione e restituisce il ticket nella cronistoria. Prima di chiamare HistoryDealGetTicket(), per prima cosa è necessario ricevere la cronitoria di affari ed ordini con le funzioni HistorySelect() o HistorySelectByPosition().

ulong  HistoryDealGetTicket(
   int  index      // ticket affare
   );

Parametri

index

[in] Numero di un affare nella lista degli affari

Valore restituito

Valore del tipo ulong . Se la funzione fallisce, viene restituito 0.

Nota

Attenzione a non confondere ordini, affari e posizioni. Ogni affare è il risultato dell'esecuzione di un ordine, ogni posizione è il risultato di riepilogo di uno o più affari.

Esempio:

voidOnStart()

  {

   ulong deal_ticket;            // ticket dell'affare

   ulong order_ticket;           // ticket dell'ordine su cui l'affare è stato eseguito

   datetime transaction_time;    // orario di esecuzione dell'affare 

   long deal_type ;              // tipo di operazione di trade

   long position_ID;             // ID della posizione

   string deal_description;      // descrizione dell'operazione

   double volume;                // volume dell'operazione

   string symbol;                // simbolo dell'affare

//--- imposta la data di inizio e di fine per richiedere la cronistoria degli affari

   datetime from_date=0;         // dall'inizio inizio

   datetime to_date=TimeCurrent();// fino al momento corrente

//--- richiede la cronistoria degli affari all'interno del periodo specificato

   HistorySelect(from_date,to_date);

//--- numero totale nella lista degli affari

   int deals=HistoryDealsTotal();

//--- ora elabora ogni trade

   for(int i=0;i<deals;i++)

     {

      deal_ticket=               HistoryDealGetTicket(i);

      volume=                    HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);

      transaction_time=(datetime)HistoryDealGetInteger(deal_ticket,DEAL_TIME);

      order_ticket=              HistoryDealGetInteger(deal_ticket,DEAL_ORDER);

      deal_type=                 HistoryDealGetInteger(deal_ticket,DEAL_TYPE);

      symbol=                    HistoryDealGetString(deal_ticket,DEAL_SYMBOL);

      position_ID=               HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);

      deal_description=          GetDealDescription(deal_type,volume,symbol,order_ticket,position_ID);

      //--- esegue la buona formattazione per il numero dell'affare

      string print_index=StringFormat("% 3d",i);

      //--- mostra informazioni sull'affare

      Print(print_index+": deal #",deal_ticket," at ",transaction_time,deal_description);

     }

  }

//+--------------------------------------------------------------------------------+

//| Restituisce la descrizione della stringa dell'operazione                       |

//+--------------------------------------------------------------------------------+

string GetDealDescription(long deal_type,double volume,string symbol,long ticket,long pos_ID)

  {

   string descr;

//---

   switch(deal_type)

     {

      case DEAL_TYPE_BALANCE:                  return ("balance");

      case DEAL_TYPE_CREDIT:                   return ("credit");

      case DEAL_TYPE_CHARGE:                   return ("charge");

      case DEAL_TYPE_CORRECTION:               return ("correction");

      case DEAL_TYPE_BUY:                      descr="buy"break;

      case DEAL_TYPE_SELL:                     descr="sell"break;

      case DEAL_TYPE_BONUS:                    return ("bonus");

      case DEAL_TYPE_COMMISSION:               return ("additional commission");

      case DEAL_TYPE_COMMISSION_DAILY:         return ("daily commission");

      case DEAL_TYPE_COMMISSION_MONTHLY:       return ("monthly commission");

      case DEAL_TYPE_COMMISSION_AGENT_DAILY:   return ("daily agent commission");

      case DEAL_TYPE_COMMISSION_AGENT_MONTHLYreturn ("monthly agent commission");

      case DEAL_TYPE_INTEREST:                 return ("interest rate");

      case DEAL_TYPE_BUY_CANCELED:             descr="cancelled buy deal"break;

      case DEAL_TYPE_SELL_CANCELED:            descr="cancelled sell deal"break;

     }

   descr=StringFormat("%s %G %s (ordine #%d, ID della posizione %d)",

                      descr,  // descrizione corrente

                      volume, // volume dell'affare

                      symbol, // simbolo dell'affare

                      ticket, // ticket dell'ordine che ha causato l'affare

                      pos_ID  // ID della posizione, nel quale è incluso l'affare

                      );

   return(descr);

//---

  }


HistorySelect(),HistoryDealsTotal(), HistoryDealSelect(), Proprietà Affari