Lección 0.1.1 · 30 min
Trading sistemático, algorítmico y cuantitativo frente al discrecional
Cuatro palabras que se usan como sinónimos y no lo son. Antes de escribir una línea de código, hay que saber qué decide una regla, qué ejecuta una máquina y qué aporta la estadística.
Lecciones del nivel 0
0.1 · Bienvenida y expectativas
0.2 · Entorno de trabajo moderno
- 0.2.1 Instalación de Python con uv: versiones y ciclo de soporte
- 0.2.2 Entornos virtuales y dependencias: uv init, uv add, pyproject.toml y lockfiles
- 0.2.3 Editores (VS Code, Cursor, PyCharm) y notebooks (Jupyter, JupyterLab, marimo)
- 0.2.4 Terminal básica, rutas, variables de entorno y ficheros .env
- 0.2.5 Git y GitHub: commits, ramas, pull requests y .gitignore
- 0.2.6 Introducción a los asistentes de código con IA: prompts, revisión y tests
0.3 · Fundamentos del lenguaje
- 0.3.1 Variables, tipos y operadores; coma flotante y decimal para precios y ticks
- 0.3.2 Cadenas, f-strings y formato de números y fechas
- 0.3.3 Listas, tuplas, diccionarios, conjuntos y comprensiones
- 0.3.4 Control de flujo: if, elif, else, for, while y match-case
- 0.3.5 Funciones: argumentos, *args y **kwargs, lambdas y ámbito
- 0.3.6 Excepciones; módulos y paquetes, con los imports perezosos de Python 3.15
0.4 · Python intermedio
- 0.4.1 Programación orientada a objetos: clases, herencia, composición y dataclasses
- 0.4.2 Tipado: type hints, mypy o ty y Pydantic para configuraciones
- 0.4.3 Iteradores, generadores, decoradores y context managers
- 0.4.4 Ficheros (CSV, JSON, YAML, TOML) y fechas con zonas horarias
- 0.4.5 Logging profesional y testing con pytest
- 0.4.6 Concurrencia: threading, multiprocessing, asyncio y free-threading
0.5 · Computación numérica y datos
- 0.5.1 NumPy 2: arrays, broadcasting, vectorización, álgebra lineal y generadores aleatorios
- 0.5.2 pandas 3.0: Series, DataFrame, índices temporales, Copy-on-Write, tipo str y pd.col()
- 0.5.3 Selección, filtrado, groupby, merge, pivot, resample y ventanas móviles
- 0.5.4 Polars: API lazy frente a eager, expresiones, rendimiento y cuándo elegirlo frente a pandas
- 0.5.5 DuckDB y SQL esencial: SELECT, JOIN, GROUP BY y funciones de ventana sobre Parquet
0.6 · Visualización
0.7 · Matemáticas y estadística mínimas
Cuatro palabras que se usan mal
En foros, cursos y anuncios de brókeres se habla de trading «algorítmico», «sistemático» y «cuantitativo» como si fueran lo mismo. No lo son, y confundirlas lleva a errores caros: creer que automatizar una idea la convierte en una estrategia probada, o que usar machine learning hace cuantitativo a un sistema.
| Término | Responde a | Qué significa | Ejemplo |
|---|---|---|---|
| Discrecional | ¿Quién decide? | Una persona decide cada operación con su criterio, aunque use indicadores | Comprar porque el gráfico «parece» girar |
| Sistemático | ¿Quién decide? | Una regla escrita decide; la persona solo la aplica | Comprar si la media de 50 sesiones cruza por encima de la de 200 |
| Algorítmico | ¿Quién ejecuta? | Un programa envía, reparte o gestiona las órdenes | Un algoritmo VWAP que reparte una compra durante el día |
| Cuantitativo | ¿Cómo se construye? | Las reglas y el tamaño de posición salen de un análisis estadístico de datos y se validan con él | Una regla de reversión contrastada con datos, con costes y fuera de muestra |
Las dos primeras filas responden a la misma pregunta; la tercera, a otra distinta; la cuarta, a una tercera. Por eso se pueden combinar: hay traders discrecionales que ejecutan con algoritmos, sistemas que se aplican a mano y sistemas automatizados que nadie ha validado nunca.
Dos ejes, no una escala
La figura de la cabecera ordena estas combinaciones en un plano. El eje horizontal mide cuánto de la decisión está en reglas explícitas; el vertical, cuánto de la ejecución hace una máquina.
- Abajo a la izquierda: el trading discrecional. Un checklist («no operar antes de datos de empleo», «stop siempre por debajo del último mínimo») mueve el punto a la derecha, pero la decisión sigue siendo de la persona.
- Abajo a la derecha: el sistemático manual. La regla decide y la persona introduce la orden en el bróker. Es como empiezan muchos sistemas de baja frecuencia.
- Arriba a la izquierda: la ejecución algorítmica de decisiones humanas. Es lo habitual en una gestora: el gestor decide qué comprar y la mesa usa algoritmos para comprarlo con el menor impacto.
- Arriba a la derecha: el sistemático automatizado, el objetivo de este curso. La regla decide, el programa ejecuta y la persona supervisa. En la esquina, las estrategias cuantitativas de mayor frecuencia (arbitraje estadístico, market making), donde ni la decisión ni la ejecución pasan por una persona.
Cuantitativo no tiene casilla propia porque no es una posición en el plano: es una forma de llegar a ella. Un sistema de la esquina superior derecha es cuantitativo solo si sus reglas salieron de datos y se validaron con ellos.
Qué cambia cuando la decisión es una regla
El paso de la cabeza al papel —y del papel al código— cambia la naturaleza de la decisión. En la fila de arriba, la decisión discrecional; en la de abajo, la sistemática, que además se puede probar sobre el pasado:
Fuente Mermaid
flowchart LR M1[Mercado] --> P[Trader decide] --> O1[Orden] M2[Mercado] --> DT[Datos] --> R[Regla decide] --> O2[Orden]
Lo que se gana:
- Reproducibilidad. Con los mismos datos, la regla toma siempre la misma decisión. Eso permite probarla sobre el pasado (backtest) y comparar versiones.
- Medida. Si la regla está escrita, se puede contar cuántas operaciones hace, cuánto cuestan y cuánto gana o pierde cada una. Una intuición no se puede medir.
- Escala. La misma regla se aplica a cien activos con el mismo esfuerzo que a uno.
- Disciplina. La regla no tiene miedo ni prisa. La persona que la supervisa sí: el error más frecuente de un sistemático no está en la regla, sino en desactivarla después de tres pérdidas seguidas.
Lo que se pierde:
- Contexto. Una regla solo ve lo que se le da. Un cambio de régimen (una crisis, un cambio de política monetaria) puede romperla sin que la regla lo note.
- Flexibilidad. Cada excepción («salvo si…») es una regla más, otra cosa que validar y otra ocasión de sobreajustar.
Una regla escrita en Python
No hace falta entender todavía cada línea: el lenguaje se ve en el módulo 0.3 y pandas en el 0.5. La idea es ver qué aspecto tiene una regla cuando deja de ser una frase. Los datos son los precios diarios de SINT, un ETF ficticio generado para el curso (enlace en «Recursos»): cinco años de sesiones, de 2021 a 2025.
import pandas as pd
precios = pd.read_csv("sint_diario.csv", parse_dates=["fecha"],
index_col="fecha")
precios["cierre"].tail(3)fecha
2025-12-29 139.56
2025-12-30 139.98
2025-12-31 142.22
Name: cierre, dtype: float64La regla: estar comprado cuando la media móvil de 50 sesiones está por encima de la de 200, y fuera del mercado en caso contrario. Escrita como función, recibe una serie de cierres y devuelve un 1 o un 0 para cada día:
def senal_cruce(cierre: pd.Series, rapida: int = 50,
lenta: int = 200) -> pd.Series:
"""1 si la media rápida cierra por encima de la lenta; 0 si no."""
media_rapida = cierre.rolling(rapida).mean()
media_lenta = cierre.rolling(lenta).mean()
return (media_rapida > media_lenta).astype(int)
senal = senal_cruce(precios["cierre"])
senal.value_counts()cierre
1 834
0 469
Name: count, dtype: int64Los ceros incluyen los 199 primeros días, en los que todavía no hay media de 200 sesiones que comparar. Ejecutarla dos veces con los mismos datos da exactamente el mismo resultado. Parece trivial y es la propiedad que hace posible todo lo demás:
senal.equals(senal_cruce(precios["cierre"]))TrueQueda un detalle que separa un backtest honesto de uno inflado. La señal de un día se calcula con su cierre: hasta que el mercado cierra no se sabe si la media rápida acabó por encima de la lenta. Por tanto, la operación solo puede hacerse a partir de la sesión siguiente. En código, la posición es la señal desplazada un día:
# la señal del cierre se opera al día siguiente
posicion = senal.shift(1).fillna(0).astype(int)
cambios = int(posicion.diff().abs().sum())
dias_dentro = posicion.mean()
print(f"Cambios de posición en cinco años: {cambios}")
print(f"Días comprado: {dias_dentro:.1%}")Cambios de posición en cinco años: 9
Días comprado: 63.9%Usar senal en lugar de posicion sería comprar al cierre de hoy con información del propio cierre de hoy. Ese error
tiene nombre, sesgo de anticipación (look-ahead bias), y es el más común del trading sistemático: un backtest con
él siempre sale mejor de lo que la estrategia puede dar. Volverá en casi todos los niveles del curso.
Lo que hace cuantitativo a un sistema
La regla anterior es sistemática y, en cuanto se conecte a un bróker, algorítmica. ¿Es cuantitativa? Todavía no: nadie ha comprobado con datos si los parámetros 50 y 200 tienen sentido, cuánto cuesta operarla, si funciona en otros activos o si su resultado se distingue del azar. Eso es lo que el curso llama método cuantitativo, y es el hilo de todos los niveles:
Datos limpios, hipótesis, backtest honesto, validación estadística, riesgo, ejecución y monitorización. Un sistema con una sola media móvil que ha pasado por ese ciclo es más cuantitativo que una red neuronal que nadie ha validado.
Ejercicios
- Clasifica en los dos ejes (quién decide, quién ejecuta) estas cinco formas de operar y di cuáles podrían ser cuantitativas: (a) un bot de Telegram que reenvía las señales de un «gurú» y las ejecuta en tu cuenta; (b) una cartera 60/40 que se rebalancea a mano cada enero; (c) un fondo que compra las 50 acciones con mejor momentum de 12 meses, contrastado con 30 años de datos; (d) un trader de futuros que opera rupturas «cuando ve volumen»; (e) un algoritmo TWAP que ejecuta la venta de un bloque de acciones decidida por un comité.
Solución
(a) La decisión es discrecional (la toma el «gurú») y la ejecución, algorítmica; no es cuantitativa: nadie ha validado las señales. (b) Sistemático manual: la regla («volver al 60/40 cada enero») decide y una persona ejecuta; puede ser cuantitativa si el reparto y la frecuencia se eligieron con datos. (c) Sistemático y, si ejecuta por programa, algorítmico; es el único claramente cuantitativo. (d) Discrecional y manual: «cuando ve volumen» no es una regla escrita. (e) Discrecional en la decisión (el comité) y algorítmico en la ejecución.
- Esta regla parece clara: «compra cuando el precio rompa el máximo de las últimas 20 sesiones y vende cuando rompa el mínimo de las últimas 10». Escribe tres preguntas que un programador tendría que hacerte antes de poder codificarla.
Solución
Algunas posibles: ¿«romper» es que el cierre supere el máximo o que lo toque el máximo intradía? ¿El máximo de 20 sesiones incluye la sesión de hoy (lo que haría imposible romperlo al cierre)? ¿Se compra al cierre de la ruptura o a la apertura siguiente? ¿Qué pasa si ya estás comprado y hay otra ruptura? ¿Se puede vender en corto al romper el mínimo o solo se cierra la posición? Cada respuesta cambia el resultado del backtest; una regla no está escrita hasta que no deja ninguna de estas preguntas abiertas.
- Cambia los parámetros de la regla a 20 y 100 sesiones y calcula el número de cambios de posición y el porcentaje de días comprado. ¿Por qué cambia tanto el número de operaciones?
Solución
senal_rapida = senal_cruce(precios["cierre"], rapida=20, lenta=100)
posicion_rapida = senal_rapida.shift(1).fillna(0).astype(int)
print(f"Cambios de posición: {int(posicion_rapida.diff().abs().sum())}")
print(f"Días comprado: {posicion_rapida.mean():.1%}")Cambios de posición: 23
Días comprado: 61.9%Las medias cortas reaccionan antes a cada movimiento, así que se cruzan más a menudo: más operaciones, más costes (lección 0.1.2) y más riesgo de que el resultado dependa de cómo se eligieron los parámetros.
Respuesta plegada en cada pregunta
Autoevaluación
Un gestor decide cada mañana qué comprar leyendo noticias y envía las órdenes a un algoritmo VWAP que las reparte durante el día. ¿Cómo se clasifica?
- ASistemático automatizado
- BDiscrecional en la decisión, algorítmico en la ejecución
- CCuantitativo
- DSistemático manual
Ver respuesta
Respuesta B. Discrecional en la decisión, algorítmico en la ejecución
La decisión no sigue una regla escrita (discrecional); solo la ejecución está automatizada. Algorítmico describe cómo se ejecuta, no cómo se decide.
¿Qué propiedad tiene una regla escrita que no tiene una decisión discrecional?
- AGana más dinero
- BNo tiene pérdidas
- CCon los mismos datos produce siempre la misma decisión, así que se puede probar sobre el pasado
- DNo necesita datos
Ver respuesta
Respuesta C. Con los mismos datos produce siempre la misma decisión, así que se puede probar sobre el pasado
La reproducibilidad es lo que permite el backtest y la validación. No dice nada de la rentabilidad.
En el código de la lección, ¿por qué la posición es
senal.shift(1)y nosenal?- APara que el código sea más rápido
- BPorque la señal se calcula con el cierre del día y solo se puede operar a partir de ese momento: usar
senalsin desplazar sería sesgo de anticipación - CPorque pandas lo exige
- DPara reducir comisiones
Ver respuesta
Respuesta B. Porque la señal se calcula con el cierre del día y solo se puede operar a partir de ese momento: usar
senalsin desplazar sería sesgo de anticipaciónCon
senalsin desplazar, el backtest compraría al cierre de hoy con información del propio cierre de hoy y cobraría el movimiento de ese mismo día. Es el error más común del trading sistemático y aparece desde la primera lección.¿Qué hace cuantitativo a un sistema?
- AQue use machine learning
- BQue opere muy rápido
- CQue sus reglas y su tamaño de posición salgan de un análisis estadístico de datos y se validen con él
- DQue tenga muchas reglas
Ver respuesta
Respuesta C. Que sus reglas y su tamaño de posición salgan de un análisis estadístico de datos y se validen con él
Un sistema con una sola media móvil puede ser cuantitativo si la regla se contrastó con datos; uno con una red neuronal puede no serlo si nadie midió si funciona.
Ideas clave
- Discrecional y sistemático hablan de quién decide; manual y algorítmico, de quién ejecuta. Son dos ejes, no una escala.
- Cuantitativo describe el método: la regla y el riesgo salen de datos y se validan con estadística.
- Una regla escrita es reproducible: se puede probar, medir y repetir. No por eso es rentable.
- La señal de un cierre se opera después de ese cierre. Olvidarlo (sesgo de anticipación) infla cualquier backtest.