💼 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:

TipFormülBekir Ö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 %MesajEmoji
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

SekmeEndpointVeri
1. Özet/portfolio/{id}Üst kartlar (değer, K/Z, dağılım)
2. İşlemler/tradesTüm al/sat işlemleri (Bekir 3 SVGYO alım)
3. Kapalı Pozisyonlar/closed-positionsTamamen satılmış pozisyonlar
4. Geçmiş/history?period=30d|allPortföy değeri zaman serisi
5. AI Analiz/ai-analysis + POST generateClaude 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-summaryTahsil edilen temettüler
8. Strateji(custom)Portföy stratejisi (long/short, risk seviye)
9. Risk/risk-scoreRisk skoru + risk dağılımı

⚡ Domain Events Tetik

Portföy modülü 3 domain event publish eder:

🤖 AI Portföy Analiz Detay

Claude Haiku ile üretilen kapsamlı analiz (Bekir portföyü gerçek skor):

BileşenBekir SkorMax
Genel Skor22100
Performans (Getiri & K/Z)15100
Risk (Düşük = Riskli)18100
Çeşitlilik (Dağılım)12100

Benchmark Karşılaştırma (4 varlık)

VarlıkGetiriBekir 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ı

⚠️ 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ış:

  1. Backend: Trade kayıt + portföy update
  2. Domain Event: trade:changed publish
  3. Event Bus: Wallet service event'i alır
  4. Wallet: Transaction otomatik kayıt (-₺21.300.000 örneğin)
  5. Domain Event: portfolio:changed publish
  6. WebSocket: Tüm bağlı kullanıcı tab'larına broadcast
  7. Frontend: React Query cache invalidate
  8. UI: 3 sayfada (portföy + cüzdan + ana sayfa) eş zamanlı refresh

📊 Gerçek Veri Örneği — Bekir 1 Milyar Portföyü

Portföy ID23919
Hedef₺1,000,000,000
İlerleme%2 🌱
Oluşturma12 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

SembolAdetMaliyetMevcutK/Z %
SVGYO1,005,999₺21.22₺18.85-%11.18
LXGYO6,000₺16.33₺15.77-%3.44
SMRVA ⚠️5,000₺60.25₺16.18-%73.15