BistBull Skorlama Mimarisi

Değer Skoru nasıl hesaplanır? Her katman ne yapar? Son formül ne?

V13 — Academic Tier — Final Doküman

1. Büyük Resim — Skor Zinciri

BistBull'un Değer Skoru tek bir sayı gösterir (ör: 72/100). Ama arka planda bu sayı 5 katmanlı bir zincirden geçer. Her katman bir öncekinin üzerine biner, hiçbiri diğerini bozmaz.

K1

7 Boyutlu Temel Analiz (FA Pure)

Kalite, Değerleme, Büyüme, Bilanço, Kâr Kalitesi, Hendek, Sermaye → ağırlıklı ortalama → 0-99 puan

K2

Risk Penaltileri + İvme

Negatif özsermaye, sahte kâr, seyreltme, hype → ceza. Momentum, teknik kırılım, kurumsal akış → İvme skoru.

K3

Türkiye Gerçekleri Filtresi (V12)

4 filtre: Döviz Kalkanı, Faiz Direnci, Fiyat Geçişkenliği, TMS 29. Çarpan: 0.70–1.15

K4

Akademik Katman (V13)

3 filtre: Değer Yaratımı (ROE vs Ke), Büyüme Tuzağı (FCF test), Yaşam Döngüsü. Etki: -15 ile +6 puan.

SON

Final Değer Skoru

Kullanıcının gördüğü tek sayı. Tüm katmanların birleşik sonucu.

2. Katman 1 — 7 Boyutlu Temel Analiz

Her hisse 7 boyutta 0-100 arası puanlanır. Her boyutun ağırlığı farklıdır. V11'de bilanço ve kâr kalitesi ağırlıkları artırılmıştır.

BoyutAğırlıkGirdilerNe Ölçer?
Kalite%25ROE, ROIC, Net MarjŞirket kârlı mı, verimli mi?
Değerleme%18F/K, PD/DD, FD/FAVÖK, FCF YieldUcuz mu pahalı mı?
Bilanço%15NB/FAVÖK, D/E, Cari Oran, Altman ZBorç riski var mı?
Kâr Kalitesi%13CFO/NI, FCF Marj, Beneish MKâr gerçek mi sahte mi?
Büyüme%12Gelir, HBK, FAVÖK büyüme, PEGBüyüyor mu?
Sermaye%10Temettü, FCF, Seyreltme, ROICSermayeyi iyi kullanıyor mu?
Hendek%7Marj stabilitesi, Fiyatlama gücüRekabet avantajı var mı?
FA Pure = Σ (boyut_skoru × boyut_ağırlığı)
Örnek: Kalite(82)×0.25 + Değerleme(65)×0.18 + ... = 68.3

3. Katman 2 — Risk ve İvme

Risk Penaltileri

DurumCeza
Negatif özsermaye-15
Net zarar-10
Sahte kâr (CFO<0, NI>0)-12
NB/FAVÖK > 5x-25
Beneish > -1.5-18

İvme Skoru (3 Boyut)

BoyutAğırlıkGirdiler
Momentum%40RSI, MA50/200, Hacim, 20g değişim
Teknik Kırılım%3552W High, Golden Cross, BB, MACD
Kurumsal Akış%25Kurumsal sahiplik, Hacim+Fiyat

Overall Formül

Değer Skoru = FA × 0.58
            + İvme × gate(FA) × 0.28
            + Valuation Stretch
            + Risk × 0.38
Non-Linear Momentum Gate (V11)

FA < 35 olan hisselerde momentum neredeyse sıfırlanır. Hype koruması. FA ≥ 65 olunca tam etki.

4. Katman 3 — Türkiye Gerçekleri (V12)

Felsefe: İsviçre'de %1 faizle çalışan bir modeli Türkiye'de %50 faizle kullanmak aptallıktır. Bu katman her şirkete bir "Türkiye çarpanı" uygular.

FiltreNe Ölçer?Çarpan Aralığı
Döviz Kalkanıİhracat oranı, döviz borcu, reel büyüme0.75 – 1.15
Faiz DirenciEfektif borç maliyeti = NB/FAVÖK × %580.70 – 1.10
Fiyat GeçişkenliğiMarj stabilitesi, operasyonel kaldıraç0.80 – 1.10
TMS 29Enflasyon muhasebesi sahte kâr tespiti0.75 – 1.05
Birleşik çarpan = ⁴√(fx × faiz × geçişkenlik × tms29)  ← geometrik ortalama
Turkey-Adjusted FA = FA Pure × birleşik çarpan
Efektif Borç Maliyeti — En Kritik Metrik

NB/FAVÖK = 3 olan şirket: İsviçre'de 3×%2 = %6 (sorun yok). Türkiye'de 3×%58 = %174 (FAVÖK faizi bile ödeyemiyor). Mevcut sistem bunu "orta risk" diyor, V12 "KIRILGAN" diyor.

5. Katman 4 — Akademik Filtre (V13)

Damodaran (NYU Stern) + Greenwald (Columbia) çerçevesi. Türkiye'nin %50 faiz ortamına kalibre edilmiş.

Filtre 1: Değer Yaratımı (Damodaran)

"Bir şirketin değeri, sermaye maliyetinin üzerinde kazandığı fazla getiriden gelir."

Excess Return = ROE - Ke   Türkiye'de Ke = %50 + β×%8 ≈ %58

DurumPuanNotEtki
ROE ≤ 05F-10p
ROE < %2512F-10p — mevduatın yarısı bile değil
ROE < %50 (mevduat)25D-7p — değer yıkımı
ROE < Ke (%58)42C-3p — risk primi yok
ROE ≈ Ke62B0p
ROE > Ke + %588A+3p — elit

Filtre 2: Büyüme Tuzağı (Greenwald)

"Büyüme sadece nakit yaratıyorsa değerlidir. Nakit yutuyorsa bir sorundur."

Reel büyüme = nominal - %40 enflasyon. FCF negatifken büyüme = nakit kara deliği.

DurumNotEtki
Reel büyüme + FCF pozitifA+3p — Greenwald'un ideali
Dengeli büyümeB0p
Reel küçülmeD-3p
BÜYÜME TUZAĞI (3+ sinyal)F-5p — büyüyor ama nakit yakıyor

Filtre 3: Yaşam Döngüsü

FazDoğru StratejiYanlış Yapılırsa
Genç BüyümeYüksek ROIC'le yatırım, düşük temettü OKDüşük ROIC ama ağır CAPEX → D
OlgunNakdi dağıt (temettü/buyback)FCF yüksek ama dağıtmıyor → -5p ceza
DüşüşNakdi dağıt, yatırımı azaltKüçülürken ağır yatırım → D

6. Gerçek Örnek — Tüm Zincir

Senaryo: ROE %15 Borçlu İç Piyasa Sanayi

F/K 5, NB/FAVÖK 4.5x, gelir büyüme %25 (nominal), döviz geliri %5

Ham FA: 62 V12: ×0.75 TR-Adj: ~47 V13: -15p Final: 32

Neden düştü?

V12: Efektif borç maliyeti FAVÖK'ün %261'i. Döviz geliri yok, kur riski yüksek. TMS 29 kârı şişirmiş.

V13: ROE %15 < mevduat %50 → değer yıkımı (-10). Reel küçülme %-15 (-3). Düşüş fazı (-2).

AI'ın söyleyeceği: "F/K 5 ucuz görünüyor ama parasını bankaya koysan 3.3 kat daha çok kazanırsın. Faizini bile ödeyemiyor. Nominal %25 büyüme aslında reel %-15 küçülme."

Senaryo: ROE %70 Net Nakit İhracatçı Savunma

F/K 18, NB/FAVÖK -1.5 (net nakit), gelir büyüme %65, döviz %60

Ham FA: 74 V12: ×1.10 TR-Adj: ~81 V13: +6p Final: 87

V12: Güçlü döviz kalkanı, net nakit, fiyatlama gücü var. V13: ROE %70 > Ke %56 → gerçek excess return. Reel %25 büyüme + FCF pozitif → nakit yaratan büyüme.

7. Dosya Haritası

engine/
├── scoring.py          ← K1: 7 boyut FA + risk penaltileri
├── scoring_v11.py      ← K1+: Non-linear gate, fatal triggers, Ciro/PD
├── technical.py        ← K2: İvme (momentum, teknik, kurumsal)
├── turkey_realities.py ← K3: V12 Türkiye Gerçekleri (4 filtre)
├── turkey_enhancements.py ← K3+: Reel büyüme, getiri testi, borç riski
├── academic_layer.py   ← K4: V13 Akademik (3 filtre)     ← YENİ
├── analysis.py         ← HEPSİNİ BİRLEŞTİREN ana fonksiyon
└── ...

ai/
├── prompts_v12.py      ← AI prompt şablonları (V12 Turkey-aware)
├── engine.py           ← AI provider chain (Grok→OpenAI→Anthropic)
└── service.py          ← AI servis katmanı

8. Motorlar — Tek Cümlede

MotorNe yapar
Radar (Temel)Tüm likit BIST'i yalnız temel analizle (7 boyut + Türkiye filtresi) puanlayıp kalite/değer sıralar.
BullWatchTemel + hacim + fiyat teyidini birleştirip kademe (EARLY / CONFIRMED / CONVICTION) üretir; çok-faktörlü analiz skorudur.
BullAlfa"İyi şirket" ile "iyi an"ı aynı anda arayan hibrit tarayıcı; kurulum durumu bildirir.
Cross HunterTeknik kırılım/momentum sinyalleri; her sinyale 1-5 güvenilirlik puanı verir.
FaktörLabCross-sectional faktör (düşük-vol + momentum + 52h-zirve) taraması; benchmark-kontrollü.
CONVICTION skoruBirden çok bağımsız köşenin (temel/takas/sosyal/içeriden) aynı hisseye işaret etme derecesi; çok-faktörlü analiz skorudur.

9. Etiket Sözlüğü — İç Değer ↔ Ekran Etiketi

Neden "AL / SAT" demiyoruz?
BistBull analizin durumunu raporlar; işlem talimatı vermez. Bu yüzden ekranda emir fiili (al / sat / uzak dur), kesinlik iddiası (kesin / garanti) ya da kazanç vaadi yer almaz. Motorların içindeki teknik değerler (ör. AL, KAÇIN) veri katmanında aynen durur; ekrana çıkarken aşağıdaki tabloyla nötr, durum-bildiren dile çevrilir. Renk (yeşil/kırmızı) analitik yön göstergesidir, metin değişse de korunur.
İç değer (veri)Ekran etiketiAnlamı
ALOlumluTemel güçlü, zamanlama uygun görünüyor
İZLE / BEKLENötrTablo henüz net değil ya da fiyat/zamanlama uygun değil
KAÇINDüşük skorVeriler zayıf ya da risk işaret ediyor
tahtacı sellOlumsuzAçık pozisyonda çıkış sinyali
tahtacı hold / cautionNötrPozisyon korunuyor / izlemede
tier ELİTEn üst bantKalite bandının en üstü (~en iyi %5)
tier GÜÇLÜÜst bantSağlam şirket
tier ORTAOrta bantOrtalama
tier ZAYIFAlt bantZayıf görünüm
tier RİSKLİEn alt bantÇok zayıf

Eşleme tek kaynakta yaşar: static/js/labels.js (BBLabels). Kalite notları (Çok Başarılı / Başarılı / Orta / Zayıf / Riskli) durum tanımıdır, olduğu gibi gösterilir.

10. Veri Kaynakları ve Gecikme

VeriKaynakGecikme
Fiyat / hacimyfinance (Yahoo Finance)~15-20 dakika gecikmeli olabilir
Mali tablolarTemel veri sağlayıcı (PIT + tam-fetch)Çeyreklik; KAP açıklamasına bağlı
Yabancı takasİş Yatırım / borsapyGünlük / haftalık
Sosyal (X) duyarlılıkGrok x_searchYakın-zamanlı, alıntı-kaynaklı
KAP bildirimleriKAPYayınlandıkça
Uyarı
BistBull yatırım tavsiyesi vermez. Skorlar ve taramalar genel nitelikte analitik veridir; işlem kararı kullanıcıya aittir. Veriler gecikmelidir. Finansal kararlarınızı lisanslı danışmanlarınızla doğrulayın.

11. Forward Kayıt Nedir? (Backtest'ten Farkı)

Backtest, bir kuralı geçmiş veriye uygular — "olsaydı ne olurdu". Güçlüdür ama iki tuzağı vardır: survivorship (bugün var olan hisselerle geçmişi ölçmek) ve aşırı-uydurma (kurala geçmişi ezberletmek). Bu yüzden backtest bir üst-sınırdır, garanti değil.

Forward kayıt, sinyali verildiği anda mühürleyip sonucu ileriye doğru ölçer — seçim anında bilinmeyen geleceği kullanır, dolayısıyla survivorship ve p-hacking barındırmaz. BistBull motorlarının canlı track-record'u bu mantıkla tutulur (picks kaydet → XU100-üstü ölç).

Nasıl ölçülür?

Değişmezlik: hash zinciri + dış sabitleme

Kayıtlar append-only'dir (veritabanı trigger'ları silmeyi ve izinsiz güncellemeyi reddeder). Her gün, o gün mühürlenen kayıtların değişmez alanlarından (kayıt no, motor, config-hash, hisse, kayıt zamanı) bir gun_hash üretilir; günler zincir_hash = SHA-256(önceki + gun_hash) ile zincirlenir. Geçmiş bir kaydı değiştirmek ya da geriye tarihlemek zinciri kırar.

Okuyucu nasıl doğrular? scripts/verify_chain.py zinciri kayıtlardan bağımsız yeniden hesaplar; ✓ (tutarlı) ya da ✗ (ilk uyuşmazlık günü) verir. Ek olarak günlük zincir_hash public bir kayıt deposunun git geçmişine dış sabitleme ile yazılır — böylece değişmezlik terminalin kontrolü dışındaki bir zaman damgasıyla da kanıtlanır.