Per tal de fer la base de dades i estudiar la qualitat de les dades obtingudes s’ha creat la llibreria data.py amb les funcions:
- get_symbol_details(symbol_name, path_root, online): donat un símbol ens retorna un diccionari amb alguns detalls del símbol com els dígits, l’spread, o el swap.
- get_symbols_info(path_root, save, online): retorna una taula amb tots els parells de divises que es pot fer trading al terminal de MetaTrader amb la informació de la funció anterior amb l’opció de guardar la informació dels símbols.
- save_data(symbols, start, end, path_root): donada una llista de parells, una data d’inici i una data de fi, descarrega les dades M1, M15, H1 i D1 per als diferents parells pels rangs de dades donat.
- load_data(symbol, timeframe, path_root): aquesta funció ens permetrà carregar les dades que hem desat amb la funció anterior.
D’aquesta manera s’obtenen les dades pels parells: EURUSD, GBPUSD, USDJPY, USDCAD, NZDUSD, USDCHF i AUDUSD, a més d’algunes dades que podem observar a les següents taules (les podem veure totes al notebook 1.- Dades.ipynb al repositori de GitHub):

Figura 9. Taula amb la informació de les dades descarragades de AUDUSD
Així com gràfiques per a tot el període descarregat:

Figura 10. Gràfica de EURUSD, de dades diàries, del període descarregat
2.2.1 Qualitat de les dades descarregades
Una vegada descarregades les dades he passat a estudiar la qualitat d’aquestes per a les diferents finestres temporals. Per fer-ho, he calculat la diferència de temps entre una dada i l’anterior. Aquesta diferència hauria de ser:
- D1: un dia
- H1: una hora
- M15: 15 minuts
- M5: 5 minuts
- M1: 1 minut
excepte els dilluns a les 0:00 h ja que el mercat de divises està tancat els caps de setmana. Per això, he considerat els dilluns a les 0:00 h la diferència de temps entre una dada i l’anterior pot ser més gran (no és una anomalia, és normal). Tenint això en compte he estudiat les diferents finestres temporals:
- Dades diàries (D1): a la següent gràfica es poden veure les anomalies que s’obtenen per a l’EURUSD amb dades diàries. En més de 25 anys d’històric, només se n’obtenen 23, i he comprovat que totes corresponen a les vacances de Nadal quan el mercat es tanca alguns dies. Per tant, el percentatge d’anomalies és inferior al 0,34%, que és realment baix.
Figura 11. Anomalies detectades per l’EURUSD amb dades diàries
- Dades horàries (H1): A la següent gràfica es poden veure les anomalies amb dades horàries. El percentatge en aquest cas és del 0,06% i, una altra vegada, la major part d’anomalies correspon a les vacances de Nadal.

Figura 12. Anomalies detectades pel JPYUSD amb dades horàries
- Dades d’un minut (M1): en aquest cas he variat la definició d’anomalia, ja que, sobretot a la nit, poden passar minuts sense operacions de manera regular. Per aquest motiu he considerat anomalia el fet que no sigui diumenge a les 0:00 h i que la diferència entre un temps i l’anterior sigui superior a 5 minuts. A la següent gràfica podem veure les anomalies per al GBPUSD amb dades d’un minut. Una altra vegada, el percentatge d’aquestes és molt petit i, una vegada més, moltes d’aquestes corresponen a les vacances de Nadal.

Figura 13. Anomalies detectades pel GBPUSD amb dades d’un minut
En base als percentatges d’anomalies obtinguts, sempre inferiors a l’1%, podem concloure que la qualitat de les dades és bona. Al notebook es poden veure les gràfiques i percentatges per a les set majors amb les finestres temporals diàries, horàries i d’un minut.
