AgentSkillsCN

evds-analiz

通过TCMB EVDS(电子数据传输系统)API,访问、分析并可视化土耳其经济数据。用户只需输入API密钥,即可提取TCMB数据。该系统提供智能序列探索、预设分析模板(通货膨胀、外汇、利率、经常账户余额、GDP、失业率、货币供应量),以及描述性统计、回归分析(OLS、ARIMA、VAR)、相关性分析,还有交互式的Plotly图表。界面采用土耳其语。当用户提及“EVDS”“TCMB数据”“央行数据”“通货膨胀数据”“外汇汇率数据”“经济数据分析”时,此功能便会自动触发。

SKILL.md
--- frontmatter
name: evds-analiz
description: TCMB EVDS (Elektronik Veri Dağıtım Sistemi) API'si ile Türkiye ekonomik verilerine erişim, analiz ve görselleştirme. Kullanıcı API anahtarı girerek TCMB verilerini çeker. Akıllı seri keşfi, hazır analiz şablonları (enflasyon, döviz, faiz, cari denge, GSYH, işsizlik, para arzı), tanımlayıcı istatistikler, regresyon (OLS, ARIMA, VAR), korelasyon analizi ve interaktif Plotly grafikleri sunar. Türkçe arayüz. Kullanıcı "EVDS", "TCMB verisi", "Merkez Bankası verisi", "enflasyon verisi", "döviz kuru verisi", "ekonomik veri analizi" dediğinde tetiklenir.

EVDS Analiz Skill

GENEL BAKIŞ

Bu skill, TCMB EVDS API'si üzerinden Türkiye ekonomik verilerine erişim sağlar. Kullanıcı seri kodlarını bilmese bile akıllı keşif ile ihtiyacı olan verilere ulaşır.

TEMEL İLKELER

  1. API Key her seferinde kullanıcıdan alınır - Güvenlik için saklanmaz
  2. Türkçe arayüz - Tüm çıktılar Türkçe
  3. Kullanıcı yönlendirmeli - Analiz derinliği kullanıcı tercihine göre
  4. Tarih aralığı kullanıcıdan alınır - Varsayılan yok, her zaman sor

API ERİŞİM FORMATI (KRİTİK - 5 Nisan 2024 Güncellemesi)

ÖNEMLİ: EVDS API'si 5 Nisan 2024'ten itibaren yeni format kullanıyor.

Doğru Format (URL Path + Header Key)

python
import requests

API_KEY = "kullanici_api_key"
headers = {'key': API_KEY}

# URL formatı: parametreler & ile ayrılmış, URL path içinde
url = "https://evds2.tcmb.gov.tr/service/evds/series=TP.DK.USD.A&startDate=01-01-2024&endDate=31-12-2024&type=json"

response = requests.get(url, headers=headers, timeout=60)
data = response.json()

Yanlış Format (Artık Çalışmıyor)

python
# ❌ Query string ile parametre geçme ÇALIŞMAZ
url = "https://evds2.tcmb.gov.tr/service/evds"
params = {'series': 'TP.DK.USD.A', 'startDate': '01-01-2024', ...}
requests.get(url, params=params)  # 404 verir!

# ❌ URL'de key parametre olarak ÇALIŞMAZ
url = "...&key=API_KEY"  # 403/404 verir!

Çoklu Seri Çekme

python
# Seriler tire (-) ile ayrılır
url = "https://evds2.tcmb.gov.tr/service/evds/series=TP.DK.USD.A-TP.DK.EUR.A&startDate=01-01-2024&endDate=31-12-2024&type=json"

Metadata Endpoint'leri (Seri Keşfi İçin)

python
# Kategorileri listele
url = "https://evds2.tcmb.gov.tr/service/evds/categories/type=json"

# Veri gruplarını listele
url = "https://evds2.tcmb.gov.tr/service/evds/datagroups/mode=0&type=json"

# Bir gruptaki serileri listele
url = "https://evds2.tcmb.gov.tr/service/evds/serieList/type=json&code=bie_tukfiy4"

RENK PALETI (orhon-viz uyumlu)

python
COLORS = {
    'primary': '#2C3E50',
    'secondary': '#34495E',
    'accent1': '#E74C3C',
    'accent2': '#3498DB',
    'accent3': '#F39C12',
    'accent4': '#16A085',
    'accent5': '#9B59B6',
    'accent6': '#27AE60',
    'background': '#FFFFFF',
    'grid': '#ECF0F1',
    'text': '#2C3E50',
    'text_secondary': '#95A5A6'
}

PALETTE = ['#2C3E50', '#E74C3C', '#3498DB', '#F39C12', '#16A085', '#9B59B6', '#27AE60']

SIK KULLANILAN SERİLER VE TARİH FORMATLARI

TÜFE (Enflasyon) - Aylık

Seri KoduAçıklamaTarih FormatıBirim
TP.FG.J0TÜFE Genel Endeks (2003=100)2024-1 (yıl-ay)Endeks
TP.FG.J01Gıda ve Alkolsüz İçecekler2024-1Endeks

Not: TÜFE verisinden yıllık değişim hesaplamak için 12 ay önceki değerle karşılaştır:

python
df['yillik_degisim'] = df['endeks'].pct_change(12) * 100

Döviz Kurları - Günlük

Seri KoduAçıklamaTarih FormatıBirim
TP.DK.USD.AUSD Döviz Alış01-01-2024 (gg-aa-yyyy)TL
TP.DK.EUR.AEUR Döviz Alış01-01-2024TL
TP.DK.GBP.AGBP Döviz Alış01-01-2024TL

YP Mevduat - Haftalık

Seri KoduAçıklamaTarih FormatıBirim
TP.YPMEVD.M01Toplam YP Mevduatlar07-01-2024 (gg-aa-yyyy)Bin TL
TP.YPMEVD.M03Bankalardaki Toplam YP Mevduat07-01-2024Bin TL
TP.YPMEVD.M05Yurtiçi Yerleşikler YP Mevduat07-01-2024Bin TL
TP.HPBITABLO4.1Toplam YP Mevduat (Milyon USD)07-01-2024Milyon USD

DTH (Döviz Tevdiat Hesapları) - Haftalık

Seri KoduAçıklamaTarih FormatıBirim
TP.TLDTHVADE.KB6TL Mevduat Toplam07-01-2024Bin TL
TP.TLDTHVADE.KB12DTH Toplam07-01-2024Bin TL
TP.TLDTHVADE.KB18Toplam Mevduat07-01-2024Bin TL

KKM (Kur Korumalı Mevduat) - Aylık

Seri KoduAçıklamaBirim
TP.KKM.K1DDKKM ToplamMilyar USD Karşılığı
TP.KKM.K4TL KKM ToplamMilyar TL

TARİH FORMATI PARSE ETMENİN DOĞRU YOLU

python
import pandas as pd

def parse_evds_tarih(df):
    """EVDS tarih formatını otomatik algıla ve parse et."""
    tarih_col = df['Tarih'].iloc[0]
    
    if '-' in str(tarih_col):
        parcalar = str(tarih_col).split('-')
        if len(parcalar[0]) == 4:
            # Aylık format: 2024-1 veya 2024-12
            df['Tarih'] = pd.to_datetime(df['Tarih'], format='%Y-%m')
        else:
            # Günlük/Haftalık format: 07-01-2024
            df['Tarih'] = pd.to_datetime(df['Tarih'], format='%d-%m-%Y')
    
    return df.set_index('Tarih').sort_index()

FREKANS DÖNÜŞÜMÜ

Farklı frekanstaki verileri karşılaştırmak için aynı frekansa dönüştür:

python
# Haftalık → Aylık (ortalama)
aylik = haftalik_df.resample('MS').mean()  # MS = Month Start

# Günlük → Aylık (ortalama)
aylik = gunluk_df.resample('MS').mean()

# Aylık veride ay başı indeksi için
aylik_df.index = aylik_df.index.to_period('M').to_timestamp()

VERİ GRUPLARI (Seri Keşfi İçin)

Grup KoduAçıklamaFrekans
bie_tukfiy4TÜFE (2003=100)Aylık
bie_dkdovytlDöviz KurlarıGünlük
bie_ypmevdYP Mevduatlar (Arşiv)Haftalık
bie_hpbitablo4YP Mevduat (Milyon USD)Haftalık
bie_TLDTHVADETL ve DTH Vadelerine GöreHaftalık
bie_kkmKur Korumalı MevduatAylık
bie_polfaizTCMB Politika FaiziGünlük
bie_mevfaizMevduat Faiz OranlarıHaftalık

İŞ AKIŞI

Adım 1: API Anahtarı Al

code
"EVDS API anahtarınızı girin. 
(Anahtarınız yoksa: evds2.tcmb.gov.tr → Üye Ol → Profil → API Anahtarı)"

Adım 2: Kullanıcı İhtiyacını Anla

  • Kullanıcı seri kodu biliyorsa → Doğrudan çek
  • Bilmiyorsa → Akıllı keşif başlat (yukarıdaki tablolara bak)

Adım 3: Tarih Aralığı Al

code
"Hangi tarih aralığını çekelim? (Örn: 01-01-2020 ile 31-12-2024 arası)"

Adım 4: Veri Çek ve Otomatik Analiz

python
def evds_cek(seri, baslangic, bitis, api_key):
    headers = {'key': api_key}
    url = f"https://evds2.tcmb.gov.tr/service/evds/series={seri}&startDate={baslangic}&endDate={bitis}&type=json"
    r = requests.get(url, headers=headers, timeout=60)
    
    if r.status_code != 200:
        raise Exception(f"API Hatası: {r.status_code}")
    
    return r.json()

Adım 5: Görselleştir

  • Plotly ile interaktif HTML oluştur
  • Çoklu seri varsa otomatik korelasyon matrisi sun

Adım 6: İleri Analiz Öner

code
"Başka analiz ister misiniz?
• Regresyon analizi (OLS)
• Zaman serisi modeli (ARIMA)
• VAR modeli (çoklu seri için)
• Mevsimsellik analizi
• Granger nedensellik testi"

Adım 7: CSV İndir Seçeneği Sun

Her analizden sonra ham veriyi CSV olarak sunma seçeneği ver.

HAZIR ANALİZ ŞABLONLARI

ŞablonSerilerVarsayılan Analiz
EnflasyonTP.FG.J0Yıllık değişim hesapla, trend
Döviz KuruTP.DK.USD.A, TP.DK.EUR.AGünlük/aylık trend, volatilite
Faiz-EnflasyonPolitika faizi, TÜFEKorelasyon, reel faiz hesabı
DolarizasyonTP.FG.J0, TP.YPMEVD.M01Korelasyon, yıllık karşılaştırma
KKM AnaliziTP.KKM.K1, TP.KKM.K4Trend, toplam hacim

ÇIKTI FORMATLARI

1. Tanımlayıcı İstatistikler (Her zaman)

code
📊 TÜFE (Yıllık % Değişim) - Özet
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Dönem: Ocak 2022 - Aralık 2024
Gözlem: 36
Ortalama: 61.8%
Std. Sapma: 13.2%
Min: 38.2% (Haziran 2023)
Max: 85.5% (Ekim 2022)
Son Değer: 44.4%
Trend: ↘ Düşüş eğiliminde

2. İnteraktif HTML Grafik

  • Plotly ile oluştur
  • Hover ile değer göster
  • Zoom/pan destekle
  • orhon-viz renk paleti

3. CSV Dosyası (İsteğe bağlı)

Ham veri + hesaplanan değişkenler

HATA YÖNETİMİ

HataSebepÇözüm
403 ForbiddenAPI key header'da değilheaders = {'key': API_KEY} kullan
404 Not FoundURL formatı yanlışURL path formatı kullan, query string değil
Boş veriTarih aralığı uygun değilSeri aktif mi, tarih formatı doğru mu kontrol et
Tarih parse hatasıFarklı frekans formatlarıparse_evds_tarih() fonksiyonunu kullan

KRİTİK NOKTALAR

  1. API key MUTLAKA header'da gönderilmeli - headers = {'key': API_KEY}
  2. URL formatı: series=X&startDate=gg-aa-yyyy&endDate=gg-aa-yyyy&type=json
  3. Tarih formatı girdide: gg-aa-yyyy (örn: 01-01-2024)
  4. Tarih formatı çıktıda: Seriye göre değişir (aylık: 2024-1, günlük: 01-01-2024)
  5. Çoklu seri: Tire (-) ile ayır (örn: TP.DK.USD.A-TP.DK.EUR.A)
  6. Birim dönüşümü: YP Mevduat Bin TL cinsinden gelir, Milyar TL için /1e9 yap
  7. Frekans eşleştirme: Farklı frekanstaki verileri .resample('MS').mean() ile aylığa çevir