Files
iddaai-be/mds/V20_QUANT_INTEGRATION.md
T
fahricansecer 2f0b85a0c7
Deploy Iddaai Backend / build-and-deploy (push) Failing after 18s
first (part 2: other directories)
2026-04-16 15:11:25 +03:00

4.9 KiB
Raw Blame History

V20+ Quant Entegrasyonu & UI Dashboard

Tarih: 13 Mart 2026
Versiyon: V20+Quant
Kapsam: Backend (AI Engine) + Frontend (Suggest-Bet-FE)


1. V2 Kantitatif Katman Entegrasyonu

Yapılan Değişiklikler

services/single_match_orchestrator.py

_decorate_market_row() metodu güncellendi:

  • Eski edge = confidence - implied_prob hesabı → Yeni EV Edge formülüne geçildi:
    ev_edge = (probability × odds) - 1.0
    
  • Sabit bahis birimi yerine Fractional Kelly Criterion ile stake hesabı:
    kelly_fraction = (prob × (odds - 1) - (1 - prob)) / (odds - 1)
    stake = min(max(kelly_fraction × 0.25, 0), 0.25) × 10
    
  • Grade sistemi edge-based'e geçirildi:
    • A: EV Edge > %10
    • B: EV Edge > %5
    • C: EV Edge > %2
    • PASS: Edge ≤ %2

_to_bet_summary_item() güncellendi:

  • ev_edge, implied_prob, odds alanları bet_summary çıktısına eklendi

_real_market_odds() — YENİ metod:

  • Default oran bug'ı düzeltildi (aşağıda detay)

2. Default Oran Bug Fix (Kritik)

Problem

MS market oranları veritabanında eksik olduğunda, sistem sahte default değerler enjekte ediyordu:

DEFAULT_MS_H = 2.65  # SAHTE
DEFAULT_MS_D = 3.20  # SAHTE  
DEFAULT_MS_A = 2.65  # SAHTE

Bu değerler market row'larına sızarak sahte EV Edge oluşturuyordu:

  • GS vs Eyüpspor → edge=+73% (SAHTE — gerçek oran yok!)
  • Bandırma vs Hatay → edge=+59% (SAHTE — gerçek oran yok!)

Çözüm

_real_market_odds() helper metodu eklendi:

def _real_market_odds(self, odds_data, key):
    val = float(odds_data.get(key, 0.0))
    if val <= 1.0: return 0.0
    DEFAULTS = {"ms_h": 2.65, "ms_d": 3.20, "ms_a": 2.65}
    if key in DEFAULTS and abs(val - DEFAULTS[key]) < 1e-6:
        return 0.0  # Sahte default → sıfırla
    return val  # Gerçek oran → kullan

Etki:

  • ML modeli hala defaultları feature olarak kullanıyor
  • Market row'lar 0.0 alıyor → market_odds_missing gate tetikleniyor → PASS
  • Sahte edge oluşmuyor

3. Backtest Sonuçları (8-22 Şubat, 14 Gün)

Düzeltilmiş Sonuçlar (Sahte oranlar temizlendikten sonra)

Metrik Değer
Toplam Main Pick 65
Doğruluk 55/65 (%84.6)
Kelly ROI +%10.0
Flat-stake ROI -%2.4

Grade Bazlı Performans

Grade Doğruluk ROI Açıklama
A (>%10 edge) 1/1 (%100) +%40 Twente OU15 Üst (gerçek odds=1.40)
B (%5-10 edge) 1/1 (%100) +%12 GS-Juventus OU15 Üst
C (%2-5 edge) 4/6 (%66.7) -%26.2 Düşük oran baskısı
PASS 49/57 (%86) -%0.9 Güvenli ama düşük oran

Önemli Çıkarımlar

  1. Grade A gerçekten kârlı — sadece gerçek oranlarla hesaplanan edgeler
  2. Kelly staking çalışıyor — yüksek edge'e daha fazla stake koyuyor
  3. Çoğu pick OU15/DC — MS oranları eksik olduğundan (lineup yok)
  4. PASS pickleri güvenli — %86 isabet ama düşük oranlar (1.06-1.30)

4. Frontend UI Entegrasyonu

Değiştirilen Dosyalar

src/lib/api/predictions/types.ts

// MatchPickDto'ya eklendi:
ev_edge: number;
implied_prob: number;

// MatchBetSummaryItemDto'ya eklendi:
ev_edge: number;
implied_prob: number;
odds: number;

src/components/matches/prediction-card.tsx (Tam Yeniden Yazıldı)

4 yeni sub-component:

Component Görsel Açıklama
EvEdgeBadge EV +14.2% Yeşil/kırmızı gradient badge, animated mount
KellyStakePills ●●●○○ 1.5u Dolu/boş daire ile stake göstergesi
ProbComparisonBar Mavi vs turuncu bar Model olasılığı vs bahisçi olasılığı
QuantDashboard Glassmorphism kart Edge gauge + Model vs Bookie + Kelly stake

Mevcut componentler güncellendi:

  • PickCard: EV Edge badge + Kelly pills + prob comparison bar eklendi
  • BetSummaryRow: Odds, edge %, stake kolonları; pozitif edge satırları yeşil vurgulanıyor

messages/tr.json & messages/en.json

8 yeni çeviri anahtarı: ev-edge, implied-prob, model-prob, kelly-stake, edge-positive, edge-negative, quant-analysis, vs-bookie


5. Dosya Değişiklik Özeti

Dosya Tip Açıklama
ai-engine/services/single_match_orchestrator.py MODIFY _real_market_odds() eklendi, _decorate_market_row() EV Edge + Kelly entegrasyonu
ai-engine/scripts/backtest_v20plus_quant.py NEW 2 haftalık V20+Quant backtest scripti
Suggest-Bet-FE/src/lib/api/predictions/types.ts MODIFY Quant alanları (ev_edge, implied_prob, odds)
Suggest-Bet-FE/src/components/matches/prediction-card.tsx REWRITE EvEdgeBadge, KellyStakePills, ProbComparisonBar, QuantDashboard
Suggest-Bet-FE/messages/tr.json MODIFY 8 yeni TR çeviri
Suggest-Bet-FE/messages/en.json MODIFY 8 yeni EN çeviri