HistoryDealGetTicket

A função seleciona um negócio para processamento posterior e retorna o ticket de negócio na história. Antes de chamar HistoryDealGetTicket (), primeiro é necessário receber o histórico de negócios e ordens utilizando a função HistorySelect() ou a função HistorySelectByPosition().

ulong  HistoryDealGetTicket(
   int  index      // ticket de negócio
   );

Parâmetros

index

[in]  Número de um negócio na lista de negociações

Valor do Retorno

Valor do tipo ulong. Se a função falhar, será retornado 0.

Observação

Não confunda ordens, operações e posições. Cada operação é o resultado da execução de uma ordem, cada posição é o resumo de um ou mais operações.

Exemplo:

void OnStart()
  {
   ulong deal_ticket;            // bilhetagem da operação (deal)
   ulong order_ticket;           // ticket da ordem que o negócio foi executado em
   datetime transaction_time;    // tempo de execução de um negócio
   long deal_type ;              // tipo de operação comercial
   long position_ID;             // ID posição
   string deal_description;      // descrição da operação
   double volume;                // volume da operação
   string symbol;                // ativo da negociação
//--- definir a data inicial e final para solicitar o histórico dos negócios
   datetime from_date=0;         // desde o princípio
   datetime to_date=TimeCurrent();//até o momento atual
//--- solicita o histórico das negociações no período especificado
   HistorySelect(from_date,to_date);
//--- número total na lista das negócios
   int deals=HistoryDealsTotal();
//--- agora processar cada trade (negócio)
   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);
      //--- realizar uma boa formatação para o número de negócio
      string print_index=StringFormat("% 3d",i);
      //--- mostrar informações sobre o negócio
      Print(print_index+": deal #",deal_ticket," em ",transaction_time,deal_description);
     }
  }
//+------------------------------------------------------------------+
//| Retorna a descrição string da operação                           |
//+------------------------------------------------------------------+
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 ("correção");
      case DEAL_TYPE_BUY:                      descr="compra"break;
      case DEAL_TYPE_SELL:                     descr="vender"break;
      case DEAL_TYPE_BONUS:                    return ("bonus");
      case DEAL_TYPE_COMMISSION:               return ("comissão adicional");
      case DEAL_TYPE_COMMISSION_DAILY:         return ("comissão diária");
      case DEAL_TYPE_COMMISSION_MONTHLY:       return ("comissão mensal");
      case DEAL_TYPE_COMMISSION_AGENT_DAILY:   return ("comissão de agente diário");
      case DEAL_TYPE_COMMISSION_AGENT_MONTHLYreturn ("comissão de agente mensal");
      case DEAL_TYPE_INTEREST:                 return ("taxa de juros");
      case DEAL_TYPE_BUY_CANCELED:             descr="cancelado comprar negócio"break;
      case DEAL_TYPE_SELL_CANCELED:            descr="cancelado vender negócio"break;
     }
   descr=StringFormat("%s %G %s (ordem #%d, a posição ID %d)",
                      descr,  // descrição atual
                      volume, // volume de negócio
                      symbol, // ativo de negócio
                      ticket, // ticket da ordem que provocou o negócio
                      pos_ID  // ID de uma posição, na qual a negócio é incluído
                      );
   return(descr);
//---
  }

 

Também Veja

HistorySelect(), HistoryDealsTotal(), HistoryDealSelect(), Propriedades de uma Operação