BACKTESTMARKET
Separatore Decimale in MT4: Punto o Virgola per Prezzi e Dati CSV
algorithmic-trading·

Separatore Decimale in MT4: Punto o Virgola per Prezzi e Dati CSV

I prezzi di MT4 usano il punto, ma le impostazioni regionali di Windows o Excel potrebbero aspettarsi una virgola. Scopri dove nasce l'incompatibilità e come correggere le importazioni ed esportazioni CSV.

Di BacktestMarket Team
separatore decimale mt4

Analista che importa un CSV di MT4 in un foglio di calcolo

MetaTrader 4 scrive i prezzi usando il punto come separatore decimale, come in 1.08457. I problemi iniziano quando qualcosa attorno a MT4 si aspetta invece una virgola: un foglio di calcolo impostato su una regione europea, un file CSV esportato da un altro strumento, o uno script che analizza del testo. Questa guida mostra dove emerge l'incompatibilità, come diagnosticarla in pochi minuti e come preparare i file a barre di un minuto affinché un backtest legga correttamente ogni prezzo.

In breve

  • L'output di MT4 segue la convenzione del punto (1234.456). Excel o Windows impostati su una regione che usa la virgola interpretano quel testo in modo diverso.
  • Il separatore è un problema di impostazioni regionali e formato file, non un'impostazione di trading di MT4. Si corregge nel file, nelle impostazioni regionali o nel codice di esportazione.
  • Se il tuo CSV usa la virgola come separatore decimale, usa un delimitatore di campo diverso (un punto e virgola o una tabulazione) in modo che i valori non si dividano nel punto sbagliato.
  • Dopo ogni importazione, verifica che il valore Digits del simbolo corrisponda alla precisione dei dati, poi scorri il grafico fino alla prima barra.
  • Dati già puliti e formattati per MT4 eliminano gran parte di questo lavoro.

Indice

Cosa significa il separatore decimale in MT4

Il separatore decimale è il carattere che divide un numero nella sua parte intera e nella sua parte frazionaria. I due caratteri comunemente usati sono la virgola e il punto, e quale si applica dipende dalla lingua/regione e dal contesto. Niente di tutto questo è specifico del trading, ma i dati di trading rendono la cosa rilevante perché i prezzi hanno quattro, cinque o più decimali e ogni cifra conta.

All'interno di MT4, una quotazione come EURUSD a 1.08457 è memorizzata come numero, non come testo. Il separatore esiste solo quando un numero viene trasformato in testo o il testo viene ritrasformato in numero. Questo avviene in quattro punti:

  1. Visualizzazione su grafico e Market Watch.
  2. File CSV che esporti o importi.
  3. Script ed expert advisor che stampano, registrano o analizzano valori.
  4. Fogli di calcolo e altri programmi che aprono esportazioni di MT4.

La maggior parte dei problemi segnalati si trova nei punti da 2 a 4, non nella visualizzazione della piattaforma stessa.

MT4 usa il punto o la virgola?

MT4 produce testo numerico in stile punto. Una discussione sul forum MQL4 riguardante l'esportazione della cronologia del conto descrive il sintomo tipico: MetaTrader restituisce valori come 1234.456, mentre Excel con impostazioni regionali europee potrebbe aspettarsi 1.234,456. I due rimedi suggeriti sono impostare le impostazioni regionali in modo che corrispondano a MetaTrader, oppure modificare il codice in modo che l'output corrisponda a ciò che Excel si aspetta.

Quindi la risposta a "si può cambiare l'impostazione?" ha due parti. Non esiste un interruttore in MT4 che trasformi un punto in una virgola per i prezzi sul grafico. Ciò che puoi cambiare è l'ambiente che legge i dati (regione di Windows, opzioni di importazione di Excel) e il testo che i tuoi file e script producono.

MT4 usa il punto o la virgola?

Dove nasce davvero l'incompatibilità

Apertura di un'esportazione MT4 in un foglio di calcolo

Esporti la cronologia o le quotazioni in CSV, fai doppio clic sul file, ed Excel mostra 1.08457 come data, come testo o come un numero intero enorme. La causa è che Excel analizza il testo usando le impostazioni regionali del sistema operativo. Una macchina Windows impostata su una regione che usa la virgola per i decimali non riconosce il punto come segno decimale.

La correzione che non tocca il file è usare la funzione di importazione dati del foglio di calcolo e indicare esplicitamente che il separatore decimale è un punto, invece di fare doppio clic sul file. In alternativa, cambia il simbolo decimale nelle impostazioni regionali di Windows (Pannello di controllo, Paese e lingua, Impostazioni aggiuntive), a costo di influenzare ogni programma sulla macchina.

Importazione di un CSV con decimali a virgola

Il contrario accade anche. Un file di dati preparato in una regione con la virgola contiene valori come 1,08457. Se anche il delimitatore di campo è una virgola, l'importatore vede una colonna in più per ogni prezzo e il file si disgrega. La regola pratica è semplice: quando i decimali sono scritti con la virgola, il delimitatore deve essere qualcos'altro, solitamente un punto e virgola. Una guida all'importazione di simboli personalizzati fa la stessa osservazione, aggiungendo che il separatore decimale nel file dovrebbe corrispondere alle impostazioni regionali del sistema.

I decimali con virgola richiedono un delimitatore CSV diverso

Gli strumenti open-source risolvono il problema nel codice. Lo script CSV2FXT su GitHub verifica se i numeri usano la virgola come segno decimale e adatta la propria analisi, incluso il caso in cui il delimitatore non è una virgola e i valori appaiono come 1,2345.

Script ed expert advisor che scrivono file

Se il tuo EA registra le operazioni in CSV per un collega europeo, potresti voler usare le virgole nell'output. Il thread del forum MQL4 citato sopra mostra una piccola funzione di supporto che converte un double in stringa e poi usa StringReplace per sostituire il punto con la virgola. Un parametro per il separatore consente a un'unica funzione di servire ogni impostazione regionale.

Quando stampi valori per la tua revisione personale, ricorda che MQL4 può mostrare un double con fino a 16 cifre dopo il punto decimale. Lunghe sequenze di cifre in un log sono la rappresentazione in virgola mobile, non precisione aggiuntiva del prezzo, quindi formatta l'output in base al Digits del simbolo.

Quali paesi usano la virgola?

La convenzione varia da paese a paese. La panoramica di Wikipedia elenca Germania, Francia, Spagna, Italia, Polonia, Russia e Brasile tra gli utilizzatori della virgola, e Stati Uniti, Regno Unito, Australia, Giappone, Cina e India tra gli utilizzatori del punto. I separatori delle migliaia si invertono allo stesso modo, quindi 1,234.56 negli Stati Uniti diventa 1.234,56 in gran parte dell'Europa continentale.

Questo è rilevante per i dati di trading perché i file viaggiano. Un dataset costruito da uno sviluppatore a Berlino, un feed di un broker ospitato a Londra e un trader seduto a Madrid possono gestire lo stesso numero in modo diverso. I programmi che si affidano alle impostazioni regionali della macchina, come CDbl in Visual Basic, seguono il sistema operativo: un punto negli Stati Uniti, solitamente una virgola in gran parte d'Europa. Su Windows, le impostazioni regionali definiscono sia il simbolo decimale sia il simbolo di raggruppamento delle cifre, motivo per cui lo stesso file può essere interpretato correttamente su un PC e fallire su un altro.

Confronto rapido dei formati

SituazioneTesto tipicoDelimitatore da usareRischio
Stile MT4, decimali con punto1.08457VirgolaNessuno in sistemi con regione a punto
Esportazione foglio di calcolo regione a virgola1,08457Punto e virgola o tabulazioneL'importatore divide il prezzo in due colonne
File con punto aperto in Excel regione a virgola1.08457QualsiasiValore letto come testo o come data
Migliaia e decimali mischiati1.234,56 vs 1,234.56Non per barre di prezzoOrdine di grandezza sbagliato se letto con la regione sbagliata

Per le barre di prezzo la scelta più pulita è un decimale con punto, nessun separatore delle migliaia e un numero coerente di decimali per simbolo.

Come preparare un file prima di importarlo in MT4

Segui quest'ordine e individuerai quasi tutti gli errori di separatore prima che raggiungano un backtest.

  1. Apri il file grezzo in un editor di testo semplice. Un foglio di calcolo può riformattare silenziosamente i valori all'apertura. Un editor di testo mostra cosa contiene realmente il file.
  2. Identifica il segno decimale e il delimitatore. Osserva un prezzo e una riga. È 1.08457,1.08460 oppure 1,08457;1,08460?
  3. Rendili compatibili. Decimali con punto e delimitatori a virgola funzionano. I decimali con virgola richiedono un delimitatore a punto e virgola o a tabulazione. Se i tuoi strumenti sono in disaccordo, converti una sola volta con un trova e sostituisci su una copia, mai sull'originale.
  4. Rimuovi i separatori delle migliaia. I prezzi nel forex raramente ne hanno bisogno, ma i dati su indici e metalli possono raggiungere quattro o cinque cifre prima del decimale.
  5. Controlla il formato di data e ora. I problemi di separatore spesso viaggiano insieme ai problemi di formato data. La guida all'importazione dell'articolo di Trading BotMaker specifica date in formato AAAA.MM.GG e orari a 24 ore HH:MM:SS per i simboli personalizzati.
  6. Importa usando lo strumento della piattaforma stessa. La nostra guida su come importare dati CSV in MT4 e la pagina su come importare dati storici in MetaTrader 4 e 5 coprono i passaggi del History Center.
  7. Verifica. Vedi la sezione successiva.

Verifica Digits e precisione dopo l'importazione

Un separatore corretto è solo metà del lavoro. L'altra metà è assicurarsi che MT4 mantenga tutti i decimali che gli hai fornito.

Se i dati hanno cinque decimali (1.23456) ma il simbolo è impostato su un numero inferiore di cifre, i prezzi possono essere troncati e il backtest calcola con i valori sbagliati, secondo la guida ai simboli personalizzati. La stessa guida suggerisce di verificare che le barre vengano renderizzate correttamente e di scorrere fino alla data più lontana per cercare eventuali buchi.

Due dettagli sul funzionamento interno di MT4 spiegano perché ciò accade:

  • Per i grafici offline, il numero di decimali viene ereditato dall'elenco dei simboli del broker quando il nome del simbolo corrisponde. Se il nome non esiste in quell'elenco, MT4 assegna quattro decimali indipendentemente da ciò che indica l'intestazione del file di cronologia. Uno strumento a 5 cifre con un nome di simbolo inventato può quindi perdere il quinto decimale.
  • Il formato binario della cronologia di MT4 memorizza la precisione nell'intestazione del file, in un campo digits all'offset di byte 84, seguito da record di 44 byte contenenti tempo, open, low, high, close e volume, come documentato nel progetto HSTViewer. Il file binario non ha alcun separatore; il problema del punto o della virgola esiste solo nella fase CSV prima della conversione.

Una breve checklist post-importazione:

  • Confronta tre o quattro prezzi sul grafico con il file sorgente.
  • Passa il mouse sull'ultima cifra decimale di una barra per confermare che sia presente.
  • Scorri fino alla primissima barra e cerca buchi o sezioni piatte.
  • Se le barre si fermano prima del previsto, controlla il limite di barre della piattaforma; lo spieghiamo nel nostro articolo su MT4 max bars.
  • Se il History Center restituisce un errore, prova le correzioni sicure prima della riparazione del file.

Un esempio pratico

Supponi di ricevere un file EURUSD a un minuto da un collega a Madrid. Le prime righe sembrano così:

2024.03.01;00:00;1,08457;1,08462;1,08455;1,08460;42

Il delimitatore a punto e virgola è un indizio che i decimali usano la virgola. Per portare questo in MT4 da un ambiente in stile punto:

  1. Copia il file e lascia l'originale intatto.
  2. In un editor di testo, sostituisci ogni virgola con un punto. Questo è sicuro in questo caso perché il delimitatore è un punto e virgola, quindi le virgole compaiono solo nei prezzi.
  3. Poi sostituisci i punti e virgola con virgole se il tuo strumento di importazione si aspetta campi delimitati da virgole.
  4. Importa, imposta il Digits del simbolo su 5 e confronta la prima barra con l'originale: open 1.08457.

L'ordine è importante. Sostituire prima i punti e virgola farebbe dividere ogni prezzo in due campi se il passaggio da virgola a punto viene saltato.

Il nostro punto di vista: perché il formato va risolto prima ancora di aprire il file

Raccogliamo e manteniamo noi stessi i nostri dataset a barre di un minuto, e i problemi di formattazione descritti sopra sono esattamente il motivo. I trader non perdono ore sulle idee di strategia. Perdono ore sui file: una virgola dove dovrebbe esserci un punto, un quinto decimale troncato, un mese mancante che nessuno ha notato finché la curva di equity non è sembrata troppo bella.

Il nostro approccio è che un dataset dovrebbe essere pronto per l'importazione in MT4 o MT5 così come viene consegnato, con verifica barra per barra e aggiustamenti documentati, in modo che la prima cosa che fai sia testare la tua idea invece di riparare un file. Crediamo che questo standard sia importante sia per il backtesting guidato da esseri umani sia per quello guidato dall'IA, perché una pipeline automatizzata non noterà un prezzo interpretato male in silenzio meglio di quanto farebbe un occhio stanco.

Ogni passaggio di conversione che esegui tu stesso è un altro punto dove può nascere un errore. Rimuovere quei passaggi è il modo più affidabile per proteggere l'integrità di un risultato. I nostri ingegneri rispondono anche direttamente alle richieste di supporto, quindi quando un file non si comporta come dovrebbe, parli con le persone che lo hanno costruito.

Inizia

Ottieni dati a barre di un minuto che si importano senza conversione

Se preferisci non modificare manualmente i separatori, offriamo set di dati storici completi e puliti a barre di un minuto dal 2014 su forex, metalli, indici azionari, obbligazioni e materie prime, costruiti per l'importazione diretta in MT4 e MT5. Sfoglia l'intera gamma nella nostra pagina dei dati storici, oppure scegli il Piano Annuale a 119 € all'anno.

Backtestmarket

Prima di affidare una strategia a un dataset, la nostra guida su tre controlli di qualità per dataset pronti all'importazione mostra cosa verificare, e fonti di dati per backtesting MT4 riproducibili spiega come mantenere i tuoi risultati replicabili.

Errori comuni da evitare

  • Modificare in un foglio di calcolo e salvare di nuovo come CSV. Il programma potrebbe riscrivere i decimali secondo la tua regione. Modifica in un editor di testo quando possibile.
  • Cambiare le impostazioni regionali di Windows e dimenticarsene. Altri programmi, inclusi i software di contabilità, si comporteranno poi in modo diverso.
  • Lasciare i separatori delle migliaia nei dati sugli indici. Un valore di 18.250,5 potrebbe essere letto come due campi.
  • Mescolare file da fonti diverse in un'unica importazione. Converti prima ogni file a uno standard unico.
  • Fidarsi di un messaggio di importazione riuscita. L'importazione può terminare senza errori e contenere comunque prezzi troncati. Confronta sempre con la fonte.
  • Ignorare l'impostazione Digits sui simboli personalizzati. Nome e precisione devono essere coerenti fin dall'inizio.

FAQ

Posso cambiare il separatore decimale all'interno di MT4?

Non per i prezzi del grafico. MT4 visualizza e memorizza i prezzi nel proprio formato, e il separatore conta solo quando i numeri diventano testo. Devi invece regolare l'ambiente: le impostazioni regionali di Windows, le opzioni di importazione del foglio di calcolo, oppure il codice che scrive i tuoi file CSV o di log.

Perché il mio CSV sembra corretto in Blocco Note ma sbagliato in Excel?

Excel legge il testo tramite le impostazioni regionali di Windows. Se la tua regione usa la virgola per i decimali, un prezzo in stile punto come 1.08457 potrebbe essere trattato come testo o come data. Usa lo strumento di importazione dati di Excel e imposta il separatore decimale sul punto, oppure apri il file in un editor di testo per controllare i valori grezzi.

Quale delimitatore dovrei usare se i miei numeri contengono virgole?

Usa un punto e virgola o una tabulazione. Le virgole all'interno dei prezzi verrebbero altrimenti trattate come interruzioni di campo, dividendo un prezzo in due colonne. Dopo la conversione ai decimali con punto, un delimitatore a virgola torna a funzionare.

Il separatore decimale influisce sui risultati del backtest?

Può influire, se un valore viene letto in modo errato. Un prezzo letto come 108457 invece di 1.08457, oppure troncato perché Digits è troppo basso, produce operazioni e statistiche sbagliate. Controlla alcune barre rispetto al file sorgente e verifica che Digits corrisponda ai dati dopo ogni importazione.

Fonti

Consigliati

Risorse correlate

Esplora la guida di BacktestMarket su come importare dati in MetaTrader per mettere in pratica le idee di questo articolo.

Newsletter

Rimani aggiornato

Nuovi dataset, Expert Advisor, sconti e approfondimenti di trading — direttamente nella tua casella di posta.

Carrello

Il carrello è vuoto

Aggiungi prodotti per iniziare.