💼 Portföy Modülü + Formüller
22 endpoint, 9 sekme, hesaplama formülleri, AI analiz, hedef takibi
22
Endpoint
9
Detay Sekme
3
Domain Event
5+
Hesap Formül
🧮 HESAPLAMA FORMÜLLERİ
1. Ağırlıklı Ortalama Maliyet (en kritik!)
Ortalama Maliyet = Σ(adet × fiyat) / Σadet
Örnek (canlı kanıtlandı):
İşlem 1: ASELS 5 lot @ ₺410.00
İşlem 2: ASELS 5 lot @ ₺500.00
Toplam Adet: 10
Toplam Maliyet: (5 × 410) + (5 × 500) = 2,050 + 2,500 = 4,550 TL
Ortalama: 4,550 / 10 = ₺455.00 ✓
2. K/Z (Kâr/Zarar) Hesabı
K/Z (TL) = Mevcut Değer - Toplam Maliyet
K/Z (%) = (K/Z TL / Toplam Maliyet) × 100
Örnek (Bekir 1 Milyar Portföyü, canlı):
SVGYO Pozisyon:
Adet: 1,005,999
Ort. Maliyet: ₺21.22
Toplam Maliyet: ₺21,350,544.15
Mevcut Fiyat: ₺18.85
Mevcut Değer: 1,005,999 × 18.85 = ₺18,963,081.15
K/Z TL: 18,963,081.15 - 21,350,544.15 = -₺2,387,463.00
K/Z %: (-2,387,463 / 21,350,544) × 100 = -%11.18 ✓
3. Toplam Getiri (Yıllıklandırılmış)
Toplam Getiri % = (K/Z TL / Toplam Maliyet) × 100
Yıllıklandırılmış = (1 + Getiri%/100)^(365/gun) - 1
Bekir portföyü 73 günde -%12 kayıp → yıllıklandırılmış ≈ -%47.2 (AI Analiz tarafından hesaplandı)
4. Stopaj (Temettü)
Net Temettü = Brüt Temettü × (1 - stopaj_oranı)
THYAO 2025 temettü doğrulaması:
Brüt: ₺3.4420
Net: ₺2.9257
Stopaj: (3.4420 - 2.9257) / 3.4420 = %15.0 ✓ (standart hisse stopajı)
5. Açık vs Toplam K/Z %
Aynı dolar K/Z için iki farklı yüzde gösterimi:
| Tip | Formül | Bekir Örnek |
|---|---|---|
| Toplam Getiri % | K/Z TL / Maliyet × 100 | -₺2.61M / ₺21.75M = -%12.01 |
| Açık K/Z % | K/Z TL / Mevcut Değer × 100 | -₺2.61M / ₺19.14M × 100 = -%38.62 |
6. Bugünkü Değişim
Bugün K/Z = Σ(adet × günlük_değişim_TL_olarak)
Bugün % = Bugün K/Z / Önceki gün değer × 100
7. Hedef İlerleme
İlerleme % = (Mevcut Değer / Hedef Değer) × 100
Bekir: ₺19.14M / ₺1,000M = %1.914 → yuvarlanmış %2 🌱
8. Hedef Gamification Mesajları
| İlerleme % | Mesaj | Emoji |
|---|---|---|
| 0-10% | "Yolculuk başladı, adım adım!" | 🌱 |
| 10-25% | "Güzel ilerliyorsun!" (tahmini) | 🌿 |
| 25-50% | "Yarı yola yakın!" (tahmini) | 🌳 |
| 50-75% | "Çoğu bitti!" (tahmini) | 🏔️ |
| 75-100% | "Neredeyse hedef!" (tahmini) | 🎯 |
| ≥100% | "HEDEF AŞILDI!" (tahmini) | 🏆 |
🔌 22 ENDPOINT TAMAMI
CRUD Endpoint'leri
GET/api/portfolioTüm portföyler listesi
POST/api/portfolioYeni portföy oluştur
GET/api/portfolio/{id}Portföy detay
PUT/api/portfolio/{id}Güncelle (isim, hedef)
DELETE/api/portfolio/{id}Sil
Pozisyon & İşlem
GET/api/portfolio/{id}/holdingsAnlık pozisyonlar (3 hisse Bekir)
GET/api/portfolio/{id}/tradesTüm işlemler tarihçesi
POST/api/portfolio/tradeYeni al/sat işlemi
PUT/api/portfolio/trade/{id}İşlem güncelle/sil
GET/api/portfolio/{id}/closed-positionsKapanan pozisyonlar
Performans & Analiz
GET/api/portfolio/{id}/history?period=30d|allTarihsel değer (param: period)
GET/api/portfolio/{id}/returnsGetiri serisi
GET/api/portfolio/{id}/realized-pnlGerçekleşen K/Z
GET/api/portfolio/{id}/analysisGenel analiz
GET/api/portfolio/{id}/risk-scoreRisk skoru (7/10 gibi)
GET/api/portfolio/{id}/position-timelinePozisyon zaman çizelgesi
GET/api/portfolio/{id}/snapshotsZaman bazlı snapshots
AI Analiz
GET/api/portfolio/{id}/ai-analysisMevcut analiz (cache, 24sa)
POST/api/portfolio/{id}/ai-analysis/generateYeni AI analiz (Claude Haiku ~18sn)
Temettü
GET/api/portfolio/{id}/dividendsTüm temettü kayıtları
GET/api/portfolio/{id}/dividend-summaryTemettü özeti
GET/api/portfolio/dividends/{id}Tek temettü detay
Hedef & Rebalance
GET/api/portfolio/{id}/target-allocationHedef dağılım
POST/api/portfolio/{id}/rebalanceYeniden dengeleme
Genel Varlık & UI
GET/api/portfolio/detailed-distribution/allTüm portföylerin birleşik özeti
GET/api/portfolio/ui/preferencesUI tercihleri (sıralama, görünüm)
PUT/api/portfolio/ui/preferencesUI tercih kaydet
📑 9 Detay Sekmesi
| Sekme | Endpoint | Veri |
|---|---|---|
| 1. Özet | /portfolio/{id} | Üst kartlar (değer, K/Z, dağılım) |
| 2. İşlemler | /trades | Tüm al/sat işlemleri (Bekir 3 SVGYO alım) |
| 3. Kapalı Pozisyonlar | /closed-positions | Tamamen satılmış pozisyonlar |
| 4. Geçmiş | /history?period=30d|all | Portföy değeri zaman serisi |
| 5. AI Analiz | /ai-analysis + POST generate | Claude Haiku ile skor + SWOT + benchmark |
| 6. Hedef Dağılım | /target-allocation | İdeal vs mevcut sektör/varlık dağılımı |
| 7. Temettü | /dividends + /dividend-summary | Tahsil edilen temettüler |
| 8. Strateji | (custom) | Portföy stratejisi (long/short, risk seviye) |
| 9. Risk | /risk-score | Risk skoru + risk dağılımı |
⚡ Domain Events Tetik
Portföy modülü 3 domain event publish eder:
trade:changed— Yeni al/sat işlemi sonrasıportfolio:changed— Pozisyon güncellendiğinde (trade veya fiyat)target:changed— Hedef dağılım veya rebalance sonrası
🤖 AI Portföy Analiz Detay
Claude Haiku ile üretilen kapsamlı analiz (Bekir portföyü gerçek skor):
| Bileşen | Bekir Skor | Max |
|---|---|---|
| Genel Skor | 22 | 100 |
| Performans (Getiri & K/Z) | 15 | 100 |
| Risk (Düşük = Riskli) | 18 | 100 |
| Çeşitlilik (Dağılım) | 12 | 100 |
Benchmark Karşılaştırma (4 varlık)
| Varlık | Getiri | Bekir Sapma |
|---|---|---|
| Bekir Portföy | -%12.0 | — |
| BIST 100 | +%3.9 | -%15.9 puan |
| Altın | -%11.2 | -%0.8 puan |
| Dolar | +%3.6 | -%15.6 puan |
| Mevduat | +%7.7 | -%19.7 puan |
AI Çıktısı Yapısı
- Skor: 0-100 + 3 alt skor (Performans/Risk/Çeşitlilik)
- SWOT: Güçlü Yönler (3) + Zayıf Yönler (3) + Fırsatlar (2) + Riskler (3)
- Benchmark: 4 varlık karşılaştırma
- 5 Aksiyon Önerisi: Yüksek/Orta öncelik
- Varlık Bazlı Karar: AZALT / SAT / TUT (her hisse için)
- AI Notu: Sentetik özet
⚠️ Quota
AI Portföy Analiz günde 1 kez üretilebilir. Cache 24 saat.
🔄 Portföy ↔ Cüzdan Otomatik Sync
POST /api/portfolio/trade sonrası otomatik akış:
- Backend: Trade kayıt + portföy update
- Domain Event:
trade:changedpublish - Event Bus: Wallet service event'i alır
- Wallet: Transaction otomatik kayıt (-₺21.300.000 örneğin)
- Domain Event:
portfolio:changedpublish - WebSocket: Tüm bağlı kullanıcı tab'larına broadcast
- Frontend: React Query cache invalidate
- UI: 3 sayfada (portföy + cüzdan + ana sayfa) eş zamanlı refresh
📊 Gerçek Veri Örneği — Bekir 1 Milyar Portföyü
| Portföy ID | 23919 |
| Hedef | ₺1,000,000,000 |
| İlerleme | %2 🌱 |
| Oluşturma | 12 Mart 2026 |
| Mevcut Değer | ₺19,138,601 |
| Maliyet | ₺21,749,784 |
| K/Z | -₺2,611,183 (-%12.01) |
| Bugün | +₺1,598,928 (+%9.12) |
| 1 Ay | -%58.81 |
3 Pozisyon
| Sembol | Adet | Maliyet | Mevcut | K/Z % |
|---|---|---|---|---|
| SVGYO | 1,005,999 | ₺21.22 | ₺18.85 | -%11.18 |
| LXGYO | 6,000 | ₺16.33 | ₺15.77 | -%3.44 |
| SMRVA ⚠️ | 5,000 | ₺60.25 | ₺16.18 | -%73.15 |