Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
1904개 활성 펀드, 1일~5년 수익·규모·현금 흐름·리스크 제공; 필터·정렬·비교. 데이터 기준 2026‑10‑09
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.
금융TypeScript · JavaScriptGitHub @alperengozum온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.
저장소 README에서 가져옴
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.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ü.