1 de septiembre de 2026 · acciones corporativas

Datos ajustados por splits, al detalle: qué le hace el split de 10 por 1 de NVDA a cada fila

Datos ajustados por splits, al detalle: qué le hace el split de 10 por 1 de NVDA a cada fila

Esta es una fila de un archivo diario de acciones. NVDA, viernes 7 de junio de 2024, la última sesión antes de que entrara en vigor el split de 10 por 1.

Columna Valor
fecha 2024-06-07
cierre 1208.88
volumen 42,800,000 (redondeado)
split_factor 1.0
dividendo 0.00
adj_close 120.8781

He omitido deliberadamente las columnas OHLC de esta vista. Vuelven casi al final, y son las que fallan sin que nadie se dé cuenta.

Todo lo interesante de esta fila está en la diferencia entre la segunda columna y la sexta. El 7 de junio, el mercado marcó 1208.88. Nadie volverá a operar a ese precio, porque la acción a la que se refería ya no existe como unidad. El 120.8781 es una reconstrucción, y no se obtiene simplemente dividiendo 1208.88 entre diez. Veamos cada columna.

10:1divisor aplicado a todas las filas anteriores
0.99991789factor de dividendo, aplicado un día después
$90comisión fantasma por operación de ida y vuelta
5.6pparrastre anual inventado por un divisor

fecha: 2024-06-07, y las otras dos fechas que importan más

El split se anunció el 22 de mayo de 2024 junto con los resultados. La fecha de registro fue el 6 de junio. La negociación con el ajuste del split comenzó el lunes 10 de junio. Son tres fechas, y la columna split_factor de tu proveedor corresponde exactamente a una de ellas, normalmente a la primera sesión con el split ajustado. Un desfase de un día es el error de acciones corporativas más común que veo, y no se detecta en los agregados: la curva de capital sufre un gap del 90% a la baja o del 900% al alza en un solo día; el Sharpe calculado sobre 2,000 días apenas lo refleja, pero el drawdown máximo o una regla de stop-loss sí lo notan sin duda.

El dividendo también tiene un problema de fechas, y en 2024 cambió para todos. El dividendo trimestral de NVDA tras el split, de $0.01, tuvo fecha de registro el 11 de junio. La liquidación en EE. UU. pasó a T+1 el 28 de mayo de 2024, lo que significa que la fecha exdividendo y la fecha de registro ahora coinciden. Cualquier cargador que calcule la fecha exdividendo como «fecha de registro menos un día hábil» —lo correcto durante décadas— empezó a generar ajustes por dividendo en silencio una sesión antes, en junio de 2024. No se produce ningún error. El factor simplemente queda en la fila equivocada.

El fallo del código de acciones corporativas nunca es una excepción. Es una cifra desplazada un día que parece completamente verosímil.

close: 1208.88 — el precio que no aparece en el archivo

Este es el precio registrado en bruto y, en la mayoría de los flujos de investigación, solo existe como una columna que nadie lee. Las señales se calculan sobre adj_close. Y cualquier regla que haga referencia a un nivel de precio por acción en dólares ahora apunta a una cifra que ningún participante del mercado vio jamás.

La escalada de NVDA hacia los $1,000 en la primavera de 2024 fue real y estuvo respaldada por un flujo de órdenes real: los precios redondos atraían órdenes, las opciones se concentraban en strikes de 950 y 1000, y cada acercamiento traía riesgo en los titulares. En los datos ajustados, todo ese episodio ocurre a $100. Si pruebas el comportamiento en niveles psicológicos, la lógica de cierre de gaps cerca de números redondos o una característica de proximidad al strike, lo haces sobre una serie de precios reescalada por un evento que todavía no había sucedido.

Lo mismo ocurre con los filtros del universo. «Excluir acciones por debajo de $5» es un indicador válido de un conjunto real de problemas de microestructura: spreads relativos amplios, reglas de margen y regímenes de tick. Si lo aplicas a datos históricos ajustados, excluyes empresas durante periodos en los que cotizaban a $30 y que luego hicieron un split inverso. Si filtras por «precio superior a $500», NVDA desaparece silenciosamente de todos los años anteriores a junio de 2024. Los filtros de precio deben aplicarse a precios sin ajustar. Punto.

split_factor: 1.0 — y el 0.1 de la fila siguiente

El factor es un producto acumulado que se calcula hacia atrás desde hoy. Cada fila anterior al 10 de junio de 2024 lleva un 0.1 de este split, multiplicado por el 0.25 del split de 4 por 1 de 2021, y por lo que hubiera antes. El historial de NVDA anterior a 2021 se escala por 0.025, así que una barra que marcó $200 en 2019 aparece como $5.00.

Hay dos consecuencias que conviene tener presentes. Primero, el historial ajustado cambia cada vez que se produce una nueva acción corporativa. Un backtest que ejecutaste en mayo de 2024 y otro que ejecutas hoy arrojan cifras distintas con el mismo código y las mismas fechas; si guardaste características en caché por símbolo y fecha sin registrar la versión de los datos, ahora tienes una caché que mezcla dos escalas. Incluimos la época de ajuste en la clave de las características precisamente por este motivo; aprendimos la lección tras una tarde bastante confusa.

Segundo, con un factor de escala de 0.025, una acción que cotizaba en incrementos de $0.01 ahora se mueve en incrementos de $0.00025. La lógica de redondeo al tick, las comparaciones de «¿es un nuevo máximo?» y las comprobaciones de igualdad de números de punto flotante: todo opera ahora muy por debajo de la resolución real que tenía el mercado.

dividendo: 0.01 — la cifra que saca de la cuadrícula todos los precios anteriores

Un centavo. Parece ruido, y es la razón por la que adj_close muestra 120.8781 en lugar de un 120.888 redondo.

El cierre del 10 de junio fue 121.79. El factor exdividendo es (121.79 − 0.01) / 121.79 = 0.99991789. Ese factor se multiplica por todos los precios anteriores al 11 de junio, así que el 120.888 ajustado por el split pasa a 120.878074. Es una diferencia pequeña, permanente, que se aplica de nuevo en cada una de las más de sesenta fechas exdividendo del historial de NVDA. Lo que importa es el efecto acumulado: para cuando llegas a 2015, miras un precio multiplicado por docenas de factores algo irracionales. Ningún precio histórico ajustado cae exactamente en la cuadrícula de centavos.

Eso significa que toda comparación de == con un nivel redondo es falsa, que toda comprobación de «¿tocamos el precio límite?» requiere una tolerancia y que el OHLC reconstruido ya no cumple la invariante de que low ≤ open ≤ high después de un redondeo ingenuo a 4 decimales. También significa que adj_close es una serie de rentabilidad total, mientras que close es una serie de rentabilidad del precio; si calculas los retornos con una y los drawdowns con la otra, mezclas dos definiciones distintas de lo ocurrido.

volumen: 42,800,000 — el divisor que nadie aplica de forma coherente

Hay que multiplicar por 10 el volumen de acciones para poder compararlo con las sesiones posteriores al split. Algunos proveedores lo hacen. Otros, no. Algunos ajustan el OHLC y dejan el volumen en bruto; es la peor opción de las tres, porque el archivo parece coherente hasta que multiplicas precio por volumen.

Lo sensato es dejar de usar el volumen de acciones como característica y usar el volumen en dólares, que por definición no cambia con los splits. Un filtro de liquidez basado en el volumen medio en dólares de 20 días no requiere ninguna lógica de ajuste y no puede fallar por una acción corporativa. La invariancia de las características es mejor que tener un código de ajuste correcto, porque hay que seguir acertando con ese código.

Tres formatos de archivo de proveedor, tres modos de fallo.

Qué incluye Qué falla
Solo cierre ajustado, OHLC en bruto La lógica de gaps y movimientos intradía calcula entre dos escalas de precios
OHLC ajustado, volumen en bruto Volumen en dólares desviado por el ratio del split; fallan los filtros de ADV
OHLCV en bruto más columnas de factores Nada, si los aplicas. Todo, si los aplicas en la fila equivocada

Las columnas que faltan: adj_open, adj_high, adj_low

Ahora volvamos a incluir el OHLC. Si un feed solo ajusta el cierre y tu estrategia calcula un gap nocturno como open / prev_adj_close − 1, el 10 de junio de 2024 obtiene 120.37 / 120.8781 − 1, una cifra válida, de aproximadamente −0.4%. Ejecuta el mismo código para el 7 de junio de 2024 y calcula la apertura con el archivo en bruto (cerca de 1207) frente a un cierre ajustado por 0.025 debido a splits anteriores, lo que da un gap de varios miles por ciento.

Cualquier operación que mezcle una columna en bruto con una ajustada hace cálculos entre dos sistemas de coordenadas. Ahora trato las lecturas con ajustes mezclados como una aserción en el nivel del cargador, en vez de dejar que cada investigador tenga que acordarse, porque no se acordarán, yo incluido.

Lo que ninguna columna te dice: cuántas acciones habrías comprado realmente

Este es el caso que le cuesta dinero al modelo de costes del backtest, y la razón por la que escribo sobre un split de acciones.

Las comisiones de acciones en EE. UU. suelen cobrarse por acción. Supongamos $0.005, con un mínimo de $1.00 por orden, una tarifa fija común en los brókeres minoristas. Ahora prueba un backtest con una posición de $400,000 en NVDA un año antes del split, cuando el precio en bruto rondaba los $400 y el ajustado aparece como $40.

Acciones Comisión
Lo que ocurrió realmente (precio en bruto de $400) 1,000 $5.00
Lo que ve el backtest (precio ajustado de $40) 10,000 $50.00

La misma exposición, la misma operación, 10 veces el coste modelado. Son $45 ficticios por tramo, $90 por operación de ida y vuelta, y una estrategia con rotación diaria acumula unos $22,000 al año en costes que nunca existieron. En una cartera de $400k, son 5.6 puntos porcentuales de rentabilidad anual, fabricados por completo por un divisor. En este caso, hace que el resultado parezca peor que la realidad, algo que se puede sobrellevar.

Los splits inversos funcionan al revés, y esa es la dirección peligrosa. Un split inverso de 1 por 10 hace que el historial ajustado muestre precios 10 veces más altos y recuentos de acciones 10 veces más bajos que los que habrías negociado. El modelo de costes divide silenciosamente entre diez la comisión por acción. Los splits inversos son habituales en el universo de pequeña capitalización, por debajo de $5 y con spreads amplios, donde las comisiones por acción son el mayor concepto individual de la estructura de costes. El backtest favorece justo a las empresas que debería penalizar.

La solución es sencilla y estructural: dimensiona las posiciones en dólares, conviértelas en acciones usando el precio sin ajustar de esa fecha y cobra las comisiones por acción sobre ese recuento. Conserva para siempre la columna de precios en bruto en el cargador, no como registro de auditoría, sino como entrada activa del motor de ejecución.

  1. Señales y retornos: serie ajustada.
  2. Recuento de acciones, comisiones por acción, redondeo al tick y filtros por nivel de precio: serie sin ajustar.
  3. Liquidez y capacidad: volumen en dólares, que no requiere ninguna de las dos.

Seis columnas, una fila, una acción corporativa bastante corriente anunciada con tres semanas de antelación que no sorprendió a nadie. El mercado la procesó en una mañana. Reconstruirla fielmente en un flujo de investigación es bastante más difícil, y la señal de que un flujo no lo ha hecho casi nunca es un mensaje de error.

acciones corporativasajuste por splitacciones estadounidensesingeniería de datosbacktesting
← Todos los artículos