Rompiendo
23 Abr 2025, Mié

4.Carteras de inversión multicliente

Este módulo gestionará:

  • Creación de carteras por usuario.
  • Asignación de activos con pesos.
  • Lógica inicial para análisis IA (placeholder).
  • Enlace posterior con motor de trading.
# portfolio_service.py from fastapi import APIRouter, HTTPException from pydantic import BaseModel from typing import List, Dict router = APIRouter() # Simulación de base de datos portfolios_db: Dict[str, List[dict]] = {} class Activo(BaseModel): ticker: str porcentaje: float class CrearCartera(BaseModel): user_id: str nombre: str activos: List[Activo] @router.post(«/crear») def crear_cartera(data: CrearCartera): if sum(a.porcentaje for a in data.activos) != 100: raise HTTPException(status_code=400, detail=»La suma de los porcentajes debe ser 100%») cartera = { «nombre»: data.nombre, «activos»: [a.dict() for a in data.activos] } if data.user_id not in portfolios_db: portfolios_db[data.user_id] = [] portfolios_db[data.user_id].append(cartera) return {«message»: «Cartera creada», «cartera»: cartera} @router.get(«/{user_id}») def obtener_carteras(user_id: str): carteras = portfolios_db.get(user_id, []) return {«carteras»: carteras} @router.get(«/{user_id}/recomendar») def recomendar_portafolio(user_id: str): # Placeholder IA – en futuro se puede conectar con análisis real recomendacion = [ {«ticker»: «AAPL», «porcentaje»: 40}, {«ticker»: «MSFT», «porcentaje»: 30}, {«ticker»: «GOOGL», «porcentaje»: 30} ] return {«recomendado»: recomendacion}

Te has perdido

Enable Notifications OK No thanks