12 de noviembre de 2026 · ejecución

Tu backtest obtuvo fill al cierre oficial. Nunca entraste en la subasta.

Tu backtest obtuvo fill al cierre oficial. Nunca entraste en la subasta.

El cierre oficial en un archivo de renta variable parece cualquier otro precio. Timestamp 16:00:00 Eastern, un número, listo para el fill. Las señales diarias lo marcan. Los rebalanceos lo pegan. Un agente de research lo tratará como una cotización que estaba sentada en el libro, esperándote.

El cierre es una subasta, no una cotización. Es el precio de uncross de las órdenes on-close que tenían que ser aceptadas antes de un cutoff. Si el backtest hizo fill ahí sin unirse a ese lote, tomó un print del que no habrías formado parte.

Hacer fill a las 16:00 como si el uncross fuera una orden a mercado

El atajo habitual es: calcular la señal en el cierre o justo antes, hacer fill al cierre oficial, estampar 16:00. Un martes tranquilo en AAPL la mentira son unos céntimos. En los días que dominan un libro de rebalanceo diario, es toda la operación.

A las 16:00:00.000 el cruce de cierre está en marcha, o acaba de ejecutarse. Una orden marketable que envías entonces no entra en ese cruce. Aterriza en lo que queda: tamaño displayed residual, un odd lot, extended hours en ARCA o Nasdaq. Ese print puede estar a dos céntimos del cierre oficial, o a cuarenta puntos básicos, y es un pool de liquidez distinto. En una reconstitución de Russell, un fin de mes o un viernes de triple witching, el cierre suele ser una porción de dos dígitos del volumen del día. Esa era la liquidez. Tú no estabas en ella.

3:50Cutoff on-close de NYSE (ET)
3:55Cutoff del closing-cross de Nasdaq (ET)
~10%volumen large-cap típico en el cierre

Lo operamos en paper por accidente. Un ajuste de parámetro aterrizó a las 15:48. El backtest aun así hizo fill de cada nombre al cierre oficial. El OMS envió órdenes a mercado ordinarias a las 16:00:03 porque nadie había cableado MOC. Prints after-hours, un puñado de rechazos y un shortfall de 19 puntos básicos frente al archivo en un día en que el archivo decía que estábamos flat al cierre. La estrategia no se había roto. Se había roto la regla de fill.

Sigo pensando en las 15:49 como un lugar físico. Alguien está cambiando una ponderación. Alguien más mira el reloj. Al cutoff no le importa quién de los dos tiene razón.

MOC es la orden que realmente solicita ese uncross, y ni siquiera MOC es una promesa. Un halt, una pausa LULD, una subasta cancelada, un nombre que nunca abrió: puedes estar flat a las 16:00 con un on-close working que muere. LOC tiene permitido fallar por completo. Si el uncross es $40.12 y tu límite es $40.00, no tienes nada. Un montón de backtests siguen anotando el cierre.

Peor aún, algunos archivos de vendor guardan un cierre composite que nunca se imprimió en ningún venue. No puedes unirte a un composite. Si la estrategia hubiera enviado NYSE MOC, el fill que importa es el uncross de NYSE, en el tamaño que la subasta habría absorbido.

Llamar cierre al último print de horario regular

Algunos pipelines rechazan el cierre oficial por principio y toman el último print SIP antes de las 16:00, porque ese print al menos "ocurrió." En un mega-cap, el last y el official suelen quedar a un céntimo o dos y no te darás cuenta. En un mid-cap el último print puede ser 200 acciones a las 15:59:51, firmado por quien levantó un display residual. El cierre oficial dos segundos después es un uncross de un millón de acciones a un precio distinto.

El índice, la cesta de creación del ETF y cada rebalanceo MOC operaron el uncross. Tu backtest operó el residual. Y un último print no viene con tu tamaño adjunto. Si ese print es de 400 acciones y tu clip es de 5,000, no obtuviste ese precio. Obtuviste un timestamp que casualmente era el último.

He visto un archivo mid-cap donde last-print frente a cierre oficial se movió 28 céntimos un jueves de rebalanceo. El backtest que usó last parecía más "consciente de la microestructura." Solo era un mercado distinto y más delgado, y aun así asumía que podríamos haber sido esas 200 acciones.

Deslizar el fill a la apertura de mañana para ser conservadores

El tercer apaño aparece en code review como un comentario: no asumas que podemos operar el cierre, así que haz fill en la siguiente apertura. Suena adulto. Construye otra estrategia.

Una señal close-to-close ejecutada en la siguiente apertura se ha comido el gap overnight. Para muchos factores de renta variable ese gap es una parte grande del movimiento que creías tuyo. Hacer fill en la apertura no hace el backtest cuidadoso. Reubica el P&L en una sesión que no te habías propuesto operar, y te deja caer en una subasta de apertura que tampoco modelaste.

Sobre el papel, el destrozo es fácil de malinterpretar. El P&L diario del backtest sigue alineado con la señal. El libro paper carga una noche de gap de índice y una mañana de slippage del cruce de apertura. Luego la gente discute sobre implementation shortfall cuando la descripción honesta es que los dos sistemas no están haciendo la misma operación.

Pero la apertura también es una subasta. Si te perdiste el cutoff de ayer, no obtienes automáticamente un last limpio a las 9:30. Obtienes mecánica MOO/LOO, un imbalance y un gap. Llamar a eso un fill de cierre conservador solo esconde un segundo cruce no modelado bajo un comentario virtuoso.

Fill que anotasteLo que el venue realmente necesitabaCómo se ve el destrozo
Cierre oficial, sin tipo de ordenMOC o LOC aceptada antes del cutoff de ese venuePrint after-hours, un rechazo o un precio composite que nadie hospedó
Último print SIP antes de las 16:00Una operación de la que podrías haber formado parte, en tu tamañoUn residual de 200 acciones tratado como fill de un clip
Siguiente apertura como un cierre "más seguro"Un modelo de cruce de apertura, más el gap overnightOtra estrategia, sigue siendo una subasta, sigue sin entrar
Si la cuenta paper no puede enviar MOC o LOC, el backtest no obtiene el cierre oficial. Cambia el fill. No aproximes el uncross con una orden a mercado a las 16:00.

La distinción honesta es pequeña. O el contrato de research dice que estamos en el cierre, en cuyo caso la orden es on-close, con timestamp anterior a las 15:50 en NYSE o las 15:55 en Nasdaq, dimensionada contra el volumen de cierre esperado, y autorizada a expirar sin fill si es un LOC. O no estamos en el cierre, en cuyo caso after-hours o next-open es una política con nombre y su propia subasta, y la curva de equity deja de llevar una etiqueta de 16:00.

Ahora hacemos fallar un backtest que anota el cierre oficial sin una orden on-close sentada dentro del cutoff de ese venue. Ha matado algunas curvas de señales diarias bastante bonitas. Esas curvas nunca fueron ejecutables al precio que afirmaban.

backtestingmicroestructura de mercadorenta variablesubasta de cierreejecución
← Todos los artículos