""" BIST Predictor — Konfigürasyon Dosyası BIST-100 hisse listesi, model ayarları ve zamanlama konfigürasyonu. """ import os from pathlib import Path # ─── Proje Yolları ────────────────────────────────────────────────────────────── BASE_DIR = Path(__file__).resolve().parent DATA_DIR = BASE_DIR / "data" DATA_DIR.mkdir(exist_ok=True) DB_PATH = DATA_DIR / "predictions.db" # ─── TimesFM Model Konfigürasyonu ─────────────────────────────────────────────── MODEL_NAME = "google/timesfm-2.5-200m-pytorch" MAX_CONTEXT = 512 # Geçmiş gün sayısı (context window) NORMALIZE_INPUTS = True USE_QUANTILE_HEAD = True # Tahmin horizon'ları (iş günü) HORIZONS = [10, 30, 90] DEFAULT_HORIZON = 10 # Quantile seviyeleri (P10 ... P90) QUANTILE_LEVELS = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] # ─── Güven Puanı Ağırlıkları ──────────────────────────────────────────────────── CONFIDENCE_WEIGHTS = { "direction_accuracy": 0.40, "mape": 0.30, "quantile_coverage": 0.20, "volatility_match": 0.10, } # ─── Zamanlama Ayarları ────────────────────────────────────────────────────────── # Borsa kapanışı sonrası tahmin üretme (Türkiye saati, UTC+3) PREDICTION_HOUR = 18 PREDICTION_MINUTE = 30 # Sabah gerçek veriyle karşılaştırma COMPARISON_HOUR = 10 COMPARISON_MINUTE = 0 # ─── yfinance Ayarları ────────────────────────────────────────────────────────── HISTORY_PERIOD = "2y" # 2 yıllık geçmiş veri (context için yeterli) # ─── BIST-100 Hisse Listesi (Yahoo Finance formatı: TICKER.IS) ────────────────── BIST100_SYMBOLS = [ "AEFES.IS", # Anadolu Efes "AFYON.IS", # Afyon Çimento "AGESA.IS", # AgeSA Hayat ve Emeklilik "AHGAZ.IS", # Ahlatcı Doğalgaz "AKBNK.IS", # Akbank "AKCNS.IS", # Akçansa Çimento "AKFGY.IS", # Akfen GYO "AKFYE.IS", # Akfen Yenilenebilir Enerji "AKSA.IS", # Aksa Akrilik "AKSEN.IS", # Aksa Enerji "ALFAS.IS", # Alfa Solar Enerji "ALARK.IS", # Alarko Holding "ARCLK.IS", # Arçelik "ASELS.IS", # Aselsan "ASTOR.IS", # Astor Enerji "AYDEM.IS", # Aydem Yenilenebilir Enerji "AYGAZ.IS", # Aygaz "BAGFS.IS", # Bagfaş "BASGZ.IS", # Başkent Doğalgaz "BERA.IS", # Bera Holding "BIMAS.IS", # BİM "BIOEN.IS", # Biotrend Çevre ve Enerji "BRISA.IS", # Brisa Bridgestone "BRYAT.IS", # Borusan Yatırım "BUCIM.IS", # Bursa Çimento "CCOLA.IS", # Coca-Cola İçecek "CIMSA.IS", # Çimsa Çimento "DEVA.IS", # Deva Holding "DOHOL.IS", # Doğan Holding "ECILC.IS", # Eczacıbaşı İlaç "EGEEN.IS", # Ege Endüstri "EKGYO.IS", # Emlak Konut GYO "ENJSA.IS", # Enerjisa Enerji "ENKAI.IS", # Enka İnşaat "EREGL.IS", # Ereğli Demir Çelik "EUPWR.IS", # Europower Enerji "FROTO.IS", # Ford Otosan "GARAN.IS", # Garanti BBVA "GENIL.IS", # Genel İlaç "GESAN.IS", # Giresun San. ve Tic. "GLYHO.IS", # Global Yatırım Holding "GUBRF.IS", # Gübre Fabrikaları "GWIND.IS", # Galata Wind Enerji "HALKB.IS", # Halkbank "HEKTS.IS", # Hektaş "ISDMR.IS", # İskenderun Demir Çelik "ISCTR.IS", # İş Bankası "ISGYO.IS", # İş GYO "KARSN.IS", # Karsan Otomotiv "KAYSE.IS", # Kayseri Şeker "KCHOL.IS", # Koç Holding "KLRHO.IS", # Kiler Holding "KMPUR.IS", # Kimberly-Clark "KONTR.IS", # Kontrolmatik "KONYA.IS", # Konya Çimento "KORDS.IS", # Kordsa "KOZAA.IS", # Koza Anadolu Metal "KOZAL.IS", # Koza Altın "KRDMD.IS", # Kardemir "LOGO.IS", # Logo Yazılım "MAVI.IS", # Mavi Giyim "MGROS.IS", # Migros "MPARK.IS", # MLP Sağlık "ODAS.IS", # Odaş Elektrik "OTKAR.IS", # Otokar "OYAKC.IS", # Oyak Çimento "PAPIL.IS", # Papilon Savunma "PETKM.IS", # Petkim "PGSUS.IS", # Pegasus "QUAGR.IS", # QUA Granite "SAHOL.IS", # Sabancı Holding "SASA.IS", # SASA Polyester "SELEC.IS", # Selçuk Ecza Deposu "SISE.IS", # Şişecam "SKBNK.IS", # Şekerbank "SMRTG.IS", # Smart Güneş Enerjisi "SOKM.IS", # Şok Marketler "TABGD.IS", # Türk Hava Yolları Bahçe "TATGD.IS", # Tat Gıda "TAVHL.IS", # TAV Havalimanları "TCELL.IS", # Turkcell "THYAO.IS", # Türk Hava Yolları "TKFEN.IS", # Tekfen Holding "TOASO.IS", # Tofaş "TRGYO.IS", # Torunlar GYO "TTKOM.IS", # Türk Telekom "TTRAK.IS", # Türk Traktör "TUPRS.IS", # Tüpraş "TURSG.IS", # Türkiye Sigorta "ULKER.IS", # Ülker Bisküvi "VAKBN.IS", # Vakıfbank "VESBE.IS", # Vestel Beyaz Eşya "VESTL.IS", # Vestel Elektronik "YKBNK.IS", # Yapı Kredi "ZOREN.IS", # Zorlu Enerji ] # Hızlı test için küçük liste (geliştirme aşamasında kullanılabilir) BIST_TEST_SYMBOLS = [ "THYAO.IS", "GARAN.IS", "ASELS.IS", "KCHOL.IS", "EREGL.IS", ] # ─── BIST-100 ve Emtialar ──────────────────────────────────────────────────────── COMMODITIES = { "GC=F": "Altın", "SI=F": "Gümüş", "CL=F": "Ham Petrol WTI", "BZ=F": "Brent Petrol", "HG=F": "Bakır", "PA=F": "Paladyum", "PL=F": "Platin" } # Aktif hisse listesi (BIST-100 ve Emtiaların birleşimi) ACTIVE_SYMBOLS = BIST100_SYMBOLS + list(COMMODITIES.keys()) # ─── Sunucu Ayarları ───────────────────────────────────────────────────────────── HOST = os.environ.get("HOST", "0.0.0.0") PORT = int(os.environ.get("PORT", 7860)) FRONTEND_DIR = BASE_DIR.parent / "frontend"