Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -136,6 +136,7 @@ def advanced_xgboost_predict(data, predict_days):
|
|
| 136 |
# 1. 獲取外部市場數據
|
| 137 |
start_date = data.index.min() - pd.Timedelta(days=5) # 提前幾天以確保數據填充
|
| 138 |
end_date = data.index.max()
|
|
|
|
| 139 |
|
| 140 |
external_symbols = {'DJI': '^DJI', 'NAS': '^IXIC', 'SOX': '^SOX', 'S&P_500': '^GSPC', 'TSM_ADR': 'TSM'}
|
| 141 |
|
|
@@ -155,8 +156,8 @@ def advanced_xgboost_predict(data, predict_days):
|
|
| 155 |
input_df['NEWS'] = news_score if news_score is not None else 0
|
| 156 |
|
| 157 |
# 【修改】: 獲取最新月份的單一數值
|
| 158 |
-
input_df['business_climate'] =
|
| 159 |
-
input_df['PMI'] =
|
| 160 |
|
| 161 |
# 5. 數據清洗與格式化
|
| 162 |
# 向前填充所有缺失值 (例如假日)
|
|
@@ -299,27 +300,27 @@ def calculate_volume_profile(df, num_bins=50):
|
|
| 299 |
print(f"Volume profile 計算錯誤: {e}")
|
| 300 |
return None, None, None
|
| 301 |
|
| 302 |
-
def get_business_climate_data1(get_latest_value=False):
|
| 303 |
-
|
| 304 |
-
|
| 305 |
-
|
| 306 |
-
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
def get_pmi_data1(get_latest_value=False):
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
|
| 324 |
|
| 325 |
def generate_gemini_analysis(stock_name, stock_symbol, period, data):
|
|
|
|
| 136 |
# 1. 獲取外部市場數據
|
| 137 |
start_date = data.index.min() - pd.Timedelta(days=5) # 提前幾天以確保數據填充
|
| 138 |
end_date = data.index.max()
|
| 139 |
+
|
| 140 |
|
| 141 |
external_symbols = {'DJI': '^DJI', 'NAS': '^IXIC', 'SOX': '^SOX', 'S&P_500': '^GSPC', 'TSM_ADR': 'TSM'}
|
| 142 |
|
|
|
|
| 156 |
input_df['NEWS'] = news_score if news_score is not None else 0
|
| 157 |
|
| 158 |
# 【修改】: 獲取最新月份的單一數值
|
| 159 |
+
input_df['business_climate'] = 15
|
| 160 |
+
input_df['PMI'] = 46.7
|
| 161 |
|
| 162 |
# 5. 數據清洗與格式化
|
| 163 |
# 向前填充所有缺失值 (例如假日)
|
|
|
|
| 300 |
print(f"Volume profile 計算錯誤: {e}")
|
| 301 |
return None, None, None
|
| 302 |
|
| 303 |
+
# def get_business_climate_data1(get_latest_value=False):
|
| 304 |
+
# try:
|
| 305 |
+
# if not os.path.exists('business_climate.csv'): return None
|
| 306 |
+
# df = pd.read_csv('business_climate.csv', index_col='Date', parse_dates=True)
|
| 307 |
+
# if get_latest_value:
|
| 308 |
+
# return df['Index'].iloc[-1]
|
| 309 |
+
# return df
|
| 310 |
+
# except Exception as e:
|
| 311 |
+
# print(f"無法獲取景氣燈號資料: {str(e)}")
|
| 312 |
+
# return None if get_latest_value else pd.DataFrame()
|
| 313 |
+
|
| 314 |
+
# def get_pmi_data1(get_latest_value=False):
|
| 315 |
+
# try:
|
| 316 |
+
# if not os.path.exists('taiwan_pmi.csv'): return None
|
| 317 |
+
# df = pd.read_csv('taiwan_pmi.csv', index_col='Date', parse_dates=True)
|
| 318 |
+
# if get_latest_value:
|
| 319 |
+
# return df['Index'].iloc[-1]
|
| 320 |
+
# return df
|
| 321 |
+
# except Exception as e:
|
| 322 |
+
# print(f"無法獲取 PMI 資料: {str(e)}")
|
| 323 |
+
# return None if get_latest_value else pd.DataFrame()
|
| 324 |
|
| 325 |
|
| 326 |
def generate_gemini_analysis(stock_name, stock_symbol, period, data):
|