Saltar al contenido
Recorrido formativo Plata Método repetible

Costes de transacción en backtests

Cómo simular ejecuciones, comisiones y costes en backtests sin contar dos veces spread y slippage, con un ejemplo del bruto al neto.

Cita esta entrada

Esta referencia cita la entrada de Cyclepedia. Los documentos en los que se basa figuran en las fuentes de la entrada.

Los costes de transacción en backtests son los cargos y efectos de ejecución que separan el resultado teórico del simulado. La señal y la elección de la orden utilizan información ya disponible. Tras el envío, el simulador reconstruye los eventos posteriores cronológicamente: puede usar las cotizaciones y volúmenes que llegan después para simular una ejecución, sin anticiparlos a la estrategia. Los parámetros del modelo de costes también deben estimarse sin utilizar el periodo evaluado.

A quién va dirigido — A quien pase de señales teóricas a órdenes simuladas y necesite saber si la ventaja sobrevive a la implementación. Restar una comisión fija no basta cuando el spread, el impacto, el préstamo, la financiación y la probabilidad de ejecución cambian según el instrumento, el momento y la cantidad.

En palabras sencillas — La señal dice qué se desearía comprar o vender. El modelo de costes pregunta si realmente habría sido posible hacerlo, cuándo, en qué cantidad y a qué precio.

De los precios de referencia a 88 euros netos100 acciones · entrada y salida completas · valores hipotéticos. Desvíos ya en las ejecuciones: −4 −4. Comisiones aparte: −4. Se excluyen otros cargos.De los precios de referencia a 88 euros netos100 acciones · entrada y salida completas · valores hipotéticosDesvíos ya en las ejecuciones: −4 −4. Comisiones aparte: −4. Se excluyen otros cargos.1Teórico1002Entrada−43Salida−44Ejecutado925Comisiones−46Neto88Cyclepedia · diagrama didáctico condicionado, no previsión ni promesa
Operación hipotética de 100 acciones: los desvíos incluidos en los precios de ejecución no se restan dos veces.

De la señal al resultado neto

Para una posición cerrada, un cálculo conciliable parte de los precios y cantidades de ejecución simulados:

resultado neto = resultado a precios de ejecución − comisiones y otros cargos no incluidos

Si los precios de ejecución incorporan spread, slippage o impacto, esos componentes no se restan de nuevo. La comparación con una cartera teórica a precios de referencia diagnostica el implementation shortfall. Requiere el mismo horizonte de valoración y divisa, cantidades solicitadas y ejecutadas y referencias con fecha y hora. La parte correspondiente a una orden no ejecutada es una comparación contrafactual, no otra comisión que descontar de la posición efectiva. Esta distinción sigue la discusión de la SEC de 2003, §§ II.A y III.B, sobre transacciones de valores de fondos, no un modelo universal para todos los mercados.

Componente Qué representa Factores principales
Comisiones y tarifas cargos aplicables del bróker, centro de negociación, compensación, mercado e impuestos instrumento, mercado, volumen, esquema de tarifas
Spread coste de cruzar la diferencia entre bid y ask liquidez, hora del día, volatilidad, tipo de orden
Slippage diferencia entre la ejecución y el benchmark declarado latencia, gaps, profundidad, secuencia de eventos
Impacto de mercado movimiento del precio asociado a la propia demanda de liquidez tamaño, participación, urgencia, volatilidad, resiliencia
Retraso y coste de oportunidad movimiento mientras la orden espera o sigue incompleta duración, límite, competencia, deterioro de la señal
Ejecución parcial y ausencia de ejecución cantidad ejecutada inferior a la solicitada prioridad, profundidad, cancelaciones, mercado
Préstamo préstamo de valores, disponibilidad, reclamaciones y comisiones de posiciones cortas demanda y oferta de préstamo, especificidad del valor
Financiación y margen financiación de posiciones, garantías y apalancamiento tipo, divisa, haircut, duración, intermediario
Roll y base cierre y reapertura de contratos o exposiciones curva, calendario, spread entre vencimientos, liquidez

Otros elementos pueden incluir conversión de divisas, impuesto de timbre o tratamiento fiscal. Solo deben incorporarse cuando resulten pertinentes y bajo una regla documentada.

El margen es una garantía o requisito de capital, no un gasto que se resta íntegramente en cada periodo. Se modelan por separado intereses y coste de financiación del capital comprometido. En el roll se contabilizan ejecuciones y cargos de los contratos: la diferencia de precio entre vencimientos no se convierte automáticamente en otra comisión, especialmente si ya está reflejada en la curva de resultados.


Por qué un coste fijo no es universal

El supuesto de «un tick por operación» puede ser un escenario didáctico, no una propiedad del mercado. La misma orden cambia de coste entre una subasta y la negociación continua, condiciones normales y de estrés, un valor líquido y una microcap, o una orden pasiva y una agresiva. Incluso el signo del slippage puede ser favorable o desfavorable respecto al benchmark; eso no elimina el impacto ni garantiza que la mejora pueda repetirse.

Por tanto, cuando los datos lo permiten, el modelo debería depender de:

  • cantidad de la orden y valor nocional;
  • volumen disponible y tasa de participación;
  • spread y profundidad observables;
  • volatilidad y régimen horario;
  • lado, tipo de orden, urgencia y duración;
  • mercado, divisa y clase de activo;
  • préstamo, financiación y estado del contrato.

Una función sencilla que aumente con la participación puede ser más transparente que una simulación compleja sin calibrar. La complejidad debe seguir a los datos, no precederlos.


Órdenes y ejecuciones causales

La cadena correcta es: datos disponibles → señal → orden → interacción con el mercado → ejecución → posición. Una barra OHLC diaria no revela la secuencia intradiaria ni la cantidad disponible. Si dentro de una misma barra se cruzan un stop y un objetivo, el backtest no puede elegir retrospectivamente el resultado favorable. Necesita datos más granulares o una regla conservadora declarada.

En una orden limitada, que el «precio haya sido tocado» no implica automáticamente una ejecución: puede haber otras órdenes por delante en la cola o un volumen insuficiente. En una orden de mercado, el precio no está garantizado y la orden puede atravesar varios niveles. La latencia y las ejecuciones parciales modifican cantidad, riesgo y señales posteriores. Estas restricciones deben respetar el flujo descrito en data leakage y sesgo de anticipación.


Capacidad de la estrategia

La capacidad es la escala a partir de la cual el rendimiento neto, el riesgo o la fidelidad a la señal se deterioran de forma material. No es una cantidad fija válida para siempre. Depende de los activos, la rotación, la concentración, el horizonte, la concurrencia de participantes y el método de ejecución.

Una comprobación práctica repite el test con distintos niveles de capital o de participación. Para cada nivel registra:

Resultado Por qué importa
cantidad solicitada y ejecutada separa la exposición deseada de la posición obtenida
porcentaje del volumen mide la presión relativa sobre el mercado
coste medio y marginal muestra la no linealidad de la escala
órdenes incompletas identifica señales que no pueden implementarse
rendimiento neto y drawdown mide el deterioro económico
tiempo de liquidación conecta la capacidad con el riesgo de salida

La capacidad no queda demostrada por comparar únicamente el tamaño medio con el volumen medio: los días de estrés, los instrumentos concentrados y las salidas simultáneas pueden dominar el riesgo.


Protocolo de modelización

  1. Definir el benchmark. Declarar el precio y el timestamp frente a los que se mide la ejecución.
  2. Generar órdenes explícitas. Cantidad, lado, tipo, límite, duración y prioridad lógica deben derivar de la señal.
  3. Alinear calendarios, contratos y datos. Point-in-time: Reconstruir los eventos en orden temporal: la ejecución debe ser compatible con la aceptación de la orden y la liquidez disponible entonces; los datos posteriores no entran antes en las decisiones.
  4. Aplicar costes explícitos verificables. Versionar esquemas de tarifas, cambios de régimen y divisa.
  5. Modelar spread e impacto sin duplicarlos. Declarar el benchmark y la función elegida.
  6. Permitir ejecuciones parciales y no ejecuciones. La posición debe usar las cantidades realmente simuladas.
  7. Añadir costes de mantenimiento pertinentes. Préstamo y financiación siguen tasas y duración; el margen es una restricción de capital. El roll sigue contratos y calendarios.
  8. Calibrar con la realidad cuando sea posible. Comparar ejecuciones reales con previsiones por clase de orden; el paper trading sigue siendo una simulación y no demuestra cola, impacto ni ejecutabilidad reales.
  9. Ejecutar escenarios. Los casos base, favorable y severo deben variar factores observables, no multiplicadores presentados como leyes.
  10. Probar varias escalas. Publicar la curva de coste y rendimiento neto frente al capital o la participación.
  11. Congelar el modelo antes del OOS. Los parámetros y reglas utilizados en la evaluación out-of-sample no deben adaptarse a su resultado.

Ejemplo recalculable — Operación larga hipotética de 100 acciones en euros, totalmente cerrada, sin financiación, impuestos ni dividendos. Referencias de 100 al entrar y 101 al salir: resultado teórico 100 × (101 − 100) = 100 euros. Ejecuciones simuladas a 100,04 y 100,96: resultado a esos precios 92 euros. Comisiones de 2 euros por lado dejan 92 − 4 = 88 euros netos. La diferencia es 4 euros al entrar + 4 al salir + 4 de comisiones = 12 euros. Los 8 euros ya reflejados en las ejecuciones no se restan otra vez como spread o slippage.

En otro caso, una orden de 20.000 unidades ejecutada por 12.000 y después 5.000 deja 3.000 sin ejecutar: tasa de ejecución del 85%. Se contabiliza una posición de 17.000; el resultado teórico de las 3.000 ausentes pertenece a la comparación de implementación, con horizonte declarado. Escalar el capital exige recalcular precios y cantidades.


Limitaciones y comunicación

El impacto contrafactual no puede observarse con precisión: no es posible ver el mercado sin la propia orden. Los modelos calibrados en periodos tranquilos pueden fallar bajo estrés; los datos de cotizaciones no siempre reconstruyen la posición en la cola; los datos históricos de préstamo y financiación pueden estar incompletos. Por tanto, un backtest no debería presentar el coste como una verdad puntual, sino como una estimación condicional con supuestos, intervalos y escenarios.

El rendimiento bruto sigue siendo útil para estudiar la señal; el rendimiento neto es necesario para evaluar la implementabilidad. Publicar ambos, junto con la rotación, las cantidades, la tasa de ejecución y la capacidad, hace visible dónde se crea o se pierde el resultado.


Fuentes

Enlaces