StratCraftStratCraftItaliano
Codice aperto

histdata: download di dati storici

Scarica dati storici di mercato da histdata.com e converti le barre M1 in Apache Parquet compresso. Scegli tra 34 strumenti per la ricerca in locale.

Python 3.10+Apache ParquetzstdLicenza MIT34 strumenti
Visualizza su GitHub
Esempio di CLI
$ pip install git+https://github.com/StratCraftsAI/histdata.git
$ histdata --pairs EURUSD GBPUSD --year-start 2020 --year-end 2025
Esempio di output: un file Parquet per strumento
output/EURUSD_M1.parquet
output/GBPUSD_M1.parquet

Funzionalità

Crea un insieme di dati di mercato locale e verificane la copertura prima dell'analisi quantitativa.

34 strumenti

23 coppie Forex, due materie prime (WTI e Brent) e nove indici, tra cui S&P 500, Nikkei e DAX.

Output Apache Parquet

Parquet con compressione zstd, leggibile con pandas, Polars, DuckDB e altri strumenti compatibili con Arrow.

Strumento a riga di comando

Installa con pip e seleziona strumenti e anni con il comando histdata.

Selezione degli archivi

I download M1 selezionano gli archivi annuali o mensili disponibili per l'intervallo richiesto e riutilizzano gli archivi locali convalidati.

Schema tipizzato

Le colonne OHLCV usano timestamp[ms] e float64. Verifica il fuso orario di origine e il flusso di lavoro CLI scelto prima dell'analisi.

Dipendenze Python

Usa requests, beautifulsoup4, pyarrow e filelock. Richiede Python 3.10 o versioni successive.

Flusso di elaborazione

Scarica gli archivi, analizza i dati M1 e scrivi file Parquet tipizzati.

1
Estrai il token
→
2
Scarica lo ZIP
→
3
Analizza il CSV M1
→
4
Scrivi il Parquet
histdata.com → ZIP (CSV) → list[OHLCVRow] → Parquet (zstd)

Strumenti supportati

34 strumenti tra Forex, materie prime e indici globali. Lo storico disponibile varia in base allo strumento.

Forex 23

Coppie principali

EURUSDGBPUSDUSDJPYUSDCHFUSDCADAUDUSDNZDUSD

Coppie incrociate

EURAUDEURCADEURCHFEURGBPEURNZDGBPAUDGBPCADGBPCHFGBPNZDAUDNZD

Incroci con JPY

AUDJPYCADJPYCHFJPYEURJPYGBPJPYNZDJPY

Materie prime 2

BCOUSDBrent Crude Oil
WTIUSDWTI Crude Oil

Indici 9

AUXAUDASX 200
FRXEURCAC 40
GRXEURDAX 30
HKXHKDHang Seng
JPXJPYNikkei 225
NSXUSDNASDAQ 100
SPXUSDS&P 500
UDXUSDUS Dollar Index
UKXGBPFTSE 100

Schema di output

Colonne Parquet tipizzate. Convalida i timestamp e la qualità dei dati prima di combinare insiemi di dati.

ColonnaTipoDescrizione
timestamptimestamp[ms]Orario della barra; i download M1 normali usano UTC, --skip-download conserva l'EST di origine
openfloat64Prezzo di apertura
highfloat64Prezzo massimo
lowfloat64Prezzo minimo
closefloat64Prezzo di chiusura
volumefloat64Campo volume della fonte
Fontehistdata.com — CSV ASCII generico delimitato da punti e virgola; non richiede una chiave API
Fuso orario di origineEST (UTC-5, senza adeguamento all'ora legale)
FormatoApache Parquet + zstd

Guida rapida

Installa da GitHub e seleziona gli strumenti e l'intervallo di date necessari.

Installazione
pip install git+https://github.com/StratCraftsAI/histdata.git
Uso della CLI
# Download EURUSD 2020-2025 and convert to Parquet
histdata --pairs EURUSD --year-start 2020 --year-end 2025

# Multiple pairs
histdata --pairs EURUSD GBPUSD USDJPY --year-start 2015 --year-end 2025

# All 34 instruments
histdata --pairs all --year-start 2020 --year-end 2025
Leggere con pandas
import pandas as pd

df = pd.read_parquet("output/EURUSD_M1.parquet")
print(df.head())
#              timestamp     open     high      low    close  volume
# 0 2023-01-02 17:00:00  1.07045  1.07048  1.07045  1.07048     0.0

Opzioni della CLI

OpzioneValore predefinitoDescrizione
--pairsForex (23)Strumenti da scaricare. Usa "all" per tutti i 34 strumenti.
--year-start2020Primo anno da scaricare.
--year-end2025Ultimo anno da scaricare.
--timeframeM1M1 converte barre di un minuto. L'opzione tick scarica gli archivi, ma non dispone di un parser per i tick né di output Parquet.
--output-dir./outputDirectory per i file di output Parquet.
--zip-dir./downloadsDirectory per gli archivi ZIP scaricati.
--skip-downloadoffConverte solo ZIP M1 esistenti; conserva i timestamp EST di origine.
-v, --verboseoffAttiva i log di debug.

Domande frequenti

Serve una chiave API?

Non serve una chiave API. Lo strumento recupera un token per l'archivio da histdata.com prima del download.

Quanto dura un download?

La durata dipende dal numero e dalle dimensioni degli archivi disponibili, dalla rete e dall'elaborazione locale. Lo strumento limita la frequenza delle richieste; non garantisce un tempo di completamento.

Posso usare l'output per la ricerca quantitativa?

I file Parquet M1 si possono leggere con pandas o altri strumenti compatibili con Parquet. Verifica copertura, qualità, corrispondenza delle colonne e requisiti di fuso orario prima di importarli in una piattaforma di ricerca.

In quale fuso orario sono i timestamp?

Il CSV di origine usa EST fisso (UTC-5), senza adeguamento all'ora legale. I download M1 normali convertono in UTC. Il flusso --skip-download conserva i valori EST letti dalla fonte. Il tipo timestamp[ms] di Parquet non contiene metadati sul fuso orario.

Supporta i dati tick?

L'opzione --timeframe tick può scaricare archivi di tick, ma il parsing dei tick e la conversione in Parquet non sono implementati. Usa M1 per l'output OHLCV documentato.

Primi passi

Software a codice aperto con licenza MIT. Esamina il codice e convalida un piccolo insieme di dati prima di estenderne l'uso.