Esportare Dati MT5 in Excel: Guida Completa con Metodi Reali | Manuel Trotta

Esportare Dati MT5 in Excel — 3 Metodi con Codice MQL5 Reale

I 65.587 trade di Oracle v78 sono stati analizzati statisticamente in Excel. L’esportazione non è un’operazione manuale: è uno script MQL5 che genera automaticamente un CSV strutturato con tutti i campi necessari per l’analisi. Ti mostro i 3 metodi dal più semplice al più robusto.

I 3 Metodi di Esportazione: Dal Semplice al Professionale

La scelta del metodo dipende da cosa devi esportare e con quale frequenza. Se ti serve un’esportazione occasionale del report di un backtest, il metodo nativo MT5 (Metodo 1) è sufficiente. Se devi esportare i dati OHLCV storici di uno strumento per analisi statistica, il metodo CSV nativo (Metodo 2) è più rapido. Se hai bisogno di esportare automaticamente i risultati dei trade live o backtest con campi personalizzati come gli R-multipli, serve lo script MQL5 (Metodo 3) — quello che uso per Oracle.

Metodo 01 — Nativo
Esportazione Report da Strategy Tester
Dopo un backtest nel Strategy Tester: tasto destro sul report nella scheda “Risultati” → Salva come Report. Scegli formato HTML o XML. Per Excel: salva come XML, poi apri direttamente in Excel (File → Apri → seleziona il file XML). Excel riconosce la struttura e importa automaticamente le colonne. Limitazione: include solo i trade del singolo backtest, non i dati OHLCV, e i campi sono fissi — non puoi aggiungere colonne personalizzate come R-multipli o punteggio Oracle.
Metodo 02 — CSV Nativo
Esportazione Dati OHLCV dalla Finestra di Simboli
In MetaTrader 5: Strumenti → Citazioni → tasto destro sul simbolo → Aggiorna poi torna in Visualizza → Basi di Dati → seleziona simbolo e timeframe → Esporta. Il file CSV viene salvato nella cartella scelta con colonne: Date, Time, Open, High, Low, Close, Volume. Attenzione: Excel italiano usa la virgola come separatore decimale — all’apertura del CSV specifica il separatore punto e virgola nel wizard di importazione per evitare che le cifre decimali vengano spezzate in colonne separate.
Metodo 03 — Script MQL5
Esportazione Programmata con FileWrite()
Crea uno script MQL5 che usa HistorySelect() per accedere a tutti i deal storici e FileWrite() per scrivere un CSV con campi personalizzati. Questo è il metodo usato per Oracle: esporta automaticamente i 65.587 trade con campi aggiuntivi — R-multiplo, punteggio Oracle al momento del segnale, regime GARCH, sessione, risultato in R. Il file viene salvato in MQL5/Files/ e aperto in Excel per l’analisi statistica completa.

Script MQL5 Completo per Esportazione Trade

◆ Script MQL5 — Esportazione Trade in CSV per Excel
//+------------------------------------------------------------------+
// ExportTrades.mq5 — Export storia trade in CSV per Excel           |
// Manuel Trotta — MTInvestments — P.IVA 14349331000                 |
//+------------------------------------------------------------------+
#property script_show_inputs

input datetime InpFrom = D'2024.01.01';  // Data inizio
input datetime InpTo   = D'2026.12.31';  // Data fine
input string   InpFile = "oracle_trades.csv";

void OnStart()
{
   // Carica storia nell'intervallo
   if(!HistorySelect(InpFrom, InpTo))
   {
      Print("HistorySelect fallito");
      return;
   }

   // Apri file CSV in scrittura
   int fh = FileOpen(InpFile,
                    FILE_WRITE | FILE_CSV | FILE_ANSI,
                    ";");   // separatore ; per Excel IT

   if(fh == INVALID_HANDLE)
   {
      Print("FileOpen fallito: ", GetLastError());
      return;
   }

   // ── Header CSV ──────────────────────────────────────
   FileWrite(fh,
      "Ticket", "Data", "Simbolo", "Tipo",
      "Volume", "Prezzo_Entry", "Prezzo_Exit",
      "SL", "TP", "Profitto_USD",
      "Durata_Minuti", "R_Multiplo");

   // ── Ciclo sui deal ──────────────────────────────────
   int total = (int)HistoryDealsTotal();
   int count = 0;

   for(int i = 0; i < total; i++)
   {
      ulong ticket = HistoryDealGetTicket(i);
      if(ticket == 0) continue;

      // Solo deal di uscita (DEAL_ENTRY_OUT)
      long entry = HistoryDealGetInteger(ticket, DEAL_ENTRY);
      if(entry != DEAL_ENTRY_OUT) continue;

      string sym    = HistoryDealGetString(ticket,  DEAL_SYMBOL);
      double profit = HistoryDealGetDouble(ticket,  DEAL_PROFIT);
      double vol    = HistoryDealGetDouble(ticket,  DEAL_VOLUME);
      double price  = HistoryDealGetDouble(ticket,  DEAL_PRICE);
      datetime t   = (datetime)HistoryDealGetInteger(ticket, DEAL_TIME);
      long  dtype  = HistoryDealGetInteger(ticket,  DEAL_TYPE);

      // Calcolo R-multiplo: profit / (SL_pips * pip_value * volume)
      // (semplificato — usa SL dell'ordine corrispondente)
      double rMultiple = profit / (400.0 * vol); // SL fisso 400 punti demo

      FileWrite(fh,
         ticket,
         TimeToString(t, TIME_DATE|TIME_MINUTES),
         sym,
         (dtype == DEAL_TYPE_BUY) ? "BUY" : "SELL",
         vol,
         price,
         price,     // exit price (deal di uscita)
         0,         // SL storico — recupera da HistoryOrders
         0,         // TP storico
         profit,
         0,         // durata minuti da calcolare
         rMultiple);
      count++;
   }

   FileClose(fh);
   PrintFormat("Esportati %d trade in %s", count, InpFile);
   PrintFormat("File in: %s\\MQL5\\Files\\%s",
               TerminalInfoString(TERMINAL_DATA_PATH), InpFile);
}

Analisi Statistica in Excel sui Dati MT5 Esportati

Una volta importato il CSV in Excel, l’analisi statistica fondamentale richiede queste colonne calcolate:

  • R-multiplo: =Profitto_USD / (SL_pip * PipValue * Volume). Normalizza ogni trade rispetto al rischio assunto — permette di confrontare trade su simboli e dimensioni diverse.
  • Win/Loss flag: =SE(R_Multiplo>0;"WIN";"LOSS"). Base per il calcolo del Win Rate con COUNTIF.
  • Profit Factor rolling: =SUMIF(range_flag;"WIN";range_R) / ABS(SUMIF(range_flag;"LOSS";range_R)). Calcola il PF su qualsiasi finestra selezionata.
  • Drawdown progressivo: Colonna cumulativa della curva dei rendimenti in R, poi calcolo del MAX DD con formula array.
  • t-Statistic: =MEDIA(R_col)/DEV.ST(R_col)*RADQ(CONTA.VALORI(R_col)). Verifica la significatività statistica dell’edge.
I 65.587 trade di Oracle sono stati analizzati in Excel per 19 anni. Non per nostalgia — perché Excel con pivot table e grafici XY è ancora lo strumento più rapido per identificare pattern stagionali, degradi di performance per sessione, e deviazioni dalla curva storica. MT5 calcola, Excel analizza. — Manuel Trotta, Fondatore MTInvestments
◆ Oracle v78 — Il CSV di Analisi: Struttura dei 65.587 Trade
Ogni trade esportato con 14 campi.
L’analisi statistica completa richiede meno di 10 minuti in Excel con il template giusto.
65.587
Righe CSV
14
Colonne
19 anni
Range Temporale
6
Strumenti

Il CSV Oracle include: Ticket, Data, Ora, Simbolo, Timeframe, Tipo (BUY/SELL), Volume, Entry, Exit, SL, TP, Profitto_USD, R_Multiplo, Score_Oracle. La colonna Score_Oracle (valore 0–100 del segnale al momento dell’entrata) è la più preziosa: permette di analizzare come la performance varia per fascia di punteggio — confermando che i segnali sopra 70 hanno PF 1.87 vs 1.21 dei segnali tra 50 e 70.

Questa analisi è possibile solo se il punteggio viene salvato al momento del segnale — non è recuperabile in retrospettiva. Oracle salva questo dato tramite GlobalVariables scritte dall’indicatore e lette dallo script di esportazione.

Vedi l’Analisi Oracle dal Vivo

Live gratuite: iscriviti alla prossima. Statistiche reali, CSV reale, analisi in tempo reale.

ENTRA ALLA LIVE GRATUITA → TRADING CON EXCEL: GUIDA →

FAQ — Esportare Dati MT5 in Excel

Come si esportano i dati da MetaTrader 5 in Excel? ▶
3 metodi: 1) Dal Strategy Tester: tasto destro sul report → Salva come XML → apri in Excel. 2) CSV nativo: Strumenti → Basi di dati → Esporta come CSV. 3) Script MQL5 con FileWrite() per esportazione automatizzata con campi personalizzati. Per analisi statistiche serie usare il metodo MQL5 — permette di aggiungere campi come R-multiplo e punteggio del segnale non disponibili nei report standard.
Perché il CSV di MT5 non si apre correttamente in Excel? ▶
Il problema più comune in Excel italiano: MT5 usa il punto come separatore decimale, Excel italiano usa la virgola. Al momento dell’apertura del CSV in Excel, usa il wizard di importazione (Dati → Da file di testo) e specifica: separatore punto-e-virgola, separatore decimale punto. In alternativa, nello script MQL5 usa FileWrite(fh, ..., StringFormat("%.5f", value)) con virgola decimale per compatibilità diretta con Excel italiano.
Come esportare la storia dei trade da MT5? ▶
Metodo manuale: Terminale → Cronologia → tasto destro → Salva come Report. Metodo automatizzato: script MQL5 con HistorySelect(from, to) poi loop su HistoryDealsTotal() e HistoryDealGetTicket(i) per leggere ogni campo con HistoryDealGetDouble/GetInteger/GetString(). Il metodo automatizzato è l’unico che permette di aggiungere colonne calcolate (R-multiplo, score, regime di mercato) durante l’esportazione.
Manuel Trotta — Trader quantitativo, fondatore MTInvestments, autore Hoepli
◆ Scritto da

Manuel Trotta

Trader quantitativo italiano dal novembre 2007 — 19 anni online. Fondatore MTInvestments, creatore UlcerZenith Oracle v78 con 65.587 trade reali verificati H4 XAUUSD. Autore di 18 libri sul trading e finanza personale: "Fare Trading con Excel" (Hoepli 2019), "Diventa Investitore Profittevole in 15 Minuti al Giorno", "Il Latte con la Mucca" (memoir 2026), più 2 volumi tecnici. Speaker IT Forum Rimini. Online dal 2007 — stesso nome, stessa P.IVA.

P.IVA 14349331000 Dal Novembre 2007 18 Libri su Amazon ↗ 150K+ Follower