Script para el cálculo fiscal de inversiones periódicas (DCA) en Binance

Carlox23Wall
ForoCoches: Usuario
#1
Buenas a todos, es mi primer post así que he pensado en compartir un pequeño tutorial, concretamente sobre un script que diseñé en Python para calcular el tema de impuestos en cripto. Está destinado para aquellos que hacen DCA en Binance, aunque es fácilmente adaptable a otras plataformas, y más hoy en día con ayuda de ChatGPT. El objetivo del script es ver cómo se resolvería la fiscalidad el día que se quiera vender una parte o todo de lo acumulado mediante esas compras periódicas, con la intención de cumplir la legalidad y no tener ningún problema con Hacienda.

(DISCLAIMER: sé que hay calculadoras y softwares online, pero este método que propongo es muy rápido de usar y además evita compartir tu información fiscal con terceros, así que espero que a alguien le resulte útil.
Para los informáticos/programadores este tutorial resultará un poco básico en algunas partes, ya que he querido explicar todo paso a paso para que cualquier persona pueda seguirlo.
Dejo un enlace a los scripts al final del tutorial.)

Vamos al lío:


1. Prerrequisitos:
  • Tener instalado Python. Para los que uséis Windows simplemente os lo podéis descargar desde la store oficial de Microsoft.
  • El siguiente paso es comprobar que se ha instalado y añadir la librería pandas, que será necesaria. Para ello abriremos la consola, escribiremos python y daremos al enter. Si todo va bien lo cerraremos escribiendo exit() y presionaremos enter nuevamente. Ahora instalaremos la librería de pandas con el comando pip install pandas y presionando enter.



2. Binance:
  • Ahora vamos a dirigirnos a Binance para encontrar y descargarnos los datos de nuestras compras. En concreto si hacéis DCA tendréis que dirigiros al apartado de Órdenes del panel izquierdo, luego Orden fiat y por último Compra recurrente. En mi caso llevo sólo un mes haciendo DCA en Binance, y podéis ver como hay una orden los jueves y otra los domingos.
  • Ahora pincharemos en Historial de órdenes para descargarnos el excel de todo el histórico. Y haremos esto para cada compra recurrente que tengamos de la misma criptomoneda. (En mi caso dos, jueves y domingo. Si tenéis más de una compra recurrente tendréis que cambiar el nombre al excel que os descarguéis, ya que ambos se llamarán por defecto Exportar historial de órdenes de compra recurrente.xlsx, en mi caso en los siguientes pasos veréis como los renombré a Exportar historial de órdenes de compra recurrente jueves.xlsx y Exportar historial de órdenes de compra recurrente domingo.xlsx)
  • Si abrimos los excel que acabamos de descargar veremos la siguiente información. (Adjunto dos tablas excel, una por cada compra periódica que he descargado en mi ejemplo). AVISO: A partir de aquí simulo el uso de la herramienta con datos inventados pero con la misma estructura que habría en un caso real.
3. Uso de los scripts:
  • Vamos a irnos ahora a la carpeta de nuestro ordenador donde hayamos puesto juntos tanto los scripts como los excel de Binance. En ese directorio pincharemos en la barra superior del explorador, que nos indica la ruta donde estamos, escribiremos cmd y pulsaremos enter. Esto hará que se abra una terminal de windows en el directorio donde tenemos los archivos.
  • Revisaremos ahora antes de ejecutar el primer script (script_generar_excel.py), que coincida los nombres de los archivos con los de vuestros excel, y que ajustemos el número de archivos a nuestro caso. (Si tengo tres excel añadiré el tercer archivo y tendré que modificar la línea once del script, añadiéndolo a la concatenación.)
  • Con esto revisado guardamos el script y lo ejecutamos en la terminal que abrimos antes. Escribimos python script_generar_excel.py , presionamos enter y deberíamos de ver que se ha generado un nuevo excel llamado Historial_completo.xlsx.
  • Ahora si abrimos ese archivo veremos que las transacciones se han juntado en un único archivo, que se han ordenado cronológicamente y que se han añadido ciertas columnas extra que contienen información valiosa. La columna Precio BTC indica a cuantos euros por bitcoin se hizo la transacción, dato crucial para calcular a posteriori el verdadero incremento patrimonial. Euros reales compra calcula los euros que realmente se destinaron a comprar BTC, restando las fees.
  • Ahora abriremos el segundo y último script, script_calcular_impuestos_venta.py, en el cual tendremos que modificar en las líneas diez y once, indicando cuántos bitcoin pensamos vender y cuál será el precio de venta en euros. (En el ejemplo se venden 0,895 bitcoins a un precio de ocho mil euros cada bitcoin. Como en el excel inventado se compraron a un precio de entre dos mil y cinco mil euros, vamos a tener beneficios seguro, y por tanto impuestos que pagar.)
  • Con el script actualizado con los parámetros de venta adecuados, escribiremos el siguiente comando en la consola: python script_calcular_impuestos_venta.py. Y veremos como se generan tres ficheros y la terminal nos indica la información fiscal pertinente. En este ejemplo vemos como tendríamos un ingreso total por la venta de 7.160,00€, de los cuales 4.928,31€ han sido incremento de patrimonio, y por lo tanto de esos 4.928,31€ brutos nos tocará pagar 936,38€ en impuestos, dejando nuestra ganancia neta de patrimonio en 3.991,93€.
  • Para entender lo que hace el script de forma automática, debemos entender como se tributa la ganancia patrimonial en España por venta de criptomonedas. Para resumirlo mucho:
  1. La ganancia o pérdida patrimonial se calcula como la diferencia entre el valor de venta y el valor de adquisición (lo que pagaste por esas criptos). Fórmula básica --> Ganancia = Valor de transmisión - Valor de adquisición
  2. Método FIFO (First In, First Out): significa que cuando vendes una cripto, se considera que estás vendiendo las primeras que compraste, por eso el script calcula primero las ganancias teniendo en cuenta el orden cronológico en el que hiciste las compras. Si vendes 1 bitcoin, se tomarán en cuenta tus primeras compras de bitcoin hasta que sean suficientes todas ellas para llegar a ese bitcoin que vendes.
  3. Tipo impositivo: Una vez que tienes la ganancia patrimonial bruta total del año, tributas según tramos:
    • Hasta 6.000 € → 19%
    • 6.000,01 € a 50.000 € → 21%
    • 50.000,01 € a 200.000 € → 23%
    • Más de 200.000 € → 28%
  • Entendido esto podemos abrir ahora el archivo Historial_restante.xlsx y comprenderlo, ya que en ese archivo se han quedado las compras de criptomonedas restantes después de tu operación de venta. En el ejemplo hemos simulado que hemos vendido 0,895 bitcoin, y nuestro excel original decía que en las dos primeras transacciones compramos aproximadamente 0,47 y 0,67, por lo que habremos vendido en su totalidad los 0,47 bitcoin de esa primera compra, y una parte de los 0,67 bitcoin de la segunda compra, la parte que nos hacía falta hasta llegar a los 0,895 bitcoin que queríamos vender. El excel resultante está actualizado por tanto con tu patrimonio de bitcoin restante después de la venta, y en caso de que quisieras calcular nuevas ventas, solo tendrías que renombrarlo a Historial_completo.xlsx.
  • En la imagen del Historial_restante.xlsx podéis ver como la transacción fake 15, que era la primera cronológicamente, ha desaparecido, y la transacción fake 4 está actualizada con el monto restante de bitcoin que queda tras su venta parcial.
Bueno ha estado bien para ser el primer post, aquí os dejo el enlace a Drive para descargar los dos scripts usados: enlace.
Nolodanox
Quijote chalado
#2
Me quedo pole aquí.

Buen curro shur. Al menos viene bien conocer cuánto se irá en la parte proporcional a los impuestos.
← A Criptomonedas