KYTHY commited on
Commit
de0116f
·
verified ·
1 Parent(s): 76f40c6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -8
app.py CHANGED
@@ -118,12 +118,29 @@ def fetch_financial_news(keyword):
118
 
119
 
120
  # --------------------------
121
- # ดึงราคาหุ้นย้อนหลัง 14 วัน
 
122
  # --------------------------
123
  @st.cache_data(ttl=3600)
124
  def fetch_stock_price(symbol):
125
  try:
126
- df = yf.download(symbol, period="14d", interval="1d")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  df = df.reset_index()[["Date", "Close"]]
128
  df.rename(columns={"Date": "date", "Close": "price"}, inplace=True)
129
  df["date"] = pd.to_datetime(df["date"])
@@ -134,7 +151,7 @@ def fetch_stock_price(symbol):
134
 
135
 
136
  # --------------------------
137
- # MAIN APP
138
  # --------------------------
139
  def main():
140
  st.title("📰 SentimentSync NewsAI")
@@ -194,9 +211,9 @@ def main():
194
  future_dates = [df_sorted["date"].max() + timedelta(days=i) for i in range(1, future_days + 1)]
195
  future_preds = model.predict(future_timestamps.reshape(-1, 1))
196
 
197
- # ดึงราคาหุ้น
198
  _, symbol = resolve_company_symbol(keyword)
199
- stock_df = fetch_stock_price(symbol)
200
 
201
  # Plot
202
  fig = go.Figure()
@@ -212,9 +229,9 @@ def main():
212
  mode="lines+markers", name="Predicted Sentiment (7-day Forecast)",
213
  line=dict(color="orange", dash="dash")
214
  ))
215
- # Stock price
216
  if not stock_df.empty:
217
- fig.add_trace(go.Scatter(
218
  x=stock_df["date"], y=stock_df["price"],
219
  mode="lines+markers", name=f"{symbol} Stock Price",
220
  line=dict(color="green"), yaxis="y2"
@@ -238,4 +255,4 @@ def main():
238
 
239
  if __name__ == "__main__":
240
  nltk.download("stopwords", quiet=True)
241
- main()
 
118
 
119
 
120
  # --------------------------
121
+ # (*** ส่วนที่แก้ไข ***)
122
+ # ดึงราคาหุ้นย้อนหลัง (แก้ไขให้ตรงกับช่วงข่าว)
123
  # --------------------------
124
  @st.cache_data(ttl=3600)
125
  def fetch_stock_price(symbol):
126
  try:
127
+ # --- (เริ่มการแก้ไข) ---
128
+ # ดึงข้อมูลย้อนหลัง 8 วัน (เพื่อให้ครอบคลุมช่วงข่าว 7 วัน)
129
+ # เราใช้ start/end ที่ชัดเจน แทน period="14d"
130
+ # เพื่อให้แน่ใจว่าช่วงเวลาตรงกับข่าวที่เพิ่งดึงมา
131
+ end_date = datetime.now()
132
+ start_date = end_date - timedelta(days=8)
133
+
134
+ df = yf.download(symbol,
135
+ start=start_date.strftime('%Y-%m-%d'),
136
+ end=end_date.strftime('%Y-%m-%d'),
137
+ interval="1d")
138
+ # --- (สิ้นสุดการแก้ไข) ---
139
+
140
+ if df.empty:
141
+ st.warning("ไม่พบข้อมูลราคาหุ้นในช่วง 8 วันที่ผ่านมา")
142
+ return pd.DataFrame()
143
+
144
  df = df.reset_index()[["Date", "Close"]]
145
  df.rename(columns={"Date": "date", "Close": "price"}, inplace=True)
146
  df["date"] = pd.to_datetime(df["date"])
 
151
 
152
 
153
  # --------------------------
154
+ # MAIN APP (เหมือนเดิมทุกประการ)
155
  # --------------------------
156
  def main():
157
  st.title("📰 SentimentSync NewsAI")
 
211
  future_dates = [df_sorted["date"].max() + timedelta(days=i) for i in range(1, future_days + 1)]
212
  future_preds = model.predict(future_timestamps.reshape(-1, 1))
213
 
214
+ # ดึงราคาหุ้น (นี่จะเรียกใช้ฟังก์ชันที่แก้ไขแล้ว)
215
  _, symbol = resolve_company_symbol(keyword)
216
+ stock_df = fetch_stock_price(symbol)
217
 
218
  # Plot
219
  fig = go.Figure()
 
229
  mode="lines+markers", name="Predicted Sentiment (7-day Forecast)",
230
  line=dict(color="orange", dash="dash")
231
  ))
232
+ # Stock price (ตอนนี้จะแสดงผลตรงช่วงเวลาแล้ว)
233
  if not stock_df.empty:
234
+ fig.add_trac(go.Scatter(
235
  x=stock_df["date"], y=stock_df["price"],
236
  mode="lines+markers", name=f"{symbol} Stock Price",
237
  line=dict(color="green"), yaxis="y2"
 
255
 
256
  if __name__ == "__main__":
257
  nltk.download("stopwords", quiet=True)
258
+ main()