CMCcalc.ods: Los datos de coinmarketcap.com en Calc de OpenOffice

Desde siempre he llevado el control de mis cryptomonedas con una hoja de calculo. Ahora uso Calc de Open Office. Y una funcionalidad que no tenía (hasta ahora) era disponer de los precios (y más datos) de las cryptomonedas actualizados automáticamente en la hoja.

He desarrollado para mi uso personal un libro de cálculo, que descarga los datos más importantes de cada moneda de coinmarketcap.com y te permite utilizarlos en tus propias hojas de cálculo.

No es nada del otro mundo, es todo muy básico, pero creo que tiene cierta utilidad. Y lo quiero compatir con vosotros.

Vamos alla…

Objetivo:
Disponer de los datos básicos sobre cada cryptomoneda de Coinmarketcap.com (en adelante CMC) en un libro de calculo Calc de Open Office, actualizados automáticamente, cada vez que se abre el libro, se actualizan los datos.

Datos:
Rango, Capitalización de mercado en USD. % variación respecto BTC 1h, % variación respecto BTC 24h, % variación respecto BTC 7d, Precio actual en BTC. % variación respecto USD 1h, % variación respecto USD 24h, % variación respecto USD 7d, Precio actual en USD. % variación respecto EURO 1h, % variación respecto EURO 24h, % variación respecto EURO 7d, Precio actual en EURO. Emisión en la actualidad, Emisión prevista total (si procede), Porcentaje de monedas emitidas en la actualidad (si procede).

Monedas:
50 monedas predefinidas. Posibilidad de añadir tus monedas favoritas muy fácilmente.

Requisitos:

Estructura libro: 4 hojas, organizadas como sigue:

  • CMCraw: hoja donde se descargan los datos de CMC de las monedas predefinidas.
  • CMCdata: hoja donde se extraen y organizan los datos descargado en la hoja anterior.
  • CMCayuda: hoja con textos de explicación sobre el funcionamiento del libro.
  • Ejemplos: un par de ejemplos, uno usando nombres, y otro usando la función BUSCARV().

Descarga del libro: Descarga CMCcalc.ods

11 Me gusta

Puesta en marcha:
Vete a la hoja CMCraw e introduce, en la celda B4 (llamada CMC_PRO_API_KEY) tu clave de acceso al API de CMC. Si todo ha ido bien, tendrás la hoja CMCdata con los datos descargados. Guarda el libro.

Uso de nombres:
Para aprovechar los datos descargados, cuando crees tus propias hojas (lo más sencillo es dentro del mismo libro) puedes usar estos nombres (son Rango, Precio en BTC, Precio en USD y Precio en EURO) :
El BTC es especial, y solo dispone de TRES nombres: BTCrank, USDporBTC y EURporBTC.
Para acceder a los datos del resto, por ejemplo LTC, dispones de CUATRO nombres: LTCrank, BTCporLTC, USDporLTC y EURporLTC. Para ETH por ejemplo serían: ETHrank, BTCporETH, USDporETH y EURporETH… y el resto de monedas igual.

Uso de BUSCARV:
No todos los datos descargados están disponibles mediante nombres, al resto deberás acceder mediante la función BUSCARV. Como la función BUSCARV es un poco complicada, hemos utilizado algunos nombres de celda/rango para facilitar la tarea.

El más importante es el OFFSET, que te indica que dato vas a extraer. Tiene 18 posible valores:

OFFSET_SYMBOL, OFFSET_RANK, OFFSET_USD_MARKETCAP
OFFSET_BTC_1h, OFFSET_BTC_24h, OFFSET_BTC_7d, OFFSET_BTC_POR
OFFSET_USD_1h, OFFSET_USD_24h, OFFSET_USD_7d, OFFSET_USD_POR
OFFSET_EUR_1h, OFFSET_EUR_24h, OFFSET_EUR_7d, OFFSET_EUR_POR
OFFSET_EMI_ACTUAL, OFFSET_EMI_TOTAL, OFFSET_EMI_PORC

La función BUSCARV la debes usar así: =BUSCARV("SYMBOL";DATOS;OFFSET;0). El nombre de rango DATOS y el cero del final se debe poner siempre igual.

  • Primero debes poner el SYMBOL de la moneda que deseas consultar entre comillas dobles, en el primer parámetro.

  • Después debes poner el OFFSET del dato que desees extraer, en el tercer parámetro.

Ejemplos:
Para obtener la variación del BTC en la última semana con el USD usaremos: BUSCARV(“BTC”;DATOS;OFFSET_USD_7d;0)

Para saber el número actual de ETH en circulación sería: BUSCARV(“ETH”;DATOS;OFFSET_EMI_ACTUAL;0)

1 me gusta

Más monedas:
Es muy fácil cambiar las monedas ya incluidas por otras, o añadir más monedas.

Cambiar moneda:
Para cambiar una moneda por otra, lo primero será sustituir el SYMBOL de la moneda a quitar, por el SYMBOL de la monedas a poner, en la lista de monedas a descargar (que se encuentra en la hoja CMCraw, celda B6). Cuidado no estropees la lista, los datos deben estar separados por comas y no llevar coma al final.

Después, en la hoja CMCdata, en las columnas A y B, sobreescribe el nombre y el SYMBOL de la moneda a quitar con los de la moneda a poner.

Añadir moneda:
Para añadir una nueva moneda, lo primero será añadir el SYMBOL de esa moneda a la lista de monedas a descargar, que se encuentra en la hoja CMCraw, celda B6. Cuidado no pongas coma al final.

Después deberás insertar una fila nueva en la posición que desees, y escribir en la primera columna el nombre de la moneda y en la segunda el SYMBOL de CMC para esa moneda. Después copia los datos de cualquier moneda, desde la tercera columna hasta el final y pégalo en la tercera columna de tu nueva fila.

Insertar nombres:
En ambos casos, el último paso será insertar los cuatro nombres que se usan en las otras monedas, pero adaptados a la nueva moneda.

Vete a la columna C de la moneda modificada, haz “Insertar”, “Nombres”, “Definir”. Introduce el nombre para el rango, que consiste en el SYMBOL de la moneda en mayúsculas más la palabra rank todo seguido. Por ejemplo, si el SYMBOL de la moneda es NEW, deberás introducir NEWrank. Acepta.

Vete a la columna H de la moneda modificada, y repite los pasos anteriores para introducir el nombre para el “Precio en BTC”, que consiste en el prefijo BTCpor más el SYMBOL de la moneda en mayúsculas. Por ejemplo, si el SYMBOL de la moneda es NEW, deberás introducir BTCporNEW.

Vete a la columna L de la moneda modificada, y repite los pasos anteriores para introducir el nombre para el “Precio en USD”, que consiste en el prefijo USDpor más el SYMBOL de la moneda en mayúsculas. Por ejemplo, si el SYMBOL de la moneda es NEW, deberás introducir USDporNEW.

Vete a la columna P de la moneda modificada, y repite los pasos anteriores para introducir el nombre para el “Precio en Euros”, que consiste en el prefijo EURpor más el SYMBOL de la moneda en mayúsculas. Por ejemplo, si el SYMBOL de la moneda es NEW, deberás introducir EURporNEW.

NOTA: los datos de la hoja CMCdata NO SE PUEDEN ORDENAR (se pierden los nombres).

1 me gusta

Una pasada. ya la tengo operativa…voy a entretenerme un rato

Gracias por el aporte

Muchas gracias.
Lo probaré.

Fenomenal curro,lo he descargado y visto por encima;y tiene buena pinta.
Ya sería una pasada añadir un par de hojas de calculo más con LIFO Y FIFO para temas fiscales con api de exchanges.:sunglasses:

Hola:

Llevo una temporada pensando en hacer un programa para gestionar mis criptos. La hoja de calculo que uso hasta ahora, la pobrecita no da más de sí. La herramienta elegida para el desarrollo es Velneo (una base de datos), por muchos motivos, con los cuales no os quiero aburrir. Pero la herramienta ahora mismo es lo de menos… Lo importante es el análisis inicial que estoy intentado terminar.

El programa deber calcular los saldos de los wallets automáticamente. Permitir compras y ventas de criptos con fiat, y permutas entre criptos. Calcular el incremento patrimonial (con FIFO). Consultas de comisiones. Y más cosas, claro, pero estas son las importantes.

Y el caso es que necesito ayuda, y creo que bastante.

Un pequeño resumen:

  • La aplicación la divido internamente en dos bloques: el bloque de gestión de “wallets tipo monedero” y el bloque de “wallets tipo exchange”. Los tipo monedero son nuestros monederos personales, y los de tipo exchange serán exchanges.

  • Existen tres operaciones que se pueden aplicar a cualquier wallet: 1) Ingreso, 2) Gasto, 3) Movimiento de wallet a wallet.

  • Hay otras tres operaciones, que solo se pueden aplicar a wallets tipo Exchange: 4) Compra, 5) Venta, 6) Permuta.

La parte de wallets tipo monedero creo que la tengo controlada, o sea que tengo experiencia en usarla, se como hacerla y el análisis que tengo me gusta bastante. El diseño es bastante sencillo (funcionara parecido a las cuentas bancarias, con debe y haber). No le veo mayor problema que una programación cuidadosa.

La parte de exchanges, pues la llevo mucho peor, apenas tengo experiencia en su uso (hombre, las funciones básicas las controlo y entiendo, pero las avanzadas, no). La “4) Compra” parece sencilla, pero la 5) y la 6) se las traen, por aquello del FIFO

En un par de días terminaré (si soy capaz :sweat_smile:) el análisis inicial. Si alguien quiere ayudarme con él, en la parte de los exchanges, se lo agradeceré mucho. Puede enviarme un privado o ponerlo en el hilo. Yo le haría llegar el análisis inicial y lo discutiríamos y mejoraríamos entre ambos.

Gracias y perdón por el tocho :pray:.

1 me gusta

Hola:

Esto es lo que se me ha ocurrido para implementar el patrimonio valorado y el sistema FIFO en la aplicación de cryptomonedas. Se aceptan criticas.

La idea esta inspirada en lo UTXOs de BTC y es muy similar…

Definimos un UP (Unidad Patrimonial) como una cantidad de una cierta moneda, cuyo valor de adquisición es conocido y único, que se origina en una única operación de compra o permuta. Como los UP pueden haber sido gastados ya, o seguir en mi poder, los clasificamos en UPC (unidad patrimonial en cartera) y UPG (unidad patrimonial gastada).

El conjunto de todos los UPC forman nuestra cartera o patrimonio. Estos datos son los más importantes, pues a ellos deberemos acudir cuando queramos calcular el precio de adquisición de una moneda gastada en una venta o permuta.

Los UPG ya están gastados, no forman parte de nuestra cartera actual, y solo existen a modo de histórico, para almacenar las operaciones y cálculos realizados.

Todos los UP comienzan su “vida” como UPC, y se originan en cualquier operación de compra o permuta, según la moneda adquirida.

Cuando hacemos una venta o permuta, deberemos buscar los UPC más antiguos de la moneda gastada, y calcular con ellos el valor de adquisición de la moneda gastada. Llamo a este algoritmo “calculo del valor de adquisición”.

Cuando realizamos esta operación, cogemos los UPC de la moneda gastada mas antiguos, hasta alcanzar la cantidad gastada (puede bastar con un UPC o necesitar varios, dependiendo de las cantidades concretas) y con ellos calculamos el precio de adquisición. En ese momento los UPC pasan a ser UPG.

Para rematar el algoritmo, hay que encargarse de poder coger UPCs para la valoración de forma parcial, es decir, casi nunca coincidirá el valor exacto de un UPC (o varios sumados) con el importe exacto vendido.

Cuando eso suceda, el ultimo UPC de la lista (el más reciente) lo dividiremos en dos, uno con la cantidad justa para alcanzar la cantidad de moneda gastada (el original, lo modificamos) y lo pasamos a UPG. A la vez, crearemos un nuevo UPC casi idéntico al anterior, solo que con la cantidad correspondiente al cambio/resto/diferencia.

Los UPC estarán siempre enlazados con la operación de compra o permuta que los genero, y los UPG, además de lo anterior, estarán enlazados con la operación de venta o permuta en que se usaron para la valoración (o sea, se gastaron).

¿Funcionará? :relaxed: