En la Cartera: Cómo Stocksimpy Rastrea Operaciones y Valor

Descubre Stocksimpy, una librería Python para backtesting de acciones. Portfolio gestiona efectivo, holdings e historial de operaciones.

4 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Del efectivo a las acciones: mira tu cartera en acción

Este es el capítulo 5 de mi serie Construyendo Stocksimpy, donde creo desde cero una librería ligera en Python para backtesting de acciones.

En la entrega anterior expliqué por qué quiero que Stocksimpy se mantenga simple: cada clase con un propósito claro, en lugar de volcarlo todo en una única clase de backtester gigante.

Por eso creé StockData para gestionar el histórico de precios. Pero conocer solo los precios no basta: necesitaba registrar el efectivo disponible, las operaciones y las posiciones. Ahí entra Portfolio.

¿Por qué una clase de cartera?

Los indicadores no sirven sin una cuenta que registre tus operaciones; por eso construí Portfolio.

Portfolio es, esencialmente, el contable que sigue cada flujo de dinero. Podrías llevarlo en un DataFrame dentro del bucle de backtesting, sí. Entonces, ¿por qué usar Portfolio? Por el principio DRY, No te repitas. Si puedes encapsular la misma lógica y reutilizarla, tu código es más limpio, menos propenso a errores y más fácil de mantener.

Además, contar con Portfolio me permitió separar el flujo de caja de la lógica del backtesting. En vez de mezclarlo todo, cada pieza hace su trabajo. De lo contrario, terminarías reescribiendo la lógica de compra y venta una y otra vez; y corregir un detalle menor en muchos sitios es la receta perfecta para errores sutiles.

Tres responsabilidades clave

Cuando piensas en una cartera de trading, piensas en dinero total, acciones y otros activos. Eso es exactamente lo que hace Portfolio, y también todo lo relacionado con el flujo y el registro de ese dinero y posiciones.

Almacenamiento de efectivo y posiciones

En su núcleo, Portfolio mantiene tu efectivo disponible con self.cash y todas tus posiciones con self.holdings. Suena simple, pero tener esta información en un único lugar evita errores y mantiene el código ordenado.

Operaciones de compra y venta

No quería que el bucle de backtesting accediera directamente al efectivo y a las posiciones. Así que la segunda responsabilidad son las operaciones de compra y venta. Comprar y vender exige que Portfolio conozca el precio actual del activo, lo que podría acoplarlo a StockData, algo que quería evitar para poder usar Portfolio de forma independiente.

¿La solución? Añadí un parámetro price al método exec_trade, de manera que el precio pueda suministrarlo el bucle de backtesting o el propio usuario. Toda la modificación real de efectivo y posiciones se realiza a través de exec_trade.

Seguimiento del historial

Puede parecer que Portfolio ya está completo, pero falta una tercera responsabilidad crítica: registrar el historial. El usuario debe poder consultar los cambios cuando la simulación compra o vende, y ver la valoración total. Esto se resolvió con _log_trade, que registra cada operación en self.trade_log.

Ejemplo rápido: empiezas con 10000, compras 10 acciones de NVDA a 170 en una fecha concreta, llamas a Portfolio.exec_trade con symbol NVDA, trade_type Buy, price 170, shares 10 y date la fecha actual. La cartera descuenta el efectivo, incrementa las acciones de NVDA y deja constancia en el registro de operaciones.

Un bug interesante: Python no permite incrementar el valor de una clave que aún no existe en un diccionario. Solución elegante: usar defaultdict(int) del módulo collections, que inicializa nuevas claves a 0 automáticamente.

¿Y ahora qué?

Portfolio está diseñado para funcionar de forma independiente, así que puedes integrarlo en bucles de backtesting personalizados. Ya maneja múltiples símbolos sin problema, aunque la primera versión del Backtester quizás no los exprima al máximo. Lo siguiente: la lógica de backtesting.

Acerca de Q2BSTUDIO

En Q2BSTUDIO desarrollamos aplicaciones a medida y software a medida que aplican los mismos principios de arquitectura limpia y separación de responsabilidades que ves en Stocksimpy. Integramos inteligencia artificial e IA para empresas con agentes IA para automatizar decisiones, ofrecer analítica avanzada y acelerar el time to market. También ayudamos con ciberseguridad, servicios cloud AWS y Azure, servicios inteligencia de negocio, cuadros de mando con Power BI y automatización de procesos, para que tus soluciones sean seguras, escalables y orientadas a resultados.

¿Sugerencias para Stocksimpy? Me encantará leer tus ideas y mejoras para que esta librería sea útil a quien empieza en finanzas cuantitativas.

Antes de irte, si te gustó: deja una estrella a StockSimPy en Github, sígueme en Twitter X y en Bluesky, explora más artículos en Medium o conectemos en LinkedIn.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.