Método 1: direccionalidad PCA cubierta
Esta es una forma de hacerlo utilizando el ACP y cubriendo la direccionalidad implícita en el primer componente principal .
Dado que ha citado 3 instrumentos efectivos; 2s5s10s, 2s10s y 5Y observará que puede derivar estos instrumentos del subyacente 2Y, 5Y y 10Y. Es decir;
$$ \begin{bmatrix} 5Y \\\ 2s10s \\\ 2s5s10s \\ \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 \\\ -1 & 0 & 1 \\\ -1 & 2 & -1 \end{bmatrix} \begin{bmatrix} 2Y \\\ 5Y \\\ 10Y \end{bmatrix} , \quad or \quad P_2 = A P_1$$ donde $P_1$ y $P_2$ son su conjunto de precios en los diferentes sistemas de base.
También se puede observar que si se tiene la matriz de covarianza de los instrumentos en $P_1$ , digamos que $Q(P_1)$ entonces la covarianza de los instrumentos de base $P_2$ se puede obtener con: $$Q(P_2) = A Q(P_1) A^T \quad \implies \quad Q(P_1) = A^{-1}Q(P_2)A^{-T}$$ Así que se puede trabajar en ambos sistemas de base, pero me voy a centrar en el predeterminado $P_1$ sistema.
Si ahora obtienes los valores y vectores propios de $Q(P_1)$ tome el vector propio correspondiente al valor propio más alto, es decir, el primer componente principal (PC1). Para cubrir este componente de manera que no tenga exposición al riesgo, tome su propuesta comercial subyacente y dividirla por los elementos de PC1 :
$$ \begin{bmatrix} 2Y: -1 \\\ 5Y: +2 \\\ 10Y: -1 \end{bmatrix} \div \begin{bmatrix} PC1_{2Y} : 0.660 \\\ PC1_{5Y} : 0.604 \\\ PC1_{10Y} : 0.447 \end{bmatrix} = \begin{bmatrix} -1.51 \\\ 3.31 \\\ -2.24 \end{bmatrix} \propto \begin{bmatrix} -0.91 \\\ 2.00 \\\ -1.35 \end{bmatrix} $$
Método 2: Enfoque de minimización del VaR
Una segunda forma considerada sería suponga que opera con 5Y y busca la combinación de posiciones de 2Y y 10Y para minimizar su VaR . Esto le permite maximizar el tamaño absoluto del 5Y en relación con su VaR objetivo de la operación.
Suponga que tiene el siguiente riesgo:
$$S = \begin{bmatrix} 2Y: 0 \\\ 5Y: 2 \\\ 10Y: 0 \end{bmatrix} $$ y ahora se evalúa qué posiciones en 2Y y 10Y dan el menor VaR. Para la misma matriz de covarianza que utilicé anteriormente para derivar el PCA la respuesta es:
$$ S^* = \begin{bmatrix} 2Y: -1.48 \\\ 5Y: 2.00 \\\ 10Y: -0.38 \end{bmatrix} $$
Se trata de un problema de optimización que se puede resolver con un solucionador numérico o, más sencillamente, con el cálculo analítico, pero no lo voy a tratar aquí; el enlace que aparece a continuación lo tiene.
Obviamente, estos métodos son fundamentalmente diferentes, pero cada uno de ellos tiene mérito frente a un punto de vista específico, es más probable que en su posición favorezca al primero. Las diferencias aquí son tales que el 2Y tiene una correlación mucho mayor con el 5Y directamente, por lo que es una mejor cobertura para reducir el VaR sobreponderándolo, mientras que con el PCA el 10Y se mueve menos, por lo que se necesita más riesgo para tener una cobertura de direccionalidad.
Nota: si quieres probar esto por ti mismo, puedes usar el $Q(C)$ valores de la matriz de covarianza para las operaciones de 2 años, 5 años y 10 años en este enlace: http://www.tradinginterestrates.com/revised/PCA.xlsb Tenga en cuenta que todo este material lo obtuve de Darbyshire Pricing and Trading Interest Rate Derivatives.
Editar
Método 3: Regresión por mínimos cuadrados multivariable
Si incluimos el tercer método de @dm63 de regresión multivariable de la forma:
$$ \mathbf{y} - \mathbf{\beta x} = \mathbf{\epsilon} $$
entonces sus estimadores óptimos para $\mathbf{\beta}$ están dadas por,
$$ \mathbf{\hat{\beta}} = \mathbf{(x^Tx)^{-1}x^T y} $$
y como él afirma los pesos comerciales se dan como $(-(1-\beta_1), 2-\beta_2, -(1+\beta_1))$
--------------
Como ejemplo, he probado estos tres métodos con algunos datos de muestra de swaps de euros de 2016. Desde el 1 de enero hasta el 30 de junio son mis datos de muestra y desde el 1 de julio hasta el 22 de diciembre es mi prueba retrospectiva fuera de muestra. A continuación he trazado los resultados. Lo interesante es que la regresión multivariable es en realidad tiene la menor volatilidad en estos datos fuera de muestra, pero el var mínimo tiene casi la misma volatilidad. Y, por supuesto, min Var tendrá la menor volatilidad sobre los datos de la muestra de la que se derivó por definición.
Si está interesado en el código...
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df_hist = pd.read_csv('historical_daily_changes.csv', index_col='DATE', parse_dates=True)
df_fore = pd.read_csv('forecast_daily_absolues.csv', index_col='DATE', parse_dates=True)
z = df_fore[['2Y', '5Y', '10Y']].values
# Method 1: PCA directionality weighted trade
x = df_hist[['2Y', '5Y', '10Y']].values
Q = np.cov(x.T)
eval, evec = np.linalg.eig(Q)
w = np.array([-1 / evec[0, 0], 2 / evec[1, 0], -1 / evec[2, 0]])
print('Weights for trade using PCA are:', 2*w[0]/w[1], 2, 2*w[2]/w[1])
df_fore['PCA'] = 100 * (w[0]*z[:, 0] + w[1]*z[:, 1] + w[2]*z[:, 2]) * 2/w[1]
# Method 2: Minimum Variance approach
Q = np.cov(x.T)
Q_hat = Q[[0, 2], :]
Q_dhat = Q_hat[:, [0, 2]]
w[[0, 2]] = -np.einsum('ij,jk,k->i', np.linalg.inv(Q_dhat), Q_hat, np.array([0,2,0]))
w[1] = 2
print('Weights for trade using min VaR are:', 2*w[0]/w[1], w[1], 2*w[2]/w[1])
df_fore['Min VaR'] = 100 * (w[0]*z[:, 0] + w[1]*z[:, 1] + w[2]*z[:, 2]) * 2/w[1]
# Method 3: Multivariable least square regression
x = df_hist[['2Y10Y', '5Y']].values
y = df_hist[['2Y5Y10Y']].values
beta = np.matmul(np.linalg.pinv(x), y)
w = np.array([-(1-beta[0]), 2-beta[1], -(1+beta[0])])
print('Weights for trade using MVLSR are:', 2*w[0]/w[1], 2, 2*w[2]/w[1])
df_fore['MVLSR'] = 100 * (w[0]*z[:, 0] + w[1]*z[:, 1] + w[2]*z[:, 2]) * 2/w[1]
# Plot an out of sample forecast
fig, ax = plt.subplots(1,1)
ax.plot_date(df_fore.index, df_fore['2Y5Y10Y'] + 36, 'k-', label='2Y5Y10Y')
ax.plot_date(df_fore.index, df_fore['MVLSR'] + 6.7, 'r-', label='MVLSR weights')
ax.plot_date(df_fore.index, df_fore['PCA'] - 2.3, 'g-', label='PCA Weights')
ax.plot_date(df_fore.index, df_fore['Min VaR'] + 14.9, 'b-', label='Min VaR weights')
ax.legend()
plt.show()
print(df_fore[['2Y5Y10Y', 'MVLSR', 'PCA', 'Min VaR']].diff().describe())
0 votos
Hola - sólo para entender, ¿estás diciendo que quieres que tu mariposa sea plana/cobertura a 2s10s empinada/plana dada la correlación de 5y que observas a 2s10s?
0 votos
básicamente sería bueno saber cómo quieres ganar dinero en el comercio y lo que quieres cubrir a cabo. Por ejemplo, ¿estás cubriendo una pendiente de 2s10s o quieres ganar dinero en la inclinación/planeamiento de 2s10s mientras que eres neutral en general dv01 dado lo que esperas que ocurra con 5y, etc.?
0 votos
Creo que puede ser más simple que eso. Hablé con un trader, me dijo que si haces una regresión de la 2s5s10s con la 2s10s y la 5y como variable independiente, obtendrás un coeficiente de b1 para la pendiente de la 2s10s y b2 para la 5y. Entonces aquí es donde me pierdo: el peso sería 1 - b1 para la 2y, 2 para la 5y, etc. ¿Por qué el peso es 1- b1
0 votos
@Doika (por mi respuesta) sí los elementos de PC1 son las cargas de los factores del componente principal. La única otra consideración en mi respuesta es la cantidad de VaR que uno está dispuesto a exponerse a través de la ejecución de la operación.