14 votos

¿Cómo construir una cartera de riesgo-paridad?

Si quisiera construir una cartera de inversión a largo plazo con dos clases de activos (bonos $B$ y Acciones $S$ ) basado en el concepto de riesgo-paridad .

Los pesos $W$ de mi cartera sería entonces la siguiente:

A continuación, el peso de los bonos: $$W_B = \textrm{Vol}(S)/[\textrm{Vol(S)}+\textrm{Vol(B)}]$$

y los pesos de las acciones $$W_S = 1 - W_B$$

Basándome en este resultado, voy a sobreponderar el activo de baja volatilidad y a infraponderar el activo de alta volatilidad.
Mi pregunta es: ¿cómo puedo calcular las ponderaciones de una cartera con varias clases de activos, 5 por ejemplo, para que cada clase de activo tenga la misma volatilidad y contribuya con la misma cantidad de riesgo a mi cartera? De los datos históricos puedo extraer la volatilidad de cada clase de activos y la correlación entre ellos.

0 votos

¿Puedes mostrarnos lo que has probado y definir algunas variables y ecuaciones? En su forma actual la pregunta está fuera de tema IMHO, ver el PREGUNTAS FRECUENTES .

0 votos

Se puede compensar parte de la "diversificación" (es diversificación sólo si los números se mantienen durante los períodos de alta tensión) aumentando el apalancamiento de los activos de baja volatilidad.

1 votos

@Bootvis: No creo que sea OT. Pero el formato es ciertamente mejorable. Pero el tema no es trivial.

22voto

m0j0 Puntos 21

La paridad de riesgo no consiste en "tener la misma volatilidad", sino en que cada activo contribuya de la misma manera a la volatilidad global de la cartera.

La volatilidad de la cartera se define como:

$$\sigma(w)=\sqrt{w' \Sigma w}$$

La contribución al riesgo del activo $i$ se calcula como sigue:

$$\sigma_i(w)= w_i \times \partial_{w_i} \sigma(w)$$

Entonces puedes demostrarlo:

$$\sigma(w)=\sum_{i=1}^n \sigma_i(w)$$

El vector de las contribuciones marginales ( $\partial_{w_i} \sigma(w)$ ) se calcula como sigue:

$$c(w)= \frac{\Sigma w}{\sqrt{w' \Sigma w}}$$

A continuación, puede encontrar la solución ejecutando la siguiente optimización:

$$\underset{w}{\arg \min} \sum_{i=1}^N [\frac{\sqrt{w^T \Sigma w}}{N} - w_i \cdot c(w)_i]^2$$ Este artículo contiene todos los desarrollos necesarios para entender cómo se derivan las fórmulas anteriores.

0 votos

¿Puede explicar qué técnicas son necesarias para ejecutar esa optimización?

1 votos

Básicamente puedes pasar esto por fmincon en MATLAB, por ejemplo. No estoy seguro de lo que quiere decir con "técnicas". ¿Busca un algoritmo de optimización específico?

0 votos

Me refería a qué paquetes/rutinas usar si estuviera haciendo esto en R.

7voto

Wim Coenen Puntos 225

Estoy muy satisfecho con la siguiente formulación equivalente para el problema de presupuestación de riesgos (tal como se presenta en Bruder, Roncalli, 2012, Gestión de las exposiciones al riesgo mediante el enfoque de presupuestación del riesgo ):

Dejemos que $b_i$ , $\Sigma_{i=1}^n b_i =1$ sean los presupuestos de riesgo, $y_i$ las ponderaciones de la cartera sin escalar y $S$ la matriz de covarianza de la varianza y $c$ arbitraria.

$$ y^* = \text{arg min}_y \sqrt{y^T S y}, \quad \text{s.t.} \sum_{i=1}^n b_i \ln y_i \geq c, \quad \sum_{i=1}^ny_i=1, \quad y_i \geq 0 $$

Ahora bien, lo bueno de esta formulación es que se trata de un programa cuadrático con restricciones convexas (suponiendo que $b_i >0$ ) que es numéricamente agradable. Además, para la implementación numérica uno quisiera dejar de lado la restricción $\sum_{i=1}^ny_i=1$ y reescalar manualmente después $x_i^* = \frac{y_i^*}{\sum_{i=1}^ny_i^*} $ . A mí me funciona mejor que la solución presentada en la otra respuesta.

1 votos

Sí, creo que este es un enfoque numérico más eficiente. No lo he utilizado en mi respuesta porque me parece menos intuitivo. Yo sólo añadiría para establecer $b_i = \frac{1}{n} ~ \forall i$ si quiere un ERC...

0 votos

Estoy teniendo dificultades para encontrar el óptimo en Matlab. Sigo obteniendo un 50%. ¿Alguna idea sobre cuál podría ser la razón?

0 votos

Sigo teniendo problemas con la restricción b ln y. Si uno quiere una cartera de paridad de riesgo es c entonces definido como $\sum_{i=1}^n b_i \ln b_i$ donde $b_i = 1/n$ ?

5voto

Tim Puntos 11

Otro enfoque para construir una cartera de paridad de riesgo sería utilizar la formulación propuesta por Spinu [1]: $$\begin{array}{ll} \underset{\mathbf{w}}{\textsf{minimize}} & \frac{1}{2}\mathbf{w}^{T}\Sigma\mathbf{w} - \sum_{i=1}^{N}b_i\log(w_i)\\ \textsf{subject to} & \mathbf{1}^T\mathbf{w}=1. \end{array}$$ donde $\mathbf{w}$ es el vector de pesos de la cartera, $\Sigma$ es la matriz de covarianza, y $b_i, i = 1, 2, ..., N,$ son los presupuestos de riesgo.

Un algoritmo robusto para resolver el problema de optimización anterior está disponible en R y Python a través del paquete riskParityPortfolio: https://github.com/dppalomar/riskParityPortfolio .

1] Florin Spinu, An Algorithm for Computing Risk Parity Weights, 2013. https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2297383

EDITAR: También he publicado una versión en Python del paquete anterior. Para los interesados, aquí está el enlace al repo: https://github.com/mirca/riskparity.py

0 votos

Para la paridad de riesgos parece que el paquete R sólo necesita las primeras 6 líneas de código de este archivo: github.com/dppalomar/riskParityPortfolio/blob/master/R/ ¿así que básicamente un dos líneas para que el OP calcule?

2voto

Juddling Puntos 205

Entendamos intuitivamente el algoritmo de paridad de riesgo. En este algoritmo, el punto importante a tener en cuenta es que asigna más capital a los activos que tienen menor riesgo y menos capital a los activos que tienen mayor riesgo.

Por ejemplo, consideremos dos activos en los que el riesgo del activo1 es del 9% y el del activo2 es del 5%. Entonces, la cantidad de capital asignada al activo1 = 1/9 / (1/9 + 1/5) = 35% y la cantidad asignada al activo2 = (1 - 35%) = 65%.

Como se ve, el 65% se asigna al activo 2, ya que tiene un riesgo menor, del 5%, en comparación con el activo 1, que tiene un riesgo del 9%.

Puedes comprobar que la fórmula que has dado: $w_B=\frac{\sigma_S}{\sigma_B+\sigma_S}$ es algebraicamente equivalente a $w_B=\frac{1/\sigma_B}{1/\sigma_B+1/\sigma_S}$ . Así que el resultado es el mismo. Pero la fórmula en términos de inversos es más intuitiva y más general.

Para ampliar esta fórmula a múltiples activos (suponiendo que las correlaciones son nulas), se puede colocar la inversa del riesgo del activo en el numerador y la suma de la inversa del riesgo de todos los activos en el denominador para obtener las ponderaciones.

enter image description here

En este ejemplo, la suma de la inversa del riesgo de todos los activos es 0,48. La ponderación del activo1 es 1/9 / 0,48 = 23%.

Para entender la derivación del algoritmo y cómo introducir correlaciones no nulas, puede consultar el siguiente enlace: ¿Cómo entender este Algoritmo de Paridad de Riesgo?

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X