Untitled
unknown
plain_text
2 years ago
1.6 kB
11
Indexable
@bot.command(name='stock_trend')
async def stock_trend(ctx, symbol):
"""Get stock information and plot last year's data."""
URL = f"https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol={symbol}&apikey=ROKREWF5N63OKVU4"
r = requests.get(URL)
if r.status_code == 200:
data = r.json()
if 'Time Series (Daily)' in data:
time_series = data['Time Series (Daily)']
# Extracting data for the last year
last_year_dates = list(time_series.keys())[:252] # Assuming data is available for each business day
last_year_close_prices = [float(time_series[date]['4. close']) for date in last_year_dates]
# Plotting the data
plt.figure(figsize=(10, 6))
plt.plot(last_year_dates, last_year_close_prices, label='Closing Price')
plt.title(f"Stock Data for {symbol} - Last Year")
plt.xlabel("Date")
plt.ylabel("Closing Price")
plt.xticks(rotation=45)
plt.legend()
# Save the plot to a BytesIO object
image_stream = BytesIO()
plt.savefig(image_stream, format='png')
plt.close()
# Send the plot as an image
image_stream.seek(0)
await ctx.send(file=discord.File(image_stream, filename='stock_plot.png'))
else:
await ctx.send("Error: Time Series (Daily) not found in the API response.")
else:
await ctx.send(f"Error: Unable to fetch data. Status code: {r.status_code}")
Editor is loading...
Leave a Comment