Downloads · 30 days
0
Nrjpt/Inverstrong
Inverstrong is a machine learning model from Nrjpt. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
import pandas as pd import numpy as np import matplotlib.pyplot as plt import requests import json
Downloads · 30 days
0
Access
Public
Updated Feb 18, 2024
Repo size
—
Likes
0
Public
Click a slice to open those files.
.md7.1 KB · 82%
From the Hugging Face model README
import pandas as pd import numpy as np import matplotlib.pyplot as plt import requests import json
etfs = ["SPY", "EEM", "GLD", "QQQ", "IWM"] acciones = ["AAPL", "AMZN", "MSFT", "TSLA", "GOOG"]
inicio = "2020-01-01" fin = "2024-02-17"
tasa = 0.05
def obtener_datos(simbolo, inicio, fin):
respuesta = requests.get(url)
datos = pd.read_csv(respuesta.text, parse_dates=["Date"], index_col="Date")
return datos
dataframes = {}
for etf in etfs:
datos = obtener_datos(etf, inicio, fin)
dataframes[etf] = datos
for accion in acciones:
datos = obtener_datos(accion, inicio, fin)
dataframes[accion] = datos
def calcular_vpn(flujos, tasa):
vpn = flujos[0]
for i in range(1, len(flujos)): # Actualizar el VPN con el valor del flujo actualizado vpn += flujos[i] / (1 + tasa) ** i
return vpn
def calcular_tir(flujos):
tir = np.irr(flujos)
return tir
def calcular_roi(ganancia, costo):
roi = ganancia / costo
return roi
metricas = {}
for etf in etfs:
datos = dataframes[etf]
precio_inicial = datos["Adj Close"][0] precio_final = datos["Adj Close"][-1]
dividendo_total = datos["Dividends"].sum()
flujo_inicial = -precio_inicial flujo_final = precio_final + dividendo_total
vpn = calcular_vpn([flujo_inicial, flujo_final], tasa) tir = calcular_tir([flujo_inicial, flujo_final]) roi = calcular_roi(flujo_final, -flujo_inicial)
metricas[etf] = {"VPN": vpn, "TIR": tir, "ROI": roi}
for accion in acciones:
datos = dataframes[accion]
precio_inicial = datos["Adj Close"][0] precio_final = datos["Adj Close"][-1]
dividendo_total = datos["Dividends"].sum()
flujo_inicial = -precio_inicial flujo_final = precio_final + dividendo_total
vpn = calcular_vpn([flujo_inicial, flujo_final], tasa) tir = calcular_tir([flujo_inicial, flujo_final]) # Corregir el paréntesis roi = calcular_roi(flujo_final, -flujo_inicial)
metricas[accion] = {"VPN": vpn, "TIR": tir, "ROI": roi}
metricas = pd.DataFrame(metricas)
print(metricas)
import plotly.express as px
fig1 = px.bar(metricas.T, x=metricas.T.index, y="VPN", title="VPN de los ETFs y las acciones")
fig1.show()
fig2 = px.bar(metricas.T, x=metricas.T.index, y="TIR", title="TIR de los ETFs y las acciones")
fig2.show()
fig3 = px.bar(metricas.T, x=metricas.T.index, y="ROI", title="ROI de los ETFs y las acciones")
fig3.show()
texto = """ Este bashboard muestra las métricas de inversión de los ETFs y las acciones que has elegido, desde el 1 de enero de 2020 hasta el 17 de febrero de 2024. Las métricas son el VPN, la TIR y el ROI, que miden la rentabilidad, el riesgo y el beneficio de cada inversión.
El primer gráfico muestra el VPN de cada ETF y acción, que es la diferencia entre el valor actual de los ingresos futuros y el valor actual de los costos futuros de una inversión. Un VPN positivo indica que la inversión es rentable, mientras que un VPN negativo indica que la inversión es deficitaria. Como se puede observar, todos los ETFs y acciones tienen un VPN positivo, lo que significa que han generado más ingresos que costos en el periodo analizado. El ETF que tiene el mayor VPN es el SPY, que replica el índice S&P 500, seguido por el QQQ, que replica el índice Nasdaq 100. La acción que tiene el mayor VPN es la de Tesla, que ha tenido un crecimiento espectacular en los últimos años.
El segundo gráfico muestra la TIR de cada ETF y acción, que es la tasa de descuento que hace que el VPN de una inversión sea igual a cero. La TIR representa la rentabilidad anual de una inversión. Una TIR mayor que el costo de capital indica que la inversión es rentable, mientras que una TIR menor que el costo de capital indica que la inversión es deficitaria. Como se puede observar, todos los ETFs y acciones tienen una TIR mayor que el costo de capital, que hemos asumido que es del 5%, lo que significa que han sido inversiones rentables en el periodo analizado. El ETF que tiene la mayor TIR es el GLD, que replica el precio del oro, seguido por el IWM, que replica el índice Russell 2000. La acción que tiene la mayor TIR es la de Tesla, que ha tenido una rentabilidad impresionante en los últimos años.
El tercer gráfico muestra el ROI de cada ETF y acción, que es la