Home
Il formato dei dati giusto per il trading

14 Novembre 2022

Il formato dei dati giusto per il trading

di

Per fare trading con Excel occorre prima di tutto disporre dei dati e questo richiede la conoscenza della natura del loro formato, per poterli caricare.

Il primo passo per gestire i dati

Nel caso in cui ci troviamo a dover gestire dati finanziari archiviati su un file, che poi è quello che succede nella maggior parte dei casi, dobbiamo capire come gestirli in base al formato con cui sono stati memorizzati. I dati possono essere archiviati su file utilizzando diversi formati, ognuno dei quali ha le sue caratteristiche e una logica. Ci sono diversi formati, perché ognuno di essi è nato per compiti specifici, e alcuni si adattano meglio di altri in certi scenari.

Il formato utilizzato dipende dalla struttura utilizzata e la scelta viene fatta da chi fornisce i dati. Solitamente si seguono alcuni standard de facto o comunque vengono utilizzati i formati che meglio si prestano alla condivisione, al trattamento e all’elaborazione. I principali formati con cui normalmente vengono distribuiti i dati sono:

  • TXT;
  • CSV;
  • XML;
  • JSON;
  • XLS, XLSX, XLSM e XLSB.

I primi quattro tipi di formato (TXT, CSV, XML e JSON) sono tutti di tipo testuale ovvero contengono caratteri (cifre, lettere e simboli) e differiscono soltanto per la struttura interna con cui vengono organizzati i dati. Sono file che possono essere visualizzati su qualsiasi piattaforma software, perché non sono altro che testi. Su Windows possono essere aperti anche con il Blocco note (Notepad) fornito con il sistema operativo, su Mac con TextEdit, anch’esso di serie.

Il nome completo di un file è costituito da due parti, separate da un punto; la prima è il nome, che può essere lungo fino a 255 caratteri e può contenere spazi, mentre la seconda è l’estensione, ed è formata da tre o quattro caratteri che indicano il tipo del file. Un nome completo di file avrà quindi una forma simile a nome-file.estensione dove al posto di .estensione ci saranno .txt, .csv, .xml, .json, .xls, .xlsx, .xlsm o xlsb.

I formati XLS, XLSX, XLSM e XLSB sono nativi di Excel e sono la condizione migliore che può capitarci, perché possono essere aperti direttamente senza alcun tipo di conversione o adattamento. Xls è un formato obsoleto, mentre lo standard attuale di Excel è XLSX. Xlsm e XLSB sono formati binari, che si utilizzano quando all’interno del foglio ci sono macro e/o codice VBA.

Il problema, però, è che raramente un fornitore di dati utilizza i formati di Excel, perché sono proprietari di Microsoft, e quindi troppo legati a questa piattaforma.

Leggi anche: Excel, il Risolutore

Analizzeremo uno per uno i vari formati e, per supportare la spiegazione, utilizzeremo un frammento di un file di esempio tratto dal file di dati storici di Amazon, visualizzando i dati in ciascun formato.

TXT

È il formato più banale che si può trovare, e solitamente contiene dati in formato grezzo. Molti implementano i dati in questo formato, dandogli comunque una struttura che sia utilizzabile facilmente.

Questo è il contenuto del nostro file Esempio Formato.txt:

Date Open High Low Close Adj Close Volume
2022/01/03 167,550003 170,703506 166,160507 170,404495 170,404495 63520000
2022/01/04 170,438004 171,399994 166,349503 167,522003 167,522003 70726000
2022/01/05 166,882996 167,126495 164,356995 164,356995 164,356995 64302000
2022/01/06 163,450500 164,800003 161,936996 163,253998 163,253998 51958000
2022/01/07 163,839005 165,243500 162,031006 162,554001 162,554001 46606000

Il file risulta di difficile lettura e i dati sono suddivisi da uno spazio che, nel caso in cui un testo contenga uno spazio può creare problemi di interpretazione, bloccando la procedura di importazione o creando un errore di dati difficilmente individuabile.

Il formato CSV

È in assoluto il formato più utilizzato per i dati finanziari, perché offre tutta una serie di vantaggi difficilmente eguagliabili da altri formati.

  • È facilmente leggibile (è un file di testo).
  • È molto leggero (file di piccole dimensioni).
  • Consente una struttura dati tabellare, formata da record e campi.
  • È uno standard utilizzato da decenni.
  • Viene riconosciuto da qualsiasi software che tratta dati.
  • Può essere letto da un essere umano.
  • Viene gestito nativamente da molte piattaforme e sistemi operativi.

Questo è il contenuto del file Esempio Formato.csv:

Date;Open;High;Low;Close;Adj Close;Volume
2022/01/03;167,550003;170,703506;166,160507;170,404495;170,404495;63520000
2022/01/04;170,438004;171,399994;166,349503;167,522003;167,522003;70726000
2022/01/05;166,882996;167,126495;164,356995;164,356995;164,356995;64302000
2022/01/06;163,450500;164,800003;161,936996;163,253998;163,253998;51958000
2022/01/07;163,839005;165,243500;162,031006;162,554001;162,554001;46606000

Apparentemente identico al file precedente, in realtà differisce per la presenza del simbolo ; che separa i campi, evitando errori di interpretazione o caricamento.

Per tutti questi motivi sarà il formato che utilizzeremo in questo libro per il download manuale, per la ricezione da API e per il caricamento e il salvataggio.

Il formato XML

È un formato testuale come i precedenti, ma molto più complesso, perché è strutturato in modo gerarchico e perché utilizza una serie di caratteri aggiuntivi (tag) simili a quelli del linguaggio HTML. Il file diventa di difficile lettura, ma anche complesso da scrivere e modificare. La sua gestione da codice comporta la conoscenza di una tecnologia che gestisce la struttura dati.

Si presta molto bene a dati strutturati e complessi, e il suo campo di applicazione primario è l’interscambio dati tra piattaforme differenti. Per questi motivi non è il formato dati più utilizzato nel mercato dei dati semplici per gli utenti finali, ma è più rivolto ad ambiti professionali e istituzionali, dove il rigore del formato diventa un aspetto molto più importante rispetto alla facilità d’uso.

Questo è il contenuto del file Esempio Formato.xml:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<row>
<Date>2022/01/03</Date>
<Open>167,550003</Open>
<High>170,703506</High>
<Low>166,160507</Low>
<Close>170,404495</Close>
<AdjClose>170,404495</AdjClose>
<Volume>63520000</Volume>
</row>
<row>
<Date>2022/01/04</Date>
<Open>170,438004</Open>
<High>171,399994</High>
<Low>166,349503</Low>
<Close>167,522003</Close>
<AdjClose>167,522003</AdjClose>
<Volume>70726000</Volume>
</row>
<row>
<Date>2022/01/05</Date>
<Open>166,882996</Open>
<High>167,126495</High>
<Low>164,356995</Low>
<Close>164,356995</Close>
<AdjClose>164,356995</AdjClose>
<Volume>64302000</Volume>
</row>
<row>
<Date>2022/01/06</Date>
<Open>163,450500</Open>
<High>164,800003</High>
<Low>161,936996</Low>
<Close>163,253998</Close>
<AdjClose>163,253998</AdjClose>
<Volume>51958000</Volume>
</row>
<row>
<Date>2022/01/07</Date>
<Open>163,839005</Open>
<High>165,243500</High>
<Low>162,031006</Low>
<Close>162,554001</Close>
<AdjClose>162,554001</AdjClose>
<Volume>46606000</Volume>
</row>
</root>

I dati sono sempre gli stessi, ma vengono archiviati in modo completamente differente. L’aggiunta dei tag racchiusi tra i simboli “<” e “>” comporta anche un aggravio in termini di dimensioni del file il che, a sua volta, comporta un tempo di download e di gestione molto più alto. In ambito consumer è scarsamente utilizzato.

Il formato JSON

Tra tutti è il formato più complesso, perché oltre a essere gerarchico come l’XML ha una sintassi molto più complessa, che lo rende ancora più difficile da leggere e da gestire.

Questo è il contenuto del file Esempio Formato.json:

[
{
"Date": "2022/01/03",
"Open": "167,550003",
"High": "170,703506",
"Low": "166,160507",
"Close": "170,404495",
"Adj Close": "170,404495",
"Volume": 63520000
},
{
"Date": "2022/01/04",
"Open": "170,438004",
"High": "171,399994",
"Low": "166,349503",
"Close": "167,522003",
"Adj Close": "167,522003",
"Volume": 70726000
},
{
"Date": "2022/01/05",
"Open": "166,882996",
"High": "167,126495",
"Low": "164,356995",
"Close": "164,356995",
"Adj Close": "164,356995",
"Volume": 64302000
},
{
"Date": "2022/01/06",
"Open": "163,450500",
"High": "164,800003",
"Low": "161,936996",
"Close": "163,253998",
"Adj Close": "163,253998",
"Volume": 51958000
},
{
"Date": "2022/01/07",
"Open": "163,839005",
"High": "165,243500",
"Low": "162,031006",
"Close": "162,554001",
"Adj Close": "162,554001",
"Volume": 46606000
}
]

L’esempio qui riportato ha utilizzato una formattazione semplice, ma potrebbe essere formattato in modo ancora più complesso.

Questo formato è nato sul Web per l’interscambio di informazioni semplici da un sito a un altro e da un sito al client web (il browser) e sta prendendo piede un po’ ovunque.

La sua gestione da parte di Excel è possibile in vari modi. Per poterlo utilizzare tramite codice VBA è necessario utilizzare della libreria esterna open source VBA-JSON.

A questo vi è poi da aggiungere il fatto che devono essere effettuate alcune operazioni per poter leggere i dati importati.

La lettura di file di dati non gerarchici (come file TXT o CSV) è relativamente semplice. È possibile leggere i dati riga per riga ed elaborare le colonne separatamente. Con XML (e JSON) il compito non è altrettanto facile, poiché i dati sono gerarchici (esistono relazioni genitore-figlio tra i record) e il numero di nodi sottostanti può variare, a differenza dei dati tabellari, che di solito hanno un numero costante di colonne separate da un delimitatore. Quando si ha a che fare con dati XML e JSON è necessario prestare molta attenzione al protocollo dati, mentre con un file CSV questo compito risulta molto più semplice e intuitivo.

All’atto pratico a noi interessa sapere solo come sono fatti i file CSV a livello di struttura, perché, nell’uso reale, non importeremo o memorizzeremo i dati su file, ma li preleveremo direttamente come stringa di testo, risultato della risposta a una chiamata all’API del fornitore. L’uso di file CSV in lettura e scrittura è un modo di operare ormai datato, e non favorisce l’automazione dei processi.

La via più semplice è acquisire i dati direttamente dal Web quando servono. Li riceveremo in formato CSV su una stringa e li utilizzeremo direttamente in memoria.

Questo articolo richiama contenuti dal capitolo 1 di Trading con Excel.

Immagine di apertura di Kanchanara su Unsplash.

L'autore

  • Fabrizio Cesarini
    Fabrizio Cesarini è un software engineer specializzato in mercati finanziari e in soluzioni fintech. Si occupa anche di formazione con riferimento al trading e all'intelligenza artificiale.
  • Donata Petrelli
    Donata Petrelli è una data scientist e un'analista quantitativa specializzata in intelligenza artificiale e Big Data. Nel suo lavoro elabora analisi, forecast, modelli matematici e algoritmi per i mercati finanziari.

Vuoi rimanere aggiornato?
Iscriviti alla nostra newletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Corsi che potrebbero interessarti

Tutti i corsi
Trading con Excel – Iniziare bene Corso Online

Trading con Excel - Iniziare bene

con Fabrizio Cesarini, Donata Petrelli

Vuoi imparare a usare Excel come strumento per il trading in modo da stimare rischi e opportunità di un investimento? Il corso di Fabrizio Cesarini e Donata Petrelli ti viene in aiuto. Non ci sono promesse di guadagni sicuri ma solo un approccio metodologico collaudato.


Libri che potrebbero interessarti

Tutti i libri

Trading con Excel

Analizzare dati, elaborare previsioni, gestire il portafoglio

33,16

34,90€ -5%

di Fabrizio Cesarini, Donata Petrelli