- Operações comerciais
- Gráficos - Configurações - MetaTrader 5 para iPhone
- Negociação através de um clique - Operações comerciais
"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?
"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.
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."); } //+------------------------------------------------------------------+
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?
- www.metatrader5.com
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso