Soru ya da sorun varsa GitHub Discussions'a yaz.

Frankfurter'in CSV endpoint'i doğrudan DataFrame'e yüklenir; kurları çekmek tek satır. Hızlı bir piyasa kuru sorgusu yerine bunu seçmenin nedeni tekrarlanabilirlik: tek bir sağlayıcıyı sabitlersen geçmiş kurları yayımlandığı gibi kalır; bugün çalıştırdığın backtest, geçen yıl çalıştırdığınla aynı sonucu verir.

Hızlı başlangıç

read_csv fonksiyonunu CSV endpoint'ine yönlendir:

import pandas as pd

df = pd.read_csv("https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur,gbp")

Her hedef para birimi için bir satır içeren bir date,base,quote,rate DataFrame'i elde edersin.

Tutar dönüştürme

CSV dönüştürülmüş tutarı değil, kuru verir. Tutarını rate sütunuyla çarp. pandas kullanmadan tek bir skaler değer için requests ile düz kur endpoint'ini çağır:

import requests

rate = requests.get("https://api.frankfurter.dev/v2/rate/usd/eur").json()["rate"]
total = 100 * rate

Resmi kaynak sabitleme

Varsayılan olarak tüm kaynakların harmanını alırsın. Tek bir kurumu sabitlemek için providers ekle; böylece analizin denetlenebilir kalır. Birçok ülke, döviz cinsinden tutarları çevirirken kendi merkez bankasının yayımladığı kuru şart koşar.

df = pd.read_csv("https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur&providers=ecb")
ECB
Avrupa Merkez Bankası referans kuru; AB'de KDV ve gümrük için standart.
NBP
Narodowy Bank Polski. Polonya'da KDV ve kurumlar vergisi NBP kuruyla hesaplanır.
CNB
Çek Ulusal Bankası'nın fixing kuru; Çekya'da muhasebe ve vergide kullanılır.
BCB
Banco Central do Brasil PTAX kuru; Brezilya'da sözleşmeler ve vergi için referans.
BANXICO
Banco de México FIX kuru; ABD doları cinsinden yükümlülüklerin ödenmesinde kullanılır.

Tüm kaynaklara göz at. Sabitlenen bir kaynak kendi yayın takvimini izler; bu yüzden en güncel kuru, harmanlanmış güncel kurun bir gün gerisinde kalabilir.

Geçmiş seriler

Tarih aralığını from ile belirle, group=month ile de ayda tek satır al. Tarih sütununu parse edip index yap, sonra grafiğini çiz ya da resample et. Harmanlanmış geçmiş, yeni veri geldikçe biraz değişebilir. Tekrarlanabilir olması gereken her şey için bir sağlayıcı sabitle.

df = pd.read_csv(
    "https://api.frankfurter.dev/v2/rates.csv?from=1949-12-01&base=usd&quotes=gbp&providers=bbk&group=month",
    parse_dates=["date"],
    index_col="date",
)
df["rate"].plot()

Bu sorgu, Deutsche Bundesbank arşivinden ABD dolarının sterlin karşısındaki kurunu 1949'a kadar geriye çeker. Sterlin/dolar paritesinin yıllarca 2,80 dolarda sabit kaldığını, 1967'de ise bu sabitliğin bozulduğunu görebilirsin. Eski veriler Bundesbank'ın Frankfurt fixing kurlarından gelir: Alman markı karşısında dolar 1948'den, diğer dolar paritelerinin çoğu 1949'dan 1970'e kadar. 1999'dan itibaren bayrağı Avrupa Merkez Bankası devralır; günümüze uzanan kesintisiz bir seri için varsayılan harmanı ya da providers=ecb kullan.