Puedo sugerir una forma sencilla que no es perfecta pero es razonable y no es demasiado difícil.
Los costes de transacción cambiarán la cartera óptima
Lo que hay que hacer es tener en cuenta los costes de las transacciones. Tenga en cuenta que Engle y Ferstenberg (2007) han demostrado que la inclusión de los costes de las transacciones desplaza la frontera eficiente hacia abajo y hacia la derecha (porque hay una media y una varianza añadidas de los costes de las transacciones).
Esto conducirá a una cartera óptima diferente que si se ignoran los costes de las transacciones. Una queja común sobre la optimización de carteras de Markowitz (sin costes de transacción) es que las carteras tienen un rendimiento inferior "fuera de la muestra". La inclusión de los costes de las transacciones (media y varianza) puede reducir el problema del bajo rendimiento.
Aproximación para operaciones "pequeñas": Utilizando sólo el diferencial entre la oferta y la demanda
Para cantidades "pequeñas" de operaciones, se puede aproximar la media y la varianza de las operaciones como si se vieran afectadas sólo por el porcentaje de margen $S_i$ para el activo $i$ $$ S_i = \log(A_i/B_i) $$ donde $A_i$ es el precio de venta y $B_i$ es el precio de la oferta.
Además, hay que tener en cuenta el coste de entrada y salida, por lo que multiplicamos la media de una sola operación $E(c_i)$ y la varianza $\textrm{var}(c_i)$ del coste por 2.
Si eres paciente y esperas a un posible mejor precio antes de rendirte y cruzando la extensión (comprando a la oferta o vendiendo a la demanda), esto sería:
- media: la mitad del diferencial medio entre oferta y demanda por operación; total = $2\times\bar{S}_i/2=\bar{S}_i$ y
- varianza: Véase Variable aleatoria Rademacher; total = $2\times\bar{S}_i^2/4=\bar{S}_i^2/2$ .
Si es impaciente, su precio de ejecución es mucho más seguro (y peor):
- media: el diferencial completo por operación; total = $2\times\bar{S}_i$ y
- variación: 0.
A continuación, se resta cada uno de estos costes medios de los rendimientos esperados positivos y se añade a los rendimientos esperados negativos y se suman las desviaciones de los costes a las desviaciones de los rendimientos. O, lo que es lo mismo: $$ E(r_{i,new}) = E(r_i) - 2\textrm{sign}(r_i)E(c_i), \\ \textrm{var}(r_{i,new}) = \textrm{var}(r_i) + 2\textrm{var}(c_i). $$ Tenga en cuenta que no debe dejar que las expectativas pasen por 0. Si su rentabilidad esperada es del 5% y el coste esperado de entrada+salida es del 6%, es mejor tratarla como si tuviera una rentabilidad esperada del 0% en lugar de una rentabilidad esperada del -1% (lo que podría llevarle a ponerse en corto).
¿Debe propagar las desviaciones de los costes a las covarianzas? es decir ¿crear covarianzas a partir de correlaciones y (nuevas) varianzas? Eso depende de si crees que los costes de ejecución están correlacionados o no. Si quieres que los costes de ejecución estén correlacionados, propaga la incertidumbre; si no, sólo altera tus varianzas y no las covarianzas.
Aproximación a las operaciones de mayor envergadura: Utilización de un modelo de impacto sobre el precio
Usted menciona que quiere utilizar los diferenciales entre oferta y demanda; sin embargo, también voy a insinuar una aproximación mejor. Básicamente, podemos suponer que los costes de las transacciones tienen algunas partes y utilizar un modelo de impacto de los precios para tener una mejor idea de los costes.
Mientras que hay muchos modelos de impacto en el precio En este paso no se realiza la programación de las operaciones, por lo que se puede utilizar un modelo que podría ser inadecuado para la programación de las operaciones, pero una buena aproximación para la optimización de la cartera.
Para negociar una cantidad $Q_i$ del activo $i$ Yo usaría algo como el Torre y Ferrari (1997) modelo: $$ E(c_i) = \alpha_i + \beta_{iS} \bar{S}_i + \beta_{iQ} \sigma_i\sqrt{\frac{|Q_i|}{\bar{V}}} $$ donde
- $\alpha_i$ capta los costes fijos (como una comisión),
- $\beta_{iS}$ se pone a la altura de lo que suele pagar el tronco,
- $\beta_{iQ}$ estima el impacto permanente (y el impacto acumulado en descomposición según Obizhaeva y Wang (2013) ) pagado, y
- $\bar{V}$ es el volumen medio por periodo de negociación.
El cálculo de la varianza es complicado: hay que incorporar la incertidumbre de los coeficientes del modelo con la incertidumbre de los términos del modelo. Si tuviera que adivinar esto, esperaría algo como $$ \textrm{var}(c_i) = \sigma_\pi^2 + \hat\beta_{iS}^2 \frac{\bar{S}^2}{4} + \hat\beta_{iQ}^2 \left[ \sigma_i^2\frac{n-1}{2}\left(\frac{\Gamma(n/2)}{\Gamma(\frac{n-1}{2})}\right)^2 \frac{Q_i^2}{\bar{V}^2} + \sigma_i^2 Q_i^2\frac{\textrm{var}(\bar{V})}{\bar{V}^4}\right] $$ donde $\sigma_\pi$ es la desviación estándar de un intervalo de predicción del modelo ajustado y $n$ es el número de observaciones utilizadas para estimar $\sigma_i$ . El último término proviene del varianza de $\sigma_i$ una aproximación del método delta de un término para $\textrm{var}(1/\bar{V}))$ y el varianza de un producto de variables aleatorias .
Con estas (esperemos que sean mejores) estimaciones de $E(c_i)$ y $\textrm{var}(c_i)$ puede entonces duplicarlos (coste de entrada y coste de salida) y sumarlos como se ha hecho en el caso más sencillo de las operaciones pequeñas.