Interpretar o meu historico do Meta trader 5.

 
Estou desenvolvendo um software para metrificar minha performance no trading, mas para isso eu preciso importar meu historico de negociações para dentro do software. Mas o desenvolvedor está  em duvida de como configurar a interpretação dos arquivos HTML e CLSX CSV. Pois quando eu baixo o arquivo com o meu historico de trades ele puxa 3 informações diferentes, snedo elas "Posições" "Ordens" e "Transações". mas oque eu preciso que tenha nos relatorios para o software interpretar são os trades que realmente foram executados e minhas transaçoes de depositos e saques. Alguem consegue me dizer qual dessas o dev precisa configurar para ser importadas para dentro do software e apresentar essas informações que necessito?
 
Crntrade0102Estou desenvolvendo um software para metrificar minha performance no trading, mas para isso eu preciso importar meu historico de negociações para dentro do software. Mas o desenvolvedor está  em duvida de como configurar a interpretação dos arquivos HTML e CLSX CSV. Pois quando eu baixo o arquivo com o meu historico de trades ele puxa 3 informações diferentes, snedo elas "Posições" "Ordens" e "Transações". mas oque eu preciso que tenha nos relatorios para o software interpretar são os trades que realmente foram executados e minhas transaçoes de depositos e saques. Alguem consegue me dizer qual dessas o dev precisa configurar para ser importadas para dentro do software e apresentar essas informações que necessito?

"Posições" mostra essas informações que você quer.

P.S.: No Relatório Geral do MT5 (Alt+E) não constam as informações que você deseja sobre a sua performance?

 
Vinicius Pereira De Oliveira #:

"Posições" mostra essas informações que você quer.

P.S.: No Relatório Geral do MT5 (Alt+E) não constam as informações que você deseja sobre a sua performance?

Não porque aparecem relatorios e métricas diferentes. O arquivo que eu preciso, é com as informações de trades executados, se deram lucro ou prejuizo e transações de deposito e saque para o software sempre conseguir calcular exatmaente como está minha conta.

 
Crntrade0102 #Não porque aparecem relatorios e métricas diferentes. O arquivo que eu preciso, é com as informações de trades executados, se deram lucro ou prejuizo e transações de deposito e saque para o software sempre conseguir calcular exatmaente como está minha conta.

Eu testei isso em corretoras Forex... Aparentemente funciona bem. Você pode facilmente adaptá-lo para utilizar em seu sistema. Ele exporta posições encerradas, depósitos e retiradas para CSV:

//+------------------------------------------------------------------+
//| Script: ExportHistoryToCSV.mq5                                   |
//| Description: Exporta histórico de deals (trades) e operações de  |
//|              saldo (depósitos/retiradas) para arquivo CSV.       |
//| Entradas: Data inicial e data final (somente 2 parâmetros).      |
//| Arquivo gerado: MQL5/Files/HistoryExport_YYYYMMDD_HHMMSS.csv     |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs

// Somente 2 parâmetros de entrada
input datetime InStartDate = D'1970.01.01 00:00'; // Data inicial (editar ao executar)
input datetime InEndDate   = D'2999.12.31 23:59'; // Data final   (editar ao executar)

// Conversão do tipo de deal para string legível
string DealTypeToString(const int type)
  {
   switch(type)
     {
      case DEAL_TYPE_BUY:
         return("BUY");
      case DEAL_TYPE_SELL:
         return("SELL");
      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_BONUS:
         return("BONUS");
      case DEAL_TYPE_COMMISSION:
         return("COMMISSION");
      case DEAL_TYPE_COMMISSION_DAILY:
         return("COMMISSION_DAILY");
      default:
         return("OTHER");
     }
  }

//+------------------------------------------------------------------+
void OnStart()
  {
   datetime start_time = InStartDate;
   datetime end_time   = InEndDate;

   if(start_time > end_time)
     {
      Print("Por favor, informe datas válidas no diálogo de entrada (Start <= End).\n");
      return;
     }

// Seleciona o histórico entre as datas
   if(!HistorySelect(start_time,end_time))
     {
      PrintFormat("HistorySelect falhou: %d",GetLastError());
      return;
     }

   int deals_total = HistoryDealsTotal();
   if(deals_total<=0)
     {
      Print("Nenhum registro de histórico encontrado no período selecionado.");
      return;
     }

// Gera nome de arquivo com timestamp seguro (sem caracteres inválidos)
   string fname = StringFormat("HistoryExport_%s_%s.csv",
                               TimeToString(start_time,TIME_DATE|TIME_MINUTES),
                               TimeToString(end_time,TIME_DATE|TIME_MINUTES));
// substitui espaços e dois-pontos por underscore
   StringReplace(fname,":","-");
   StringReplace(fname," ","_");

// Abre o arquivo na pasta MQL5/Files
   int handle = FileOpen(fname, FILE_WRITE|FILE_CSV|FILE_ANSI, ',');
   if(handle==INVALID_HANDLE)
     {
      PrintFormat("Erro ao abrir arquivo '%s' (FileOpen). Codigo: %d", fname, GetLastError());
      return;
     }

// Cabeçalho CSV
   FileWrite(handle,
             "Time",
             "Type",
             "Symbol",
             "Volume",
             "Price",
             "S/L",
             "T/P",
             "Commission",
             "Swap",
             "Profit",
             "Order",
             "PositionID",
             "DealTicket",
             "Comment");

// Percorre todos os deals selecionados
   for(int i=0;i<deals_total;i++)
     {
      ulong deal_ticket = HistoryDealGetTicket(i);
      if(deal_ticket==0)
        {
         PrintFormat("HistoryDealGetTicket falhou: %d",GetLastError());
         FileClose(handle);
         FileDelete(fname);
         return;
        }

      // lê propriedades úteis
      datetime tdeal        = (datetime)HistoryDealGetInteger(deal_ticket, DEAL_TIME);
      //string   dtype        = (EnumToString)HistoryDealGetInteger(deal_ticket, DEAL_TYPE);
      int      dtype        = (int)HistoryDealGetInteger(deal_ticket, DEAL_TYPE);
      string   typestr      = DealTypeToString(dtype);
      string   sym          = HistoryDealGetString(deal_ticket, DEAL_SYMBOL);
      double   vol          = HistoryDealGetDouble(deal_ticket, DEAL_VOLUME);
      double   price        = HistoryDealGetDouble(deal_ticket, DEAL_PRICE);
      double   sl           = HistoryDealGetDouble(deal_ticket, DEAL_SL);
      double   tp           = HistoryDealGetDouble(deal_ticket, DEAL_TP);
      double   commission   = HistoryDealGetDouble(deal_ticket, DEAL_COMMISSION);
      double   swap         = HistoryDealGetDouble(deal_ticket, DEAL_SWAP);
      double   profit       = HistoryDealGetDouble(deal_ticket, DEAL_PROFIT);
      long     order_ticket = (long)HistoryDealGetInteger(deal_ticket, DEAL_ORDER);
      long     pos_id       = (long)HistoryDealGetInteger(deal_ticket, DEAL_POSITION_ID);
      string   comment      = HistoryDealGetString(deal_ticket, DEAL_COMMENT);

      // Filtro: incluir apenas trades (BUY/SELL) e operações de balanço (BALANCE)
      if((commission != 0.0 || swap != 0.0 || profit != 0.0) &&
         (dtype==DEAL_TYPE_BUY || dtype==DEAL_TYPE_SELL || dtype==DEAL_TYPE_BALANCE ||
          dtype==DEAL_TYPE_CREDIT || dtype==DEAL_TYPE_CHARGE))
        {
         // Escreve linha CSV. FileWrite automaticamente coloca os separadores.
         FileWrite(handle,
                   TimeToString(tdeal, TIME_DATE|TIME_SECONDS),
                   typestr,
                   sym=="" ? "-" : sym,
                   sym=="" ? "-" : DoubleToString(vol,2),
                   sym=="" ? "-" : DoubleToString(price,(int)SymbolInfoInteger(sym,SYMBOL_DIGITS)),
                   sym=="" ? "-" : DoubleToString(sl,(int)SymbolInfoInteger(sym,SYMBOL_DIGITS)),
                   sym=="" ? "-" : DoubleToString(tp,(int)SymbolInfoInteger(sym,SYMBOL_DIGITS)),
                   sym=="" ? "-" : DoubleToString(commission,2),
                   sym=="" ? "-" : DoubleToString(swap,2),
                   DoubleToString(profit,2),
                   IntegerToString(order_ticket),
                   IntegerToString(pos_id),
                   IntegerToString(deal_ticket),
                   comment
                  );
        }
     }

   FileClose(handle);

   PrintFormat("Exportação concluída. Arquivo salvo em: MQL5/Files/%s", fname);
   Alert("Exportação de histórico concluída. Verifique a pasta MQL5\\Files.");
  }

//+------------------------------------------------------------------+
 
Crntrade0102:
Estou desenvolvendo um software para metrificar minha performance no trading, mas para isso eu preciso importar meu historico de negociações para dentro do software. Mas o desenvolvedor está  em duvida de como configurar a interpretação dos arquivos HTML e CLSX CSV. Pois quando eu baixo o arquivo com o meu historico de trades ele puxa 3 informações diferentes, snedo elas "Posições" "Ordens" e "Transações". mas oque eu preciso que tenha nos relatorios para o software interpretar são os trades que realmente foram executados e minhas transaçoes de depositos e saques. Alguem consegue me dizer qual dessas o dev precisa configurar para ser importadas para dentro do software e apresentar essas informações que necessito?
Comece estudando a plataforma de maneira geral porque não entender os 3 termos é uma falha grave no meu ver: https://www.metatrader5.com/pt/terminal/help/trading/general_concept .
Princípios gerais - Operações comerciais - Ajuda para o MetaTrader 5
Princípios gerais - Operações comerciais - Ajuda para o MetaTrader 5
  • www.metatrader5.com
Antes de começar a estudar as funções da plataforma, você deve compreender claramente todos os termos e funç...