ARTURART commited on
Commit
bdf85f0
·
verified ·
1 Parent(s): 184bb36

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -0
app.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import yfinance as yf
2
+ import pandas as pd
3
+ import matplotlib.pyplot as plt
4
+ from prophet import Prophet
5
+ import gradio as gr
6
+
7
+ def previsao_precos(ticker, start_date, end_date, future_date):
8
+ # Obter dados históricos
9
+ data = yf.download(ticker, start=start_date, end=end_date)
10
+ data.reset_index(inplace=True)
11
+ data = data[['Date', 'Close']]
12
+ data.columns = ['ds', 'y']
13
+
14
+ if data.empty:
15
+ return "Não foram encontrados dados para o intervalo de datas especificado.", None
16
+
17
+ # Ajustar o modelo Prophet
18
+ model = Prophet()
19
+ model.fit(data)
20
+
21
+ # Fazer previsões
22
+ future = model.make_future_dataframe(periods=(pd.to_datetime(future_date) - data['ds'].max()).days, freq='B')
23
+ forecast = model.predict(future)
24
+
25
+ # Criar gráfico
26
+ plt.figure(figsize=(12, 6))
27
+ plt.plot(data['ds'], data['y'], label='Preço de Fechamento Real', color='blue')
28
+ plt.plot(forecast['ds'], forecast['yhat'], label='Previsão de Preço de Fechamento', color='orange', linestyle='--')
29
+ plt.fill_between(forecast['ds'], forecast['yhat_lower'], forecast['yhat_upper'], color='orange', alpha=0.2)
30
+ plt.title(f'Previsão de Preço de Fechamento de {ticker} até {future_date}')
31
+ plt.xlabel('Data')
32
+ plt.ylabel('Preço de Fechamento')
33
+ plt.xticks(rotation=45)
34
+ plt.legend()
35
+ plt.grid()
36
+
37
+ plt.savefig('grafico.png')
38
+ plt.close()
39
+
40
+ return forecast.tail(10).to_string(), 'grafico.png'