Going OpenSource

Going OpenSource

Casi todas las herramientas que use en la facultad y que me acompañaron hasta ahora son pagas, y uno generalmente termina usando versiones crackeadas porque los precios son un verdadero delirio para Argentina.
Eviews, Stata, Matlab, Gauss son las herramientas que más use. A continuación, una serie de reemplazos para ellos, totalmente OpenSource y todas corren en Windows.
Matlab ~= GNU Octave. La sintaxis es casi idéntica y Octave busca imitarla explicitamente. Tienen sus diferencias, pero la mayoría de los programas son portables de uno a otro (excepto los que usen toolkits especiales, aunque algunos ya estan porteados a Octave). Gauss entra también en esta categoría, aunque siempre estuvo más concentrado en la parte estadística que Matlab.
Eviews o Stata pueden reemplazarse por R o Gretl. Si bien R es mucho más que un paquete estadístico (es más un lenguaje de programación en el cual hay muchas herramientas estadísticas desarolladas) y la interfaz por pura línea de comandos puede asustar, no hay nada que un poco de práctica y alguna GUI elaborada (como RCommander o RStudio) no puedan hacer fácil de sobrellevar. Gretl por otra parte esta específicamente apuntado a Econometría, y no es necesario agregarle packages para aumentar su funcionalidad. Además, Gretl y R trabajan juntos. La transición es mucho más fácil viniendo de Stata, porque se apunta a laburar más con la línea de comandos que con la GUI (aunque la GUI ayuda a conocer los comandos por primera vez). Los menues de Gretl y de RCommander son similares a lo que se encuentra en Stata. Aca no podemos dejar de mencionar como especializados a Rattle, una GUI para R apuntada al Data Mining, y aJMulTi, una aplicación standalone escrita en Java muy útil para hacer series de tiempo.
Como ven, las alternativas estan, es cuestión de tomarse el tiempo para aprender a usarlas. Y no va a haber ningún departamento de sistemas que prohiba su uso…

EDIT: Algo relacionado, pero distinto, es Ox, un lenguaje con reminiscencias de C en su sintaxis, pero con manejo de matrices incorporado y con enfásis en aplicaciones financieras (Ox es closed-source, pero la versión de consola esta disponible para uso académico)

(Post publicado originalmente en Quants Argentina)

Posted in Códigos, Juan Manuel Truppia0 Comments

La novela de las once: Cupón PBI (IV)

La novela de las once: Cupón PBI (IV)

La siguiente serie corresponde a los posts realizados por Juan Manuel Truppia en su blog Quants Argentina.

viernes 23 de diciembre de 2011

TIR de los cupones

Hace rato que quería calcular las TIR de los cupones, como hago con el valor teórico. Dado que estoy haciendo un modelo de DCF, era natural que además de calcular el VAN calculará la TIR también.
En este caso, no es necesario hacer un supuesto sobre las tasas de descuento, pero si sobre el deflactor y los tipos de cambio, y en este caso seguimos manteniendo nuestro supuesto anterior de un deflactor chato (excepto para el de 2011 que ya lo fijamos en 18%) y un tipo de cambio también sin cambios (fijo a los últimos valores).
A continuación una tabla describiendo los valores encontrados haciendo un Montecarlo para la TIR

Cupon TVPY TVPE TVPP
Mkt Val (ARS) 58 61 11
Mean 0.23336002 0.30890894 0.43968069
Median 0.24596718 0.31686578 0.44783802
Min -1 -1 -1
Max 0.61208531 0.80018533 0.99200383
StDev 0.19202053 0.22145958 0.26583358
Skew -2.36156357 -1.67009261 -1.09733462
Kurt 11.4138172 7.32550987 3.99350931
Perc 10 0.06574563 0.09107614 0.13696349
Perc 30 0.16673113 0.21469111 0.30176845
Perc 50 0.24596718 0.31686578 0.44783802
Perc 70 0.32598564 0.42023163 0.60579567
Perc 90 0.44156879 0.56819565 0.76678253

Los valores estan en “decimal” (sin porcentualizar) y dados los supuestos que venimos usando, podemos considerar que la tasa en pesos es una tasa real, y que las tasas de los cupones en moneda extranjera son tasas en la moneda de ese cupón.
Los números hablan por si solos, pero vale la pena hacer algunas aclaraciones

  • En el caso donde no hay TIR (el algoritmo no converge porque el polinomio no tiene raíces reales), le asigne un valor de -1 (-100%)
  • La gran asímetria negativa (skewness negativa, cola larga hacia la izquierda) esta causada por estos casos donde la TIR es -1
  • La Kurtosis reportada es Excess Kurtosis
  • Tenemos la contra de que estamos descontando todos los flujos a la misma tasa, cuando el correspondiente a 2011 ya esta casi fijo. Podríamos restarle al valor del mercado el valor de ese pago descontado para ajustar esto (no lo hice)

Sigo creyendo que el TVPP es la mejor opción, y cada vez que lo veo abajo de 10 me lo llevo. Para el próximo post relacionado con este tema, podría mirar alguna medida de la duración del flujo de fondos.

Posted in Juan Manuel Truppia, Modelos0 Comments

La novela de las once: Cupón PBI (III)

La novela de las once: Cupón PBI (III)

La siguiente serie corresponde a los posts realizados por Juan Manuel Truppia en su blog Quants Argentina.

viernes 4 de noviembre de 2011

Porque está mal modelar el PBI sin autocorrelación para valuar el cupón

Hay algunos modelos dando vueltas que en el Montecarlo suponen que los cambios en el PBI tienen alguna distribucion iid (generalmente normal) sin tener en cuenta la autocorrelacion (ac) de un período a otro, o sea, lo modelan el log pbi (o peor aún, los cambios simples!) como un random walk.

Para facilitar el tema, supongamos que solo quedan dos posibles períodos.

En casi todos los modelos, el valor teórico del cupón es la media Montecarlo del valor de los flujos descontados. El hecho del descuento no influye en este asunto, y lo dejamos de lado. También asumimos que en ningún caso vamos a tocar el techo (se puede introducir fácil, pero solo oscurece el asunto).

Notemos como g1 y g2 a los crecimientos de los dos períodos, y notemos p() a la función que dado el crecimiento de ese año, me da el pago.

Entonces el valor teórico del cupón, es

E(v) = E(p(g1)+p(g2))=E(p(g1))+E(p(g2))

donde v =p(g1)+p(g2) es el valor en cada simulación.

Hasta aquí la autocorrelación entre g1 y g2 no influye, pero si calculamos su varianza (una medida de riesgo)

V(v) = V(p(g1)+p(g2)) = V(p(g1)) + V(p(g2)) + 2 Cov(p(g1),p(g2))

Como p() es creciente, y como g1 y g2 tienen autocorrelacion positiva (crecimientos de PBI generalmente se ven sucedidos por crecimientos, es más probable crecer luego de un año en el que creciste) entonces la varianza del valor teórico es mayor en un modelo que toma en cuenta la autocorrelación que en uno que no lo tiene. Luego, los modelos sin autocorrelación estan subestimando el riesgo del cupón. Remarco la presencia de la función p porque es no lineal (si g menor a caso base entonces p=0) y este es otro factor importante. Obviamente que V(p(g)) != p(V(g)). Ahora la pregunta que les dejo es, supongan que p es una función partida del tipo

 p = 0  \quad \text{si} \; g < k \qquad p = cg \quad \text{si} \;g>=k}” /></p>
<p style=con c mayor a 0 En este caso, ¿V(p(g)) mayor a p(V(g)) o al revés?

Posted in Juan Manuel Truppia, Modelos0 Comments

La novela de las once: Cupón PBI (II)

La novela de las once: Cupón PBI (II)

La siguiente serie corresponde a los posts realizados por Juan Manuel Truppia en su blog Quants Argentina.

lunes 11 de julio de 2011

Aclaraciones sobre los cupones en moneda extranjera

Me llegaron un par de consultas, y aprovecho para hacer un par de aclaraciones que quizá dado el formato y target del video no se pueden hacer ahí mismo
  • Mi definición de un  activo que cubre contra una devaluación es uno cuyos flujos en moneda extranjera no se ven afectados por una devaluación del peso (excepto por efectos tipo default que pueden ser un efecto secundario de una mega devalueta). Por eso digo que un bono en USD te cubre contra la devaluación, pero un TVPY no te cubre
  • No me importa ni me parece relevante que el máximo a pagar este fijado en la moneda del cupón. Eso no es justificativo de que te cubre contra una devaluación. Si hay una devaluación muy grande, puede que jamas te llegue a pagar el nocional máximo (es más, cuando se idearon los cupones, nunca se penso que se iba a llegar a ese nocional máximo)
  • En este video hablo siempre de como el TCR afecta a los cupones en moneda extranjera, pero nunca hablo de como comparar rendimientos de los distintos cupones entre si. Esto es, no doy una estrategia de decisión que permita elegir entre TVPP, TVPY o TVPE. Para esto necesitamos definir una moneda base para calcular los retornos, y además definir adecuadamente “precios normalizados” para poder comparar los precios entre si de los cupones (recordar que los flujos son parecidos pero estan multiplicados por constantes distintas, que tienen que ver con el tipo de cambio al momento de creación de los cupones)
  • En mi última versión del modelo trato de manera distinta a los pagos que ya son ciertos y fijos (su monto ya esta determinado y no se afecta más por inflación o devaluación) descontandolos a una tasa distinta, mucho más baja y parecida a un bono corto en la moneda respectiva

A continuación hago un breve repaso de los supuestos del modelo y de mi escenario base, motivado por un comentario de Aleajacta (que dicho sea de paso, siempre es un gusto tenerlo por aca)

  1. Método de MonteCarlo para estimar PBI y por lo tanto pagos futuros
  2. IPI (deflactor) = inflación
  3. TCN / IPI = TCR
  4. TCR constante a lo largo de toda la vida del cupón
  5. Igual tasa de descuento para todos los cupones (con la excepción de los pagos que ya estan fijos)

Los supuestos que son totalmente discutibles son el 4 y 5 (2 y 3 son definiciones nada más, o sea, si quieren le ponemos otro nombre, puede ser “inflacion medida por el IPI” y “TCR deflactado por el IPI”)

Claramente diferentes supuestos sobre el TCR dan valores distintos (como dijimos en el video, un TCR que se aprecia favorece los cupones en moneda extranjera) y la elección de las tasas viene de suponer que, con un TCR constante, y como la tasa en ARS es una tasa real (porque los pagos se ajustan por inflación) se pueden usar las mismas tasas para descontar los cupones en diferentes monedas.
También, en su momento, las tasas del DICP y DICY eran iguales. Actualmente, esto no es asi, y podría tener sentido, si usamos tasas de mercado, descontar los flujos del TVPP a una tasa relativamente mayor a los de TVPY
Finalmente, un comentario sobre un factor que falta modelar, y que es la relación entre tasas de descuento y PBI. Como hay una correlación negativa, tomando la tasa de descuento como r, y siendo el VA de un pago igual a c/(1+r), esto quiere decir que cuando el PBI crece más, descuento a una tasa menor, y por lo tanto el VA del pago es todavía más grande (los efectos van para el mismo lado). Lo mismo sucede cuando el PBI cae, la tasa descuento aumenta, y por lo tanto son dos efectos que se refuerzan para que el VA sea menor.
El resultado de esto es que la distribución presentaría más “fat tails” que la actual (donde supongo una correlación nula entre el PBI y las tasas de descuento). Y finalmente, esta relación puede a un valor teórico más alto.
El motivo para esto es simple, y me fue sugerido via mail por Leandro Infantino (gracias!). Si suponemos que el valor teórico del cupón es la esperanza del producto entre el factor descuento (estocástico) y el pago, entonces

donde delta es el factor (no la tasa) de descuento, delta = 1/(1+r), y p es el pago. En los casos donde la covarianza entre el factor y el pago es positiva (como en el cupón) el valor es mayor que en el caso donde la covarianza es nula
Todavía tengo en los pendientes modelar la relación entre PBI y tipos de cambio, y ahora encima se me suma modelar la relación entre factores (o tasas) de descuento y el PBI. Y tampoco me tengo que olvidar de armar un framework para poder decidir entre los cupones de distintas monedas para hacer retornos en una moneda especificada (por ejemplo, si mi objetivo es generar retornos reales en ARS, cual es el cupón que me conviene elegir, dados los precios actuales de mercado y mis supuestos)

Posted in Juan Manuel Truppia, Modelos2 Comments

La novela de las once: Cupon PBI (I)

La novela de las once: Cupon PBI (I)

La siguiente serie corresponde a los posts realizados por Juan Manuel Truppia en su blog Quants Argentina.

Domingo 25 de julio de 2010

Cupón PBI – Un incomprendido

Estoy armando un modelo para valuar el cupón del PBI. Es un instrumento que aparenta ser díficil de entender, pero en realidad no lo es tanto.
Como ya es conocido, es un instrumento cuyos pagos dependen principalmente de la evolución del PBI de Argentina. La fórmula de calculo exacta puede verse en la documentación del canje, pueden bajarla de aca o de la subsecretaría de financiamiento del MECON (que dicho sea de paso es una página con datos muy interesantes, especialmente los referidos a pagos de cupones de bonos pasados y a perfil de deuda, con vencimientos año por año)
Pero basicamente podemos decir que el total de cupones emitidos paga un 5% del exceso de PBI real (o sea el PBI medido a precios constantes, la serie actual es a precios de 1993), ajustado por el deflactor del PBI (simíl inflación) y luego transformado a la moneda del cupón (hay cupones en ARS, USD, EUR y JPY). El exceso de PBI se calcula contra un caso base, explicitado en el mismo documento. Este caso base suponía un crecimiento del PBI que decrecía desde 4% en 2005 a 3% de largo plazo. De más esta decir que desde 2005 a hoy el crecimiento fue mucho mayor (excepto 2009 donde fue de 0,9%).
Deben cumplirse 3 condiciones para que se ejecute el pago

  1. Que el PBI sea superior al PBI del caso base
  2. Que el crecimiento del PBI en ese año sea superior al crecimiento del PBI en el caso base
  3. Que los pagos acumulados por cada 1 VN de cupón no hayan superado 0,48

Esto genera una dinámica muy interesante, ya que si se crece mucho más rápido que el caso base, entonces los pagos son cada vez mayores, pues se calculan como exceso de PBI (stock), y no como exceso de crecimiento (flujo). Pero, si el crecimiento no es superior al caso base, no hay pago. Actualmente, como el crecimiento desde 2005 ha sido tanto más alto que el caso base, el cupón (también conocido como GDP warrant) tiene una discontinuidad muy grande en su pago. Si el crecimiento de PBI estimado esta cerca del caso base, la volatilidad será enorme, pues algunas décimas de crecimiento pueden ser la diferencia entre recibir un pago muy grande o no recibir nada ese año. Como detalle aclaramos que el pago que se calcula sobre el crecimiento de un año, se paga recién al final del otro. Por ej, el pago calculado sobre el crecimiento de 2005 se paga en diciembre de 2006. Por eso mismo en 2010 no se cobrará nada, ya que en 2009 el crecimiento no superó el del caso base

PBI Argentino desde 2004

Las 4 variables claves a simular para valuar un cupón son

  • El PBI real
  • La inflación (para el deflactor del PBI)
  • El tipo de cambio correspondiente a la moneda en la que se encuentre el cupón
  • Probabilidad de default

Claramente estas cuatro series se encuentran muy relacionadas entre si. En caso de querer modelarlas, deberían modelarse en conjunto con un modelo VAR (Vector Autoregression, no Value At Risk). Dado que

  • No tengo experiencia en modelos VAR (se agradecen sugerencias de referencia y lectura!)
  • Mi tiempo no es infinito
  • El cupón en pesos (TVPP) es el más tradeado a nivel local (es el instrumento con más operaciones diarias de toda la bolsa)

decidí entonces valuar el TVPP, usando distintos supuestos de inflación establecidos a mano y descontando con tasas de los bonos del gobierno para tener en cuenta el riesgo de default (no es lo ideal, ya se).
Para esto fittee entonces un modelo ARMA al crecimiento del PBI real, obteniendo distintas calibraciones, usando la metodología de Box Jenkins. El PBI real es claramente no estacionario, por lo tanto debe ser modelado en diferencias. Tome la serie de GDP quarterly, y modele primero las diferencias logarítmicas seasonals de orden 4 (o sea el crecimiento YoY, que no debería tener estacionalidad) y después las diferencias logarítmicas seasonals de orden 1 (o sea el crecimiento QoQ, que debería presentar estacionalidad).
Como dato, entontre que para el crecimiento YoY un buen fit es un AR con lags 1 y 4 (con una dummy que es significativa para los quarters entre 2001q1 y 2002q3) , o un ARMA(1,1) (sin dummy). Para el QoQ sigo investigando, hasta ahora tuve un buen fit con un AR(4) con dummy para la crisis.
Finalmente simule por Montecarlo la evolución del GDP, con los 3 modelos, en dos frameworks distintos

  1. Usando un supuesto de inflación decreciente (recordemos que es inflación de deflactor de PBI, no de IPC INDEC), partiendo de 18%, y convergiendo a 10% de largo plazo, descontando con una tasa de 20%
  2. Usando inflación nula y descontando con una tasa de 10% (símil YTM de PARP o DICP, o sea tasa real). Esto es similar a lo que se hace cuando se calcula la YTM de los bonos que ajustan por CER, donde se calcula el rendimiento del bono con un CER que no crece, y uno después aproxima la YTM nominal sumando la inflación que espera.

Como último punto, tome como dado el crecimiento del PBI en 2010Q2, en 11%. Si tomamos el EMAE como predictor del PBI (es excelente, vean ambas series, intente hacer un gráfico pero las series se pisan tanto que no se ve nada), el primero crecio 9,69% en Abril y 12,40% en Mayo. Podemos estimar el crecimiento de 2010Q2 como el promedio del crecimiento del EMAE en los 3 meses que componen ese quarter. No hubo ninguna catástrofe en Junio, por lo tanto seguramente será cercano al crecimiento de Abril y Mayo.

Bueno, por fin llegamos a la hora de la verdad. Usando los 3 modelos, y los dos frameworks para inflación y descuento; se llega a resultados similares cualitativamente, aunque distintos cuantitativamente. La media del Montecarlo para el valor presente de los flujos del TVPP se mueve entre 15 y 19 ARS por cada 100 warrants (se negocian en lotes de 100 en la bolsa, por eso lo muestro de esa manera). Aún castigando esta media por ser un derivado complejo en un mercado (muy) en vías de desarrollo (como hace un banco de inversión) y por aversión al riesgo, el upside es importante (el precio hoy es cercano a los 8,90 ARS)
Me gustaría ilustrar el post con detalles de la distribución pero justo ahora mi Crystal Ball (la herramienta que estoy usando para el Montecarlo) decidió dejar de funcionar (prometo update en un par de días)
Comento algunos de los detalles de la distribución (aplican a todos los modelos)

  • En la mayoría de los casos de la simulación se llega al límite máximo de pagos. Es decir, se pagan los 0,48 ARS por warrant
  • La distribución tiene un fuerte skew negativo (cola izquierda larga)
  • A valores actuales del warrant, la probabilidad de pérdida (valor presente de los flujos menor al precio actual) es menor al 10%

Antes que alguien lo comente, queda claro que esto no es una valuación del derivado en un mundo risk free. No hay posibilidad de arbitraje, y por lo tanto la media del Montecarlo no se corresponde con el valor teórico.
Hay montones de mejoras que se le pueden hacer al modelo. Entre ellas

  • Modelar la inflación junto al PBI (modelo VAR)
  • Valuar los cupones en moneda extranjera (principalmente TVPE, euros, y TVPA/TVPY, dólares), simulando el tipo de cambio USDARS (en conjunto con la inflación y el PBI) y el USDEUR (exógeno a las otras series)
  • Modelar la probabilidad de default por separado, y descontar a una tasa risk free. La probabilidad de default también debería entrar en el modelo VAR junto al PBI, inflación y USD (claramente un PBI cayendo, tipo de cambio depreciandose muy fuerte y alta inflación corresponderían a un riesgo de default más alto)

Por último, como referencia, Deutsche tiene en su sitio de research un modelo bastante completo de valuación del cupón, que permite jugar con los inputs y ver la sensibilidad. También incluye toda la documentación del mismo. TPCG también posee un modelo, y presenta periodicamente una valuación del cupón. Dada la calidad del research de TPCG, confió en el mismo, aunque no vi la metodología.

Bottom line, si llegaron hasta aca buscando una recomendación de inversión, y se aguantaron todo el bodrio metodológico, opino que a pesar del rally del los últimos días existe margen aún para más suba. El cupón es un instrumento muy volátil y sensible a los vaivenes del mercado, más aun teniendo en cuenta que se tradea mucho intradiario. Por debajo de 9, compro. Por debajo de 10 también, pero intentando aprovechar los bajones de mercado.

Por mi parte, yo estoy long. Puede que después de este post el mercado me pegué un revés y me deje mal parado, como un boludo con este post bullish. Solo espero que el largo plazo (y el carry!) me saquen

Posted in Juan Manuel Truppia, Modelos0 Comments

Retornos de Leveraged ETF

Adjunto links a dos papers muy interesantes que exploran un poco más a fondo el asunto de los retornos de los leveraged ETF. Como saben, estos fondos desde hace poco estan obligados a aclarar que su target es replicar los retornos diarios de sus benchmarks; y que debido al compounding, puede que no repliquen los retornos de más largo plazo.
Este paper es de 2009, del CME, es corto y muy claro.
Por otra parte, este es muy nuevo, del flamante journal de Financial Mathematics de SIAM, cuyo acceso es gratis durante 2010. Esta escrito por un groso como Marco Avellaneda, y va más en profundidad

Posted in Juan Manuel Truppia0 Comments

Archive | Juan Manuel Truppia

Fun & Finance Community