Formación en métodos de investigación · Quantic Eagle opera solo con capital propio. Sin fondos de clientes, asesoramiento financiero ni señales de trading.
El test pasa.
¿Has comprobado lo necesario?
Estás a punto de sustituir una función del backtest, pedir a la IA una segunda revisión o usar un indicador para decidir una compra. ¿Qué puede fallar aunque el programa produzca un resultado? Sigue tres casos inventados y las comprobaciones que te ayudan a preparar.
Los casos y los datos son inventados para mostrar errores que puedes buscar en tus pruebas. Cada figura empieza en «Con error». Haz clic en «Caso corregido» para ver el resultado tras la corrección explicada debajo. Vuelve a pulsar «Con error» para compararlo con el resultado inicial.
Cada caso explica la situación, qué debes comparar y qué queda por comprobar. El botón de descarga guarda la figura en el estado que estás viendo.
QE-CONTRACT-01 / 1.0
Dos programas pueden coincidir y equivocarse juntos
Quieres elegir qué estrategia seguir investigando y miras el beneficio de un backtest, una simulación de compras y ventas con datos históricos. Si el programa resta menos comisión de la prevista, una estrategia puede parecer mejor solo porque sus gastos están mal calculados. Dos programas pueden dar el mismo resultado y ocultar este problema si comparten la función que convierte la tarifa.
Empezamos con una cuenta que puedes hacer a mano: te ayuda a ver qué comprobar antes de confiar en los cálculos de un sistema más grande. Calcula la comisión esperada con la tarifa y el importe de la operación, comprobados por separado del programa.
En este caso inventado compras acciones por un importe total de 8.000 €: es el valor de la compra, no el número de acciones o lotes. La comisión supuesta es 1 punto básico, es decir, el 0,01% de ese importe. El simulador registra 0,008 € y un segundo programa devuelve la misma cifra. Calcula tú la comisión antes de abrir la solución.
Consulta la solución después de escribir tu decisión
Para calcular el 0,01% de 8.000 €, divide 0,01 entre 100 y multiplica: 8.000 × 0,0001 = 0,80 €. Los 0,008 € indicados por ambos cálculos son cien veces menos de lo debido. La coincidencia no demuestra que la tarifa se haya aplicado bien: dos cálculos pueden repetir la misma conversión incorrecta. Compara el coste registrado en el backtest con los 0,80 € calculados a mano a partir de la tarifa supuesta. Para una venta posterior, usa el importe de esa venta y la tarifa aplicable.
El archivo gratuito contiene el cálculo, el resultado esperado y otras dos comparaciones sobre ventanas y posiciones abiertas. Son ejemplos inventados que se ejecutan con Python sin bibliotecas adicionales. El proyecto final de la guía conecta estos controles con datos, modelo, órdenes, costes y dosier.
Descarga el programa y verifica los cálculosGuarda el archivo como QE-CONTRACT-01.py. Abre un terminal en la misma carpeta y ejecuta el siguiente comando; el resultado contiene unidades, importes esperados y cálculos.
python QE-CONTRACT-01.pyLa fecha pasa el control. El valor viene del futuro.
Este caso utiliza datos inventados.
Quieres probar una estrategia que usa un indicador económico para decidir cuándo comprar. Descargas un archivo histórico de la fuente que lo publica. Puede contener valores que la fuente corrigió después de la primera publicación, por ejemplo al recibir nuevos datos. Si usas hoy el valor corregido para simular una decisión anterior a la corrección, das al sistema información que entonces no podía tener. Comprobar solo la primera fecha de publicación no detecta ese error.
El caso es inventado: un organismo estadístico estima cuánto ha cambiado la producción industrial de enero respecto a diciembre en un país imaginario. Publica una primera estimación del +2% y, tras recoger más respuestas, la revisa al −1%. La estrategia del ejercicio permite comprar solo cuando la variación es positiva. Tu programa importa cada publicación a su archivo de datos; la columna «Importación al archivo» indica cuándo entra el dato en el archivo usado por el programa. Enero es el mes medido: los valores solo pueden conocerse en las fechas de febrero indicadas. Todos los horarios son UTC.
Tabla del caso: desplázate horizontalmente si hace falta.
| Versión | Variación · % | Publicación | Importación al archivo |
|---|---|---|---|
| 1 | 2 | 2026-02-01 09:00 | 2026-02-01 09:05 |
| 2 | −1 | 2026-02-03 09:00 | 2026-02-03 09:01 |
En tus notas, en papel o en un archivo, escribe una fila para D1, D2, D3 y D4 de la segunda tabla. Indica en cada una qué valor había entrado ya en el archivo en ese instante y si la regla permite comprar. Si todavía no ha llegado ninguna publicación del indicador de enero, anota «dato no disponible: decisión bloqueada». Cero sería una variación nula realmente medida: no representa el dato que falta. Después abre la solución.
| Decisión | Instante UTC |
|---|---|
| D1 | 2026-02-01 09:02:00 |
| D2 | 2026-02-01 09:10:00 |
| D3 | 2026-02-03 09:00:00 |
| D4 | 2026-02-03 09:02:00 |
Abre la solución después de decidir
Tabla del caso: desplázate horizontalmente si hace falta.
| Decisión | Instante UTC | Variación utilizable · % | Acción |
|---|---|---|---|
| D1 | 2026-02-01 09:02:00 | — | No disponible |
| D2 | 2026-02-01 09:10:00 | 2 | Compra permitida |
| D3 | 2026-02-03 09:00:00 | 2 | Compra permitida |
| D4 | 2026-02-03 09:02:00 | -1 | Sin compra |
En D1 la primera estimación ya es pública, pero aún no ha entrado en el archivo del programa: hay que bloquear la decisión. D2 y D3 pueden usar +2%; en D3 la corrección a −1% está publicada, pero se importa un minuto después. D4 usa −1%, así que la regla no autoriza comprar. Si el backtest utiliza hoy −1% también en D2 y D3, descarta compras que entonces estaban permitidas. Atribuirle la fecha de publicación anterior oculta el error: vincula cada valor a la publicación que lo contenía.
Conserva todas las versiones de cada periodo observado. En cada decisión admite solo las ya publicadas y recibidas, y elige la más reciente entre ellas. Aquí se admite la igualdad porque los eventos de recepción en el mismo instante preceden a la decisión; si los relojes o el orden son inciertos, hace falta una regla más prudente.
Guarda la descarga como QE-VINTAGE-01.py y ejecútala con Python 3.10 o posterior. Incluye datos y cálculos; no requiere registro, servicios externos ni bibliotecas adicionales.
python QE-VINTAGE-01.pyLa comprobación requiere conservar las versiones y los horarios necesarios; no mide la demora de un proveedor real, la capacidad predictiva ni el beneficio. Otra prueba añade datos futuros y comprueba que las decisiones pasadas no cambien. Es útil, pero puede no detectar este error: si el archivo inicial ya asignaba el valor revisado a una fecha antigua, añadir filas no corrige ni revela necesariamente esa fila incorrecta.
Para profundizar en la distinción entre periodo observado y versión disponible, consulta la documentación de FRED/ALFRED sobre real-time periods. Esa fuente utiliza fechas; los horarios intradiarios de este caso son inventados.
Las puntuaciones son correctas. Están asociadas a las acciones equivocadas.
Quieres acelerar los backtests y reescribes la función que selecciona la acción que comprar. El modelo puntúa cada acción: A = 0,7 y B = 0,6. Todavía no ha elegido una compra; la regla siguiente debe comprar únicamente la acción con mayor puntuación. En la nueva función ordenas las acciones como B, A, pero conservas las puntuaciones en el orden original. El programa las empareja por posición en la lista: ahora atribuye 0,7 a B y 0,6 a A.
Los números no cambian. Pero 0,7 queda asociado a B, y el programa compra B.
El modelo no ha cambiado su previsión. El paso que vincula números y acciones ha intercambiado A y B. Una comprobación que compara solo la lista [0,7; 0,6] pasa: los números siguen iguales. Sin embargo, la cuenta simulada contiene B en lugar de A. Desde ese momento pueden cambiar ganancias, pérdidas y compras posteriores.
El modelo devuelve una puntuación por acción. El fallo surge al emparejar dos listas con distinto orden.
La comprobación necesaria
Antes de sustituir la función, prueba las mismas acciones en otro orden. Compara las parejas acción–puntuación y la acción seleccionada. Si ambas son admisibles, debe ganar A en los dos órdenes. Después parte de la misma cuenta y compara las decisiones en secuencia: una compra distinta también cambia el dinero y las posiciones disponibles más adelante.
Qué demuestra. El programa adjunto reproduce este error de asociación con datos inventados. No atribuimos esta causa al caso histórico del laboratorio. La comparación no simula ejecuciones del bróker ni demuestra beneficios.
En tu proyecto
Prueba dos variantes antes de abrir las soluciones del programa: A queda excluida de las acciones admisibles; o ambas acciones tienen 0,7 y la regla declarada resuelve el empate eligiendo la primera en orden alfabético. ¿Debe ganar siempre A? Anota la acción esperada en cada caso e indica qué campos compararías para distinguir un error de asociación de una elección distinta pero coherente con las reglas.
Dos agentes dicen «todo correcto». ¿Has obtenido dos comprobaciones?
Un agente ha preparado tu backtest y el resultado parece prometedor. Antes de dedicar más tiempo a la estrategia, quieres una segunda revisión de los costes: un beneficio inflado por comisiones incorrectas podría llevarte a elegir el proyecto equivocado. Encargas la comprobación a dos agentes. Ambos reciben backtest.py, el registro de operaciones trades.csv y la tarifa broker-fees.txt. El primero entrega su informe. Inicias el segundo en la misma carpeta, donde ahora también está ese informe: ya puede ver que el primero no señaló problemas.
El segundo agente también recibe el informe del primero. Dos aprobaciones no demuestran dos revisiones independientes.
Buscas a alguien que cuestione el resultado. Si el segundo agente parte del «todo correcto» del primero en vez de reconstruir los costes, una comisión incorrecta puede quedarse sin una nueva comprobación. Podrías confiar en el beneficio por tener dos aprobaciones, sin saber qué revisiones las sustentan. La figura muestra un informe que se ha hecho visible; no demuestra que haya influido en el agente.
La comprobación necesaria
Antes de iniciar cada revisión, comprueba qué archivos y mensajes anteriores puede consultar el agente: escribir «trabaja de forma independiente» no quita un informe de la carpeta. Pídele que indique el paso comprobado, los importes reconstruidos y la tarifa utilizada. Recoge los informes por separado y vuelve a los originales para evaluar tanto los acuerdos como las objeciones.
Qué demuestra. La figura y el programa reconstruyen los materiales asignados en un caso inventado; no llaman a una IA ni miden su sesgo. Separar los informes permite una nueva lectura sin la conclusión anterior, pero no garantiza que los agentes encuentren todos los errores.
En tu proyecto
Quieres una revisión independiente de los costes. Has preparado backtest.py, trades.csv, broker-fees.txt y el informe que ya escribió el primer agente. ¿Qué archivo dejas fuera antes de iniciar el segundo? ¿Cuáles conservas para que pueda repetir el cálculo? Prueba también el otro objetivo: si solo quieres terminar antes la revisión de muchos CSV, asigna grupos distintos y comprueba qué archivos se han examinado. Repetir un grupo no completa el que quedó fuera.
Falta un precio. La media cambia y provoca otra compra.
Quieres usar una media de precios para decidir una compra. El programa puede devolver un número plausible aunque falte una sesión en la descarga: comprueba las fechas utilizadas antes de pasar la media al modelo. En la apertura de la sesión 4 el precio disponible es 10 €. La regla inventada compra solo si ese precio supera la media de los cierres de las tres sesiones anteriores: 1, 2 y 3. Los cierres originales son 10, 11 y 12 €, así que la media es 11 € y no se compra. Pero en el CSV descargado falta la sesión 2. La función toma los tres últimos precios presentes e incluye 5 € de la sesión 0 en lugar de los 11 € ausentes. La media baja a 9 €.
Precio actual 10 € > media errónea 9 €: el programa decide comprar.
La función calcula (5 + 10 + 12) / 3 = 9 €. No es solo un indicador incorrecto en el informe: como 10 supera 9, el programa autoriza una compra que la regla sobre las tres sesiones requeridas habría descartado. Puede ocurrir cuando una descarga pierde una fila y el cálculo usa las tres últimas filas presentes sin comprobar a qué sesiones pertenecen.
La comprobación necesaria
Antes de pasar la media a la regla o al modelo, determina las sesiones necesarias con el calendario del mercado. Comprueba que haya un único cierre por sesión y que estuviera disponible antes de la compra. El control debe impedir usar una sesión más antigua para completar el número de datos. En el programa adjunto puedes ver tanto la compra errónea como el bloqueo que la impide.
Qué demuestra. La regla y los precios son inventados para mostrar una decisión alterada por los datos. No proponemos esta media como estrategia rentable ni calculamos el rendimiento de la compra.
En tu proyecto
Prueba un cierre presente en el archivo, pero recibido después de la decisión: ¿puede entrar en la media? Después prueba una fila duplicada. Son problemas diferentes de una sesión ausente, pero ninguno debe quedar oculto contando solo tres números. Distingue también el comienzo de la serie, cuando aún no existen tres cierres, de una sesión que falta más adelante.
Prueba estos errores antes de usar los resultados en tu sistema
Comprueba los datos antes de convertir una media en señal, y las asociaciones antes de convertir una puntuación en compra. El programa siguiente reproduce los tres mecanismos del Museo. Primero intenta prever las primeras seis variantes: una acción excluida, un empate, una conclusión anterior compartida con el segundo revisor, una tarifa olvidada, un cierre tardío y una fila duplicada.
En el séptimo ejercicio, M1, debes elegir entre dos acciones: el precio ausente puede cambiar primero la admisibilidad y después la elección, mientras las puntuaciones siguen iguales. Compara datos incompletos, el control activo y el dato restaurado. Explica en tus notas por qué la primera decisión distinta no identifica por sí sola la causa.
Reproduce los casos y combina los controles
Descarga el JavaScript y el JSON en la misma carpeta. Si tienes Node.js, abre un terminal en esa carpeta y ejecuta los comandos siguientes. El primero muestra los casos explicados en las figuras. El segundo muestra las variantes: anota antes el resultado que esperas y su motivo. El tercero muestra los resultados para compararlos con tus respuestas.
Datos inventados y variantes · JSON · Programa autónomo · JavaScript
node QE-TRADING-CHECKS-01.js
node QE-TRADING-CHECKS-01.js --exercises --lang es
node QE-TRADING-CHECKS-01.js --solutionsEn la salida, BUY significa compra autorizada, NO_BUY ninguna compra según la regla y BLOCKED decisión bloqueada por datos incompletos o no utilizables. Con el precio ausente, el cálculo sin control decide BUY con una media de 9; la comprobación bloquea la decisión. Tras recuperar el precio original, la media es 11 y el resultado válido es NO_BUY.
QE-TRADING-CHECKS-01 · 1.1. El programa no llama a una IA, no envía órdenes ni calcula rendimientos. Reconstruye asociaciones, materiales entregados a los revisores y decisiones con los datos inventados descritos arriba.
Una comprobación más breve: solo cobertura y media
Descarga estos dos archivos en la misma carpeta y ejecuta el comando con Node.js. Contienen los datos inventados del caso de la ventana: primero incompletos y después con la observación original recuperada.
Datos y resultados esperados · JSON · Comprobación legible · JavaScript
node QE-WINDOW-01.js QE-WINDOW-01.jsonEn el caso defectuoso, la media de los tres últimos valores disponibles es 9, pero falta el instante 2: la comprobación devuelve coverage_pass: false y mean: null. El caso corregido devuelve true y 11. El programa completa la verificación cuando detecta el fallo previsto: un test correcto puede confirmar que una entrada debe rechazarse.
QE-WINDOW-01 · versión 1.1. El programa comprueba el calendario declarado, los duplicados y la disponibilidad antes de decidir. No recupera ni inventa datos, ni certifica la procedencia real del archivo.
La guía está en preparación. Los recursos de este sitio son gratuitos. Puedes pedir un único correo cuando esté lista; no se admiten compras ni reservas.
Avísame cuando esté listaElaborado por Quantic Eagle LTD · Formación general en métodos de investigación. Quiénes somos.