Validación de backtests · Investigación cuantitativa
CopyTradeAudit
Un motor de backtesting construido para romper sus propios resultados — y el resultado negativo honesto que produjo.
- Python
- FastAPI
- pytest
- SQLite
- uv
El problema
Muchos productos venden la misma idea: los mercados de predicción publican cada operación, algunos traders son rentables de forma constante, así que síguelos y gana. Es una idea fácil de comprobar con un backtest e igual de fácil de comprobar mal: basta una filtración de información futura, o cincuenta mercados correlacionados contados como cincuenta observaciones independientes, y el resultado luce excelente sin significar nada.
Para quién es
Cualquiera cuya decisión descanse sobre un backtest: una estrategia a punto de salir en vivo, el historial de un proveedor, una cifra que parece demasiado buena para discutirla.
Qué hace
Un núcleo de investigación determinista en Python — unas 3.500 líneas respaldadas por 103 pruebas — medido contra 370 mercados, 134.000 operaciones reales y 46 eventos independientes. El veredicto fue que no hay ventaja medible: las operaciones seleccionadas por copia rindieron +0,0200 por acción por encima de la banda de precio 0,95, mientras que comprar esa misma banda a ciegas, sin trader alguno de por medio, rindió +0,0211.
Decisiones clave
- A prueba de filtraciones por construcción: en cada señal, la habilidad de un trader se calcula solo con mercados ya resueltos en ese momento, nunca con lo que ocurrió después.
- Intervalos bootstrap agrupados por evento, para que cincuenta mercados correlacionados dentro de un mismo evento cuenten como una observación y no como cincuenta.
- Ejecución simulada contra un libro de órdenes real, con comisiones, deslizamiento y llenados parciales, en lugar de suponer que cada orden se ejecutó al punto medio.
- Se publicó el resultado negativo en vez del halagador, y una estrategia quedó marcada como INCONCLUSIVE porque lo que estaba roto era la medición, no el modelo.
Lo que aprendí
Encontré cuatro errores en mi propia metodología, y cada uno ya había fabricado un falso positivo convincente — incluida una estrategia con 100% de aciertos en 36 operaciones cuya ventaja real sobre la entrada a ciegas era del 0,8%. Ordenar traders por tasa de acierto no encuentra habilidad: encuentra a quien compra casi-certezas a 98 centavos. Una respuesta equivocada y segura cuesta más que ninguna respuesta.
Hacia dónde va
Convertir las comprobaciones de filtración y agrupamiento en un banco de pruebas que pueda apuntarse al backtest de otra persona, para aplicar el mismo rigor a una estrategia que no escribí yo.
Solo sobre el papel — sin operativa en vivo y sin dinero real, por diseño.