Added 24h change total

This commit is contained in:
socks 2021-02-18 02:37:15 +00:00
parent 2863034a4b
commit 8df8712e61
2 changed files with 28 additions and 7 deletions

24
main.py
View file

@ -28,19 +28,33 @@ async def portfolio(ctx):
async def pf2(ctx):
user = str(ctx.message.author)
portfolio = database.get_stocks(user)
yesterday_portfolio_value = {}
current_portfolio_value = {}
data = []
for stock in portfolio.keys():
delta, old_price = yfi.get_delta(stock, return_old_price=True)
current_price = yfi.get_current_price(stock)
data.append([
stock,
Decimal(portfolio[stock]),
round(float(Decimal(portfolio[stock]) * Decimal(yfi.get_current_price(stock))), 2),
str( round(yfi.get_delta(stock), 2) ) + "%"
round(float(Decimal(portfolio[stock]) * Decimal(current_price)), 2),
str( round(delta, 2) ) + "%"
])
data.append(["Total", "", round( sum([x[2] for x in data]), 2) , ""])
yesterday_portfolio_value[stock] = Decimal(portfolio[stock]) * Decimal(old_price)
current_portfolio_value[stock] = Decimal(portfolio[stock]) * Decimal(current_price)
yesterday_portfolio_total_value = sum([yesterday_portfolio_value[stock] for stock in yesterday_portfolio_value])
current_portfolio_total_value = sum([current_portfolio_value[stock] for stock in current_portfolio_value])
total_delta = 100 * ( (current_portfolio_total_value / yesterday_portfolio_total_value) - 1 )
data.append(["Total", "", round( sum([x[2] for x in data]), 2) , str( round(total_delta, 2) ) + "%"])
image = t2.generate_table(
headers = ["Ticker", "Shares", "Value ($)", "Delta"],
headers = ["Ticker", "Shares", "Value ($)", "24h"],
data = data,
title = str(user + "'s Portfolio")
)

11
yfi.py
View file

@ -13,9 +13,16 @@ def get_current_price(ticker):
todays_data = yf_obj.history(period='1d')
return round(todays_data['Close'][0], 2)
def get_delta(ticker):
def get_delta(ticker, return_old_price=False):
yf_obj = yf.Ticker(ticker)
old_price = yf_obj.history(interval='1d')['Close'][-2]
current_price = get_current_price(ticker)
delta = 100 * ( (current_price / old_price) - 1 )
return delta
if return_old_price:
return delta, old_price
else:
return delta
def get_delta_old_price(ticker):
yf_obj = yf.Ticker(ticker)
return yf_obj.history(interval='1d')['Close'][-2]