pandas
L'endpoint CSV di Frankfurter si carica direttamente in un DataFrame, quindi per avere i tassi basta una riga. Il motivo per sceglierlo al posto di un tasso di mercato preso al volo è la riproducibilità: scegli un solo fornitore e il suo storico resta com'è stato pubblicato, quindi un backtest lanciato oggi dà gli stessi risultati di quello dell'anno scorso.
Avvio rapido
Punta read_csv all'endpoint CSV:
import pandas as pd
df = pd.read_csv("https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur,gbp")Ottieni un DataFrame date,base,quote,rate, con una riga per valuta.
Convertire un importo
Il CSV ti dà il tasso, non il totale convertito. Moltiplica l'importo per la colonna rate. Per un singolo valore senza pandas, chiama con requests l'endpoint del tasso singolo:
import requests
rate = requests.get("https://api.frankfurter.dev/v2/rate/usd/eur").json()["rate"]
total = 100 * rateScegliere una fonte ufficiale
Di default ottieni il tasso combinato di tutte le fonti. Aggiungi providers per usare una sola istituzione, così l'analisi resta verificabile: molte giurisdizioni richiedono il tasso pubblicato dalla propria banca centrale per convertire importi in valuta estera.
df = pd.read_csv("https://api.frankfurter.dev/v2/rates.csv?base=usd"es=eur&providers=ecb")ECB- Tasso di riferimento della Banca centrale europea, lo standard per IVA e dogane nell'UE.
NBP- Narodowy Bank Polski. In Polonia IVA e imposta sulle società si convertono al tasso NBP.
CNB- Fixing della Banca nazionale ceca, usato per contabilità e fisco in Cechia.
BCB- PTAX del Banco Central do Brasil, il riferimento per contratti e fisco in Brasile.
BANXICO- Tasso FIX del Banco de México per regolare i pagamenti in dollari statunitensi.
Vedi tutte le fonti. Una singola fonte segue il proprio calendario di pubblicazione, quindi il suo ultimo tasso può arrivare con un giorno di ritardo rispetto a quello combinato.
Serie storiche
Usa from per un intervallo di date e group=month per avere una riga al mese. Fai il parsing della colonna delle date e usala come indice, poi crea un grafico o fai il resample. Lo storico combinato può variare leggermente quando arrivano nuovi dati, quindi scegli un fornitore per tutto ciò che devi poter riprodurre.
df = pd.read_csv(
"https://api.frankfurter.dev/v2/rates.csv?from=1949-12-01&base=usd"es=gbp&providers=bbk&group=month",
parse_dates=["date"],
index_col="date",
)
df["rate"].plot() Così ottieni il dollaro statunitense contro la sterlina fino al 1949 dall'archivio della Deutsche Bundesbank. Puoi vedere la parità del cable a 2,80 $ restare ferma per anni e poi saltare nel 1967. Lo storico più profondo passa dai fixing di Francoforte della Bundesbank: il dollaro contro il marco dal 1948, la maggior parte degli altri cambi del dollaro dal 1949 al 1970. Dal 1999 subentra la Banca centrale europea, quindi per una serie moderna continua usa il tasso combinato predefinito o providers=ecb.