El objetivo de este artículo es
acomodar datos extraídos desde Bloomberg de una forma más cómoda para ser
trabajados, para ello se ocupara la herramienta de Excel, Macros. En este caso obtendremos la serie de precios de todas las acciones de nuestra bolsa de valores IPSA, para todos los días de transacción durante el año 2013. Entre los usos de esta forma de disponer de los datos nos permitirá trabajarlos de una manera mas cómoda y usar aplicaciones de Excel, como formulas, tablas dinámicas, matriciales,regresión lineal, etc.
Para
eso quisiera hacer una breve explicación sobre este proceso, cualquier duda,
dejare un apunte adjunto que permite al lector conocer las distintas
formas y usos de la aplicación de Bloomberg en Excel, que permite de una manera
muy cómoda, extracción de datos del mercado financiero como de la economía
global.
Como punto de partida,
para usar Bloomberg, hay que tener instalado el software en nuestro Excel (Para
esto hay que desembolsar un costo monetario). Posteriormente, en la barra
superior, aparece una pestaña de “Bloomberg”, luego, para descargar datos, es
necesario hacer click en el botón “Real-Time / Historical”, donde se
distinguirán entre descargar datos individualizados o series históricas.
Para el ejemplo, descargaremos la
serie histórica de las 40 acciones pertenecientes a nuestra bolsa de valores,
el IPSA. Para ello, debemos ingresar en el cuadro que seleccionamos
anteriormente, los 40 tickers que corresponden a estas acciones, antes de
realizar este procedimiento recomiendo dejar seleccionada la celda "A1" pues así
funcionara bien la Macro que utilizaremos posteriormente.
Uno de los principales problemas
que enfrentaremos al exportar una base de datos de bloomberg es que si no copiamos
y pegamos como valores los datos extraídos, al llevar la base de datos a otro
computador estos aparecerán como error, pues si no tenemos instalada la aplicación
de Bloomberg, Excel por sí solo no reconocerá la formula inserta en las celdas.
Aquí partiremos con la primera macro para evitar este engorroso procedimiento.
Sub CopiarPegar()
' Macro1 Macro
Cells.Select
Selection.Copy
Cells.Select
Selection.PasteSpecial
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Ahora teniendo ya
nuestras celdas como valores, y no como fórmula BDP, tenemos que dejar los
datos de una forma mas cómoda para ser trabado, pues Bloomberg los entrega de
la siguiente forma:
Nótese, que en la imagen, hay
celdas donde se repite el signo “####”, esto ocurre debido a que en esta celda,
está inserta la formula BDP al ocupar la herramienta anteriormente seleccionada.
Por ello la importancia de usar la Macro anteriormente seleccionada. El
problema, es que esta forma de entregar los datos, no es cómoda para
trabajarlos, por lo tanto, se utilizara como punto de partida una macro que
acomode las columnas para poder dar un mejor uso para esta información.
Antes
de eso, acomodaremos los tickers identificadores de cada serie accionaria con
la siguiente macro:
Sub AcomodarTickers()
Range("A1:XFC1").Select
Selection.Cut
Range("B1").Select
ActiveSheet.Paste
End Sub
Luego procederemos a eliminar las columnas que nos molestan
con la siguiente macro.
Sub EliminarColumnas()
Columns("C:D").Select
Selection.Delete Shift:=xlToLeft
Columns("D:E").Select
Selection.Delete Shift:=xlToLeft
Columns("E:F").Select
Selection.Delete Shift:=xlToLeft
Columns("F:G").Select
Selection.Delete Shift:=xlToLeft
Columns("G:H").Select
Selection.Delete Shift:=xlToLeft
Columns("H:I").Select
Selection.Delete Shift:=xlToLeft
Columns("I:J").Select
Selection.Delete Shift:=xlToLeft
Columns("J:K").Select
Selection.Delete Shift:=xlToLeft
Columns("K:L").Select
Selection.Delete Shift:=xlToLeft
Columns("L:M").Select
Selection.Delete Shift:=xlToLeft
Columns("M:N").Select
Selection.Delete Shift:=xlToLeft
Columns("N:O").Select
Selection.Delete Shift:=xlToLeft
Columns("O:P").Select
Selection.Delete Shift:=xlToLeft
Columns("P:Q").Select
Selection.Delete Shift:=xlToLeft
Columns("Q:R").Select
Selection.Delete Shift:=xlToLeft
Columns("R:S").Select
Selection.Delete Shift:=xlToLeft
Columns("S:T").Select
Selection.Delete Shift:=xlToLeft
Columns("T:U").Select
Selection.Delete Shift:=xlToLeft
Columns("U:V").Select
Selection.Delete Shift:=xlToLeft
Columns("V:W").Select
Selection.Delete Shift:=xlToLeft
Columns("W:X").Select
Selection.Delete Shift:=xlToLeft
Columns("X:Y").Select
Selection.Delete Shift:=xlToLeft
Columns("Y:Z").Select
Selection.Delete Shift:=xlToLeft
Columns("Z:AA").Select
Selection.Delete Shift:=xlToLeft
Columns("AA:AB").Select
Selection.Delete Shift:=xlToLeft
Columns("AB:AC").Select
Selection.Delete Shift:=xlToLeft
Columns("AC:AD").Select
Selection.Delete Shift:=xlToLeft
Columns("AD:AE").Select
Selection.Delete Shift:=xlToLeft
Columns("AE:AF").Select
Selection.Delete Shift:=xlToLeft
Columns("AF:AG").Select
Selection.Delete Shift:=xlToLeft
Columns("AG:AH").Select
Selection.Delete Shift:=xlToLeft
Columns("AH:AI").Select
Selection.Delete Shift:=xlToLeft
Columns("AI:AJ").Select
Selection.Delete Shift:=xlToLeft
Columns("AJ:AK").Select
Selection.Delete Shift:=xlToLeft
Columns("AK:AL").Select
Selection.Delete Shift:=xlToLeft
Columns("AL:AM").Select
Selection.Delete Shift:=xlToLeft
Columns("AM:AN").Select
Selection.Delete Shift:=xlToLeft
Columns("AN:AO").Select
Selection.Delete Shift:=xlToLeft
Columns("AO:AP").Select
Selection.Delete Shift:=xlToLeft
End Sub
Finalmente, acomodando un poco el formato del
cuadro
Sub FormatoCuadro()
Rows("2:2").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveCell.FormulaR1C1 = "Fecha"
Columns("A:A").Select
Selection.NumberFormat =
"m/d/yyyy"
End Sub
El resultado esperado es el siguiente :
Al trabajar con este tipo de datos, en general, no nos
interesan datos en niveles, más bien, nos interesa el cambio porcentual con
respecto al día anterior ( en el caso de series de precios de acciones), por lo tanto recurriremos al siguiente procedimiento:
Sub GenerarCuadroProcentaje()
Cells.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Cells.Select
Selection.PasteSpecial
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 =
"=LN(Hoja3!RC/Hoja3!R[-1]C)"
Range("B3").Select
Selection.Copy
Range(Selection,
Selection.End(xlToRight)).Select
Range(Selection,
Selection.End(xlDown)).Select
ActiveSheet.Paste
Rows("2:2").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Columns("A:A").Select
Selection.NumberFormat =
"dd/mm/yyyy;@"
Range("B2").Select
Range(Selection,
Selection.End(xlToRight)).Select
Range(Selection,
Selection.End(xlDown)).Select
Selection.Style = "Percent"
Selection.NumberFormat = "0.00%"
End Sub
El resultado final debería ser el
siguiente:
Para no tener problemas con el trabajo
de estos datos, recomiendo repetir el uso de la macro Copiar-Pegar como
Valores.
Finalmente, dejare material
adjunto que les permitirá un mejor entendimiento sobre como aprovechar mejor la
información entregada por el software Bloomberg y también el archivo base para aplicar las Macros correspondientes.
No hay comentarios:
Publicar un comentario