Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Nueva función HISTORIALCOTIZACIONES

Recientemente se ha lanzado para todo el mundo (usuarios de Microsoft 365, claro) una nueva función desbordada: HISTORIALCOTIZACIONES:
=HISTORIALCOTIZACIONES (cotizaciones, fecha_inicial, [fecha_final], [intervalo], [encabezados], [propiedad0], [propiedad1], [propiedad2], [propiedad3], [propiedad4], [propiedad5])
Esta nueva función es capaz de devolvernos información financiera de algunos de los principales mercados bursátiles, así como de tipos de cambio entre distintas monedas...
OJO!! toda la información suministrada de la empresa (datos históricos, los precios en tiempo real y retrasados, el resumen de fondos y los datos de rendimiento) son proporcionados por Refinitiv, según un contrato de suministro de información firmado con Microsoft!!!.
De acuerdo a ese contrato, los datos mostrados no son para uso profesional de la industria financiera ni uso por otros profesionales de empresas no financieras (incluidas las entidades gubernamentales) que desempeñan funciones, entre las que se incluyen: finanzas, comercio, inversión, cobertura, cumplimiento, gestión de riesgos, fusiones y adquisiciones, tesorería, investigación económica y financiera, estrategia y planificación financiera y económica, consultoría financiera y de gestión, procesamiento de pagos, leasing y financiamiento.

Algo obvio de esta función es que se necesita una constante conexión a Internet.
Esta función está relacionada en cuanto a su comportamiento con el tipo de dato enriquecido de 'Cotizaciones' (ver aquí).
Otro punto importante antes de menternos en faena sería mostrar qué mercados están entre la lista de mercados bursátiles disponibles:
PaísCódigo de paísCódigo de identificación de mercadoNombre de la bolsa de valoresZona horariaDesviación UTCRetraso (minutos)
ArgentinaARBCBABolsa de comercio de Buenos AiresART-330
AustraliaAUXASXMercado de valores de AustraliaAEST1020
AustriaATXWBOBolsa de valores de VienaCET115
BélgicaBEXBRUEuronext BruselasCET115
BrasilBRBVMFBolsa de valores de Sao PauloBRT-330
CanadáCAXCNQBolsa de valores de CanadáEST-515
CanadáCAXTSEBolsa de valores de TorontoEST-520
CanadáCAXTSXBolsa de valores Venture ExchangeEST-520
ChileCLXSGOBolsa de valores de SantiagoCLT-420
ChinaCNXSHEBolsa de ShenzhenCST830
DinamarcaDKXCSENasdaq CopenhagueCET115
EstoniaEEXTALNasdaq TallinEET215
FinlandiaFIXHELNasdaq HelsinkiEET215
FranciaFRXPAREuronext ParísCET115
AlemaniaDEXFRADeutsche BoerseCET115
AlemaniaDEXETRXetraCET115
Hong KongHKXHKGBolsa de valores de Hong KongHKT815
IslandiaFTXICENasdaq IslandiaGMT015
IndiaINXBOMBolsa de BombayIST5,515
IndiaINXNSEBolsa nacional de IndiaIST5,55
IndonesiaIDXIDXBolsa de IndonesiaWIB715
IrlandaIEXDUBEuronext DublinWET015
ItaliaITXMILBolsa de ItaliaCET115
Corea del SurKRXKRXBolsa de valores de KoreaKST920
LetoniaLVXRISNasdaq RigaEET215
LituaniaLTXLITNasdaq VilniusEET215
MéxicoMXXMEXBolsa de MéxicoCST-620
Nueva ZelandaNZXNZENew Zealand Exchange LtdNZST1220
NoruegaNOXOSLBolsa de OsloCET115
FilipinasPHXPHSBolsa de valores FilipinasPHT815
PoloniaPLXWARBolsa de valores VarsoviaCET1Final del día
PortugalPTXLISEuronext LisboaWET015
RumaniaROXBSEBolsa de valores BucarestEET215
RusiaRUMISXBolsa de MoscúMSK315
SudáfricaZAXJSEBolsa de Johannesburgo SAST230
EspañaESBMEXBolsas y Mercados EspañolesCET115
SueciaSEXSTONasdaq EstocolmoCET115
SuizaCHXSWXBolsa de SuizaCET115
TaiwánTWXTAIBolsa de TaiwánCST820
Países BajosNLXAMSEuronext ÁmsterdamCET115
UcraniaUAXUAXBolsa de valores de UcraniaEET2Final del día
Reino UnidoGBXLONBolsa de LondresWET015
Estados Unidos de AméricaEE.UU.BATSCboe BZX ExchangeEST-50
Estados Unidos de AméricaEE.UU.XNASBNasdaq última ventaEST-50
Estados Unidos de AméricaEE.UU.XNASMercado de acciones NasdaqEST-515
Estados Unidos de AméricaEE.UU.XNYSBolsa de Nueva YorkEST-515
Estados Unidos de AméricaEE.UU.ARCXNYSE ArcaEST-515
Estados Unidos de AméricaEE.UU.OTCMMercado extrabursatilEST-515
VietnamVNXSTCBolsa de valores de Ho Chi MinhICT715
Como se observa los retrasos en los datos mostrados respecto a las cotizaciones en tiempo real oscilan entre los 5 y 30 minutos, excepto datos NASDAQ en los que no existe retraso alguno...
Especialmente importante de la tabla anterior es el campo 'Código de identificación de mercado', con el que podremos ajustar el mercado del cual recuperar información sobre una empresa cotizada.

Comentados los puntos anteriores, fundamentales para un correcto uso, veamos algo más de la función HISTORIALCOTIZACIONES.
Como se veía al inicio del post, esta función tiene bastantes argumentos.. pero todos muy simples:
=HISTORIALCOTIZACIONES (cotizaciones, fecha_inicial, [fecha_final], [intervalo], [encabezados], [propiedad0], [propiedad1], [propiedad2], [propiedad3], [propiedad4], [propiedad5])
- argumento 'cotizaciones': Será el valor del cual se devuelve datos históricos de precios del instrumento financiero. Recomendado detallarlo con un código de identificación de mercado (MIC) ISO de 4 caracteres (ver tabla previa!), seguido de dos puntos, seguido del código bursátil (por ejemplo, "XNAS:MSFT").
- argumentos 'fecha_inicial' y 'fecha_final': La primera y última fecha a partir de la cual se recuperan los datos.
- argumento 'intervalo': indicamos el intervalo que representa cada valor de datos. Con opciones: 0 = diario, 1 = semanal, 2 = mensual.
- argumento 'encabezados': Especifica si se muestran los encabezados de la siguiente forma: 0 = sin encabezados, 1 = mostrar encabezados, 2 = mostrar identificador del instrumento y encabezados.
- argumentos 'propiedades' seís opciones: 0 = Fecha, 1 = Cierre, 2 = Apertura, 3 = Máximo, 4 = Mínimo y 5 = Volumen.
Entendiendo cada propiedad según lo siguiente:
Fecha: Primer día hábil bursátil del período
Cierre: Precio de cierre del último día hábil bursátil del período
Apertura: Precio de apertura del último día hábil bursátil del período
Máximo: Mayor precio del mayor de los máximos diarios del período
Mínimo: Menor precio del menor de los mínimos diarios del período
Volumen: Volumen negociado durante el periodo

Ya estamos en disposición de plantear un primer y sencillo ejemplo.
Supongamos queremos disponer del histórico de cotizaciones del Banco Santander en la Bolsa de Madrid en todo el 2020, dispondremos en A1 el código: BMEX:SAN (comprueba que BMEX responde a las bolsas españolas, y SAN es el código bursatil del banco).
En B1 y C1 indicamos las fechas de inicio y fin del detalle deseado.
Así pues en A3 escribiríamos:
=HISTORIALCOTIZACIONES(A1;B1;C1;0;2;0;1;2;3;4;5)
donde indicamos que del valor BMEX:SAN entre las fechas del 1/1/2020 y 31/12/2020 queremos ver con un intervalo diario, mostrando el identificador del valor y los encabezados, así como todas las propiedades habilitadas.

Vemos que al tratarse de una función desbordada, automáticamente se completan todas las filas y columnas necesarias. Seguramente, durante un instante, en la celdas formuladas haya aparecido un mensaje de '#OCUPADO!' que indica que se está actualizando la conexión...
Para construir algo más aplicable al día a día podemos aprovecharnos de otras funciones (clásicas y/o desbordadas). Por ejemplo, si necesito el dato de los últimos dos meses desde la fecha corriente, en C1 añadiríamos la función =HOY() y en B1:=FECHA.MES(C1;-2), manteniendo en A3 la anterior función =HISTORIALCOTIZACIONES(A1;B1;C1;0;2;0;1;2;3;4;5)
Sobre ese rango desbordado podríamos incluir o insertar algún gráfico, por ejemplo de 'líneas', o 'gráficos y bigotes' o incluso el especifico gráfico del tipo 'cotizaciones'... o siendo imaginativos un 'minigráfico' ;-)

A parte de simples listados podemos montar informes donde se refleje información de una cartera de inversión.
Por ejemplo, supongamos tenemos una cartera de cinco valores:
1- Bankinter (BMEX:BKT)- banco
2- Acciona (BMEX:ANA) - constructora
3- AENA (BMEX:AENA) - gestión aeropuertos
4- Repsol (BMEX:REP) - petrolera
5- Pharma Mar (BMEX:PHM) - farmacéutica
De todos ellos queremos conocer su situación a cierre del año: 31/12/2020... Entonces tendríamos:

Vemos que en C3 hemos añadido la fórmula: =HISTORIALCOTIZACIONES($B3:$B7;B1;;0;0;{1\2\3\4\5})

Donde indicamos que de los valores indicados en B3:B7 mostrando los datos del día indicado en B1, sin mostrar encabezados y mostrando las propiedades de Cierre, Apertura, Alto, Bajo, Volumen , lo que conseguimos con la constante matricial: {1\2\3\4\5}
Otro ejemplo, sobre nuestra cartera de valores, podría ser la siguiente:

En este caso con la fórmula en C3
=SI.ERROR(HISTORIALCOTIZACIONES(C2:G2;B3#;;0;0;1);"-")
recuperamos los datos diarios de cierre de las distintas fechas listadas en B3:B9 (con la función: =SECUENCIA(7;1;HOY();-1)) sin encabezados.
He anidado en SI.ERROR ya que en los días sin cotización (festivos y fines de semana) se obtiene un error de #¡VALOR!.

Como se puede comprobar la función es muy versatil, y permite trabajar en diferentes dimensiones...
Pero no solo nos permite 'atacar' información bursatil tal cual, otro aspecto importante es el de la cotización del tipo de cambio entre monedas.
En el siguiente ejemplo veremos los tipos de cambios cruzados entre GBP, USD y EUR de los últimos quince días.

Aquí en C2 añadimos la función desbordada:
=SECUENCIA(1;15;HOY();-1)
con la que conseguimos los últimos quince días desde la fecha actual.
En B3:B8 escribimos los cruces (directos e inversos) de las tres monedas a analizar:
USD/GBP
GBP/USD
USD/EUR
EUR/USD
EUR/GBP
GBP/EUR
y finalmente en C3 añadimos nuestra fórmula:
=SI.ERROR(HISTORIALCOTIZACIONES($B$3:$B$8;C2#;;0;0;1);"-")
donde pedimos que para cada tipo de cambio de las celdas B3:B8 y cada fecha de C2:Q2 muestre el dato del cierre del día para dicho tipo de cambio.
Al igual que en el caso anterior anidamos con SI.ERROR para evitar el fallo en los días no hábiles.

Incluir un sencillo minigráfico de tipo línea al informe aportará alg omás de valor a éste.

Comentábamos al inicio del post que esta función HISTORIALCOTIZACIONES es similar al tipo de dato enriquecido de 'Cotizaciones', si bien las opciones que ofrece el tipo enriquecido son bastantes más, al menos en cuanto a número...


This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

Nueva función HISTORIALCOTIZACIONES

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×