Added 24h change total
This commit is contained in:
parent
2863034a4b
commit
8df8712e61
2 changed files with 28 additions and 7 deletions
24
main.py
24
main.py
|
@ -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
11
yfi.py
|
@ -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]
|
||||
|
|
Loading…
Add table
Reference in a new issue