Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
1904 aktif yatırım fonları: 1 günden 5 yıla getiri, büyüklük, nakit giriş-çıkışı ve risk; filtrele, sırala, karşılaştır. Veri tarihi 09-10-2026.
Translation pending
FinanceTypeScript · JavaScriptGitHub @alperengozumOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Türkiye'deki yatırım, BES, BYF ve GYF fonlarını listeleme, analiz ve karşılaştırma aracı. TEFAS + KAP verileriyle getiri, risk, hisse portföyü, portföy ve simülasyon.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Türkiye'deki yatırım, emeklilik (BES), borsa yatırım (BYF) ve girişim sermayesi (GYF) fonlarını listeleme, analiz ve karşılaştırma aracı. Fintables benzeri; veriler TEFAS'ın kamuya açık JSON API'sinden, hisse portföyleri KAP raporlarından gelir.Read the full README ↗
Türkiye'deki yatırım, emeklilik (BES), borsa yatırım (BYF) ve girişim sermayesi (GYF) fonlarını listeleme, analiz ve karşılaştırma aracı. Fintables benzeri; veriler TEFAS'ın kamuya açık JSON API'sinden, hisse portföyleri KAP raporlarından gelir.
Canlı demo: fon.yourapiservice.com
/tarama, sunucuda çizilir)/og/fon/KOD.png), JSON-LD; DB'den sitemap.xml, AI tarayıcılarına açık robots.txt, agent'lar için llms.txt. Prod adresi SITE_URL (varsayılan canlı demo)/portfoy?ekle=KOD), simüle et, hedef planla, PDF; kaydırırken üstte kalır/api/v1, OpenAPI: /api/v1/openapi.json) ve AI asistanları için MCP sunucusu (/mcp, Streamable HTTP; araçlar: search_funds, get_fund, funds_holding_stock, compare_funds, run_scan). Kimlik doğrulama yok, CORS açık, IP başına dakikada 60 istek. Belge: /api| Fon detayı | Karşılaştırma |
|---|---|
| Portföyüm | Simülasyon |
| Hisseyi tutan fonlar | |
| Liste | Fon detayı | Karşılaştırma |
|---|---|---|
@astrojs/node) + React 19 adalarıpg), şema: db/schema.sqlnode:test birim testleri/api/funds/fonGnlBlgSiraliGetir, /dagilimSiraliGetirT). Auth ve scraper yokbench tablosu)scripts/ingest.mjs TEFAS + endeks verisini DB'ye çeker, volatiliteyi hesaplar
scripts/holdings.mjs KAP PDF'lerinden hisse portföylerini çıkarır
src/pages/ Astro sayfaları ve API uçları (/api/funds/[tur], /api/holdings)
src/components/ React bileşenleri (FundTable, FundCharts, CompareChart, PortfolioForm, …)
src/lib/ DB sorguları, istatistik (stats.ts), veri sıkıştırma (compact.ts), biçimlendirme
db/schema.sql Veritabanı şeması
e2e/ Playwright senaryoları ve CI için sahte veri (seed.sql)
Gereksinimler: Node 22+, PostgreSQL.
npm i
export DATABASE_URL=postgres://tefas:tefas@localhost/tefas # varsayılan bu
npm run db:init # şema (ingest de otomatik oluşturur)
npm run ingest 400 # ~400 gün geçmiş; TEFAS dk'da 6 istek -> ~15 dk. Tekrar çalıştırınca sadece yeni günleri çeker
npm run dev # http://localhost:4321
npm run ingest'i cron'a koyun.npm run holdings. KAP 429 verdiği için yavaştır, ilk çalıştırma ~30 dk sürer.node scripts/ingest.mjs bench (günlük ingest sonunda otomatik çalışır).| Komut | Açıklama |
|---|---|
npm run dev | Geliştirme sunucusu (4321) |
npm run build / npm start | Üretim derlemesi ve sunucu |
npm run ingest [gün] | TEFAS verisini çek |
npm run ingest -- vol | Volatiliteyi yeniden hesapla |
npm run holdings | KAP hisse portföylerini çek (her rapor holdings_hist geçmişine de yazılır) |
npm run holdings -- gecmis | Fonların bir önceki KAP raporunu indirip geçmişe yaz ("önceki rapora göre değişim" hemen dolsun; bir kez, yavaş) |
npm run stopaj-watch | Resmi Gazete'de yeni fon stopajı kararı ara (aşağıya bakın) |
npm test | Birim testleri (PDF ayrıştırıcı, istatistik) |
npm run test:e2e | Playwright e2e testleri |
Simülasyondaki stopaj sonrası net getiri, alış tarihine göre dönemler ve fon grubu başına oranlardan hesaplanır: taban tablo src/lib/stopaj-rules.mjs, üstüne kaynaklardan otomatik eklenen dönemler (stopaj_rule). Oranlar Cumhurbaşkanı Kararı ile Resmi Gazete'de değişir; kararlar görüntü PDF olduğundan oranlar onları metin olarak yeniden yayımlayan kurumlardan okunur. Anahtar/token gerekmez.
scripts/stopaj-watch.mjs, günlük döngüde otomatik):
stopaj_karar'a yazar (bilinmeyen karar: bekliyor).scripts/stopaj-sources.mjs, öncelik sırasıyla): Ziraat Portföy stopaj tablosu (ana sayfadaki PDF), Garanti BBVA ve Yapı Kredi stopaj duyuruları. Bir kaynak, tablodaki tüm geçmiş dönemlerle tutarlıysa güvenilir sayılır ve yalnız son bilinen dönemden sonraki yeni dönemleri önerebilir. Güvenilir ilk kaynağın yeni dönemi stopaj_rule'a yazılır; güvenilir iki kaynak yeni dönemde ayrışırsa hiçbir şey yazılmaz. Okunamayan/çelişen kaynak atlanır, bayat kaynak zararsızdır.uygulandi; 30 gün içinde kaynaklarda değişiklik çıkmazsa etkisiz (ör. yalnız kurumları ilgilendiren karar) olur.stopaj: önekiyle loglanır (UYGULANDI: ..., ... tablo ile çelişiyor, ... okunamadı). Kaynak sayfası adres/düzen değiştirirse o kaynak "okunamadı" der, diğerleri işe yarar; düzeltme stopaj-sources.mjs'teki ayrıştırıcıdadır.STOPAJ_RULES'a satır eklenebilir; etkisiz olduğu bilinen kararlar REVIEWED'a. İlk çalıştırma Resmi Gazete'de geriye 30 gün tarar (node scripts/stopaj-watch.mjs 200 ile daha fazla)./fonlar/{yat,bes,byf,gyf}: fon listesi/fon/KOD: fon detayı/karsilastir?codes=A&codes=B: en fazla 10 fon; endeks=1 endeks çizgilerini ekler (eski ?codes=A,B biçimi de çalışır)/hisse ve /hisse/TICKER: hisseyi tutan fonlar/portfoy?f=AFT:tl:5000&f=TCD:adet:120: paylaşılabilir portföy, ayrıca localStorage'a kaydedilir/portfoy?ekle=KOD: fonu kayıtlı portföye boş tutarlı satır olarak ekler/simulasyon?codes=AFT&monthly=5000&start=2025-09-21: alım simülasyonu; /bes-simulasyon ve /hedef ile ortak sekme menüsügetBench). Saf hesaplar src/lib/stats.ts içinde.fund_vol tablosuna hesaplanır; liste sorgusu 0,7 sn → 60 ms.src/lib/compact.ts): HTML 2,6 MB → ~0,75 MB (gzip ~145 KB).useDeferredValue ile ertelenir; arka plan işleri nice ile düşük öncelikli çalışır.npm test ayrıştırıcıyı gerçek PDF'lerle sınar.Dockerfile + start.sh: konteyner şemayı hazırlar, ingest'i günlük döngüde arka planda çalıştırır (ilk açılışta ~20 dk backfill) ve web'i 4321 portunda sunar.
| Env | Açıklama |
|---|---|
DATABASE_URL | Zorunlu. Coolify Postgres iç adresi |
SHOW_DISCLAIMER=1 | Opsiyonel. Header'da "yatırım tavsiyesi değildir" uyarısı gösterir; resmi dağıtımda açık, varsayılan kapalı |
UMAMI_SRC, UMAMI_ID | Opsiyonel. İkisi de verilirse Umami (çerezsiz, self-host) script'i yüklenir: UMAMI_SRC=https://umami.ornek.com/script.js, UMAMI_ID=<website id>. Gizlilik sayfası buna göre değişir. Olaylar: fon-aksiyon (tip: pin, karsilastir, portfoy, simulasyon, bes, hedef, pdf), tarama-cip (slug) |
Domain: fon.yourapiservice.com (Cloudflare A kaydı → sunucu IP'si, proxied).
npm test: KAP PDF ayrıştırıcısı ve istatistik fonksiyonları için birim testleri.npm run test:e2e: Playwright (masaüstü ve mobil senaryolar: liste filtre/sıralama/sekme, hisse filtresi, fon detayı, karşılaştırma, /api/holdings). Yerel Postgres verisiyle build alıp 4322 portunda çalıştırır; ilk seferde npx playwright install chromium-headless-shell. Canlıya karşı: E2E_BASE_URL=https://fon.yourapiservice.com npm run test:e2e..github/workflows/e2e.yml her PR'da ve main push'unda Postgres servisi + e2e/seed.sql (sahte veri) ile çalışır.PolyForm Noncommercial 1.0.0 © 2026 Alperen Gözüm
Bu proje ve ürettiği çıktılar (fiyat, getiri, sıralama, grafik, karşılaştırma) yatırım tavsiyesi değildir. Veriler TEFAS, KAP ve Yahoo Finance'ten derlenir; projeye ait değildir ve doğruluğu garanti edilmez. Yatırım kararı vermeden önce resmi kaynakları kontrol edin.
Ayrıntılar: Terms (/terms), Privacy Policy (/privacy-policy) ve LICENSE içindeki "Not Investment Advice; Data Disclaimer" bölümü.