← nitronium.dev

Python ile Kişisel Big Data Market Scanner

2026-06-07
Türkiye, ABD ve Avrupa piyasalarını, değerli emtiaları ve kripto varlıkları izleyen, Reddit sentiment'ini entegre eden, Telegram alert'i gönderen bir pipeline kurdum. Notlar burada.

Mimari



`
Yahoo Finance → finance.py → PostgreSQL → anomaly.py → Telegram
CoinGecko → crypto.py ↗ ↗
Reddit RSS → social.py → sentiment.py ───────────

gbrain_sync.py → GBrain Vault
`

PM2 cron'larla çalışıyor: finance her 30 dk, crypto her 5 dk, social saatte bir, günlük özet gece 23:00.

Veri Kaynakları (Ücretsiz)



| Kaynak | Ne için | Limit |
|--------|---------|-------|
| Yahoo Finance (yfinance) | Hisse, emtia, döviz | 18 sembol / 30 dk güvenli |
| CoinGecko API | Kripto fiyat + 1h değişim | 50 req/dk |
| Reddit RSS | Sosyal mention sayımı | Limitsiz |

Alert Mantığı



3 katman:

1. Fiyat: Hisse ±%2, kripto ±%3 (BTC/ETH için %5) eşiği
2. Hacim: 20 günlük ortalama 2x üstü (geçmiş dolunca devreye girer)
3. Sentiment: Reddit mention 7 günlük ortalamanın 3x üstü

Her sembol için 1 saat cooldown -- aynı sembolden spam gelmiyor.

Dikkat Edilecekler



yfinance rate limit: yf.Tickers() batch API kullanıyor ama Yahoo Finance yine de kısar. 15 dk yeterli değil, 30 dk çalışıyor. Başarısız çalışmalar try/except ile sessizce atlanıyor, bir sonraki cron'da düzeliyor.

change_pct günlük: fast_info.previous_close ile karşılaştırıyor. 1 saatlik değil, bir önceki kapanıştan sapma. Bu yüzden piyasa açıldığında veya büyük haberle birlikte daha fazla alert gelir.

defusedxml zorunlu: Reddit RSS parse'ında stdlib xml.etree değil defusedxml kullan. XXE saldırısına karşı korumalı.

PM2 Warning Bastırma



yfinance içinden gelen Pandas deprecation warning'leri PM2 error log'unu kirletiyor. Çözüm:

`js
env: { RUN_SOURCES: "finance", PYTHONWARNINGS: "ignore" }
`

Sonraki Adım



KAP.org.tr scraping eklenince Türkiye haberleri de fiyat hareketleriyle eşleşebilecek.

---