#!/usr/bin/env python # coding: utf-8 # In[1]: import pandas as pd import matplotlib.pyplot as plt import matplotlib.ticker as ticker from datetime import datetime get_ipython().run_line_magic('matplotlib', 'inline') #plt.style.use('ggplot') # In[2]: # Opciones lectura de archivos csv karg_csv = dict(delimiter=';', decimal=',', index_col=0, parse_dates=True) # Indicadores de Riesgo sistemico # Dow Jones Industrial Average index, indicador del sistema financiero global dow = pd.read_csv('data_quandl/dow.csv', **karg_csv) # West Texas Intermediate, precio del petróleo indicador base costo materias primas, precursor inflación global wti = pd.read_csv('data_quandl/wti.csv', **karg_csv) # Effective Federal Funds Rate, indicador base del costo de financiamiento global fedrate = pd.read_csv('data_quandl/fedrate.csv', **karg_csv) # Monetary Base; Total, Dinero circulante para inversiones e intercambio comercial. money = pd.read_csv('data_quandl/money.csv', **karg_csv) # Total Public Debt as Percent of Gross Domestic Product, nivel de Deuda del emisor de dolares debt = pd.read_csv('data_quandl/debt.csv', **karg_csv) # Indicador local tipo de cambio Pesos Chilenos a Dolar Estados Unidos. usdclp = pd.read_csv('data_quandl/usdclp.csv', **karg_csv) # Observaciones: # La economía global tiene aceledadores y frenos que manipulan los ciclos económicos # estos no generan los ciclos, pero si son capaces de amplificar o reducir su efecto. # En esto USA tiene un rol muy relevante: # Aceleradores: # - Bajar tasa de interes # - Emitir dolares # Desde la crisis del 2008 el acelerador ha estado a tope y es inminente que la # economía global empiece un ciclo de corrección. # Razones por la cuales "el acelerador" no ha generado inflación excesiva en USA, es por la # irrupción del shale oil y shale gas, que permitiero a USA internalizar una salida de dólares muy importantes # por concepto de importación de petróleo. # La excesiva emisión de dólares fue directamente al mercado financiero y está altamente concentrado en pocos agentes # que lo utilizan como musculo financiero, sin llegar a los consumidores que podrían hacer sucir los precios. # In[3]: df = pd.DataFrame() df['dow'] = dow.Value df['wti'] = wti.Value df['fedrate'] = fedrate.FEDFUNDS.resample('D').bfill() df['usdclp'] = usdclp.Rate df['money'] = money.BOGMBASEW.resample('D').bfill() df['debt'] = debt.GFDEGDQ188S.resample('D').bfill() # In[4]: # Corrige error usdclp error = df['usdclp'] < 100.0 print df.loc[error, 'usdclp'] df.loc[error, 'usdclp'] = df.loc[error, 'usdclp'] * 100.0 # In[5]: # Datos ultimos 13 años year = datetime.now().year init = str(year - 13) df = df.loc[init:] # In[6]: df.plot(subplots=True, figsize=(10, 20), sharex=True) plt.savefig('result/SystemicRisk.png') # In[7]: val = 'dow' title=u'Dow Jones Industrial Average Index \n Indicador del Sistema Financiero Global' df[[val]].plot(title=title, figsize=(8, 8)) plt.axhline(y=df.loc[:,val].mean(), color='g', linestyle='--', label='media') plt.axhline(y=df.loc[:,val].quantile(.1), color='b', linestyle=':', label='q10') plt.axhline(y=df.loc[:,val].quantile(.9), color='r', linestyle=':', label='q90') plt.legend(loc=2) plt.savefig('result/%s.png'%val) # In[8]: val = 'wti' title=u'West Texas Intermediate \n Precio del petróleo indicador base costo materias primas \n Precursor inflación global' df[[val]].plot(title=title, figsize=(8, 8)) plt.axhline(y=df.loc[:,val].mean(), color='g', linestyle='--', label='media') plt.axhline(y=df.loc[:,val].quantile(.1), color='b', linestyle=':', label='q10') plt.axhline(y=df.loc[:,val].quantile(.9), color='r', linestyle=':', label='q90') plt.legend(loc=2) plt.savefig('result/%s.png'%val) # In[9]: val = 'fedrate' title=u'Effective Federal Funds Rate \n Indicador base del costo de financiamiento global' df[[val]].plot(title=title, figsize=(8, 8)) plt.axhline(y=df.loc[:,val].mean(), color='g', linestyle='--', label='media') plt.axhline(y=df.loc[:,val].quantile(.1), color='b', linestyle=':', label='q10') plt.axhline(y=df.loc[:,val].quantile(.9), color='r', linestyle=':', label='q90') plt.legend(loc=2) plt.savefig('result/%s.png'%val) # In[10]: val = 'money' title=u'Monetary Base; Total \n Dinero circulante para inversiones e intercambio comercial' df[[val]].plot(title=title, figsize=(8, 8)) plt.axhline(y=df.loc[:,val].mean(), color='g', linestyle='--', label='media') plt.axhline(y=df.loc[:,val].quantile(.1), color='b', linestyle=':', label='q10') plt.axhline(y=df.loc[:,val].quantile(.9), color='r', linestyle=':', label='q90') plt.legend(loc=2) plt.savefig('result/%s.png'%val) # In[11]: val = 'debt' title=u'Total Public Debt as Percent of Gross Domestic Product \n Nivel de Deuda del emisor de dolares' df[[val]].plot(title=title, figsize=(8, 8)) plt.axhline(y=df.loc[:,val].mean(), color='g', linestyle='--', label='media') plt.axhline(y=df.loc[:,val].quantile(.1), color='b', linestyle=':', label='q10') plt.axhline(y=df.loc[:,val].quantile(.9), color='r', linestyle=':', label='q90') plt.legend(loc=2) plt.savefig('result/%s.png'%val) # In[12]: val = 'usdclp' title=u'Indicador local tipo de cambio \n Pesos Chilenos con respecto al Dolar Estados Unidos.' df[[val]].plot(title=title, figsize=(8, 8)) plt.axhline(y=df.loc[:,val].mean(), color='g', linestyle='--', label='media') plt.axhline(y=df.loc[:,val].quantile(.1), color='b', linestyle=':', label='q10') plt.axhline(y=df.loc[:,val].quantile(.9), color='r', linestyle=':', label='q90') plt.legend(loc=3) plt.savefig('result/%s.png'%val) # In[13]: # U.S. Stock Markets 1871-Present and CAPE Ratio url = 'http://www.econ.yale.edu/~shiller/data/ie_data.xls' df = pd.read_excel(url, skiprows=7, converters={'Date': str}) df.dropna(axis=1, how='all', inplace=True) df.drop(df.columns[11], axis=1, inplace=True) df.dropna(inplace=True) print df.columns # In[14]: df.Date = df.Date.str.replace(r'\.1$', '.10') df.Date = pd.to_datetime(df.Date, format='%Y.%m') df.set_index('Date', inplace=True) # In[15]: init = '1970' df.loc[init:, ['Earnings', 'Price']].plot(secondary_y=['Earnings'], figsize=(10,10)) df.loc[init:, ['CAPE', 'Rate GS10']].plot(secondary_y=['Rate GS10'], figsize=(10,10)) plt.savefig('result/CAPE.png') # In[16]: #%qtconsole