From afa8be811262a030dabd40a552cbdc3b293ae3c2 Mon Sep 17 00:00:00 2001 From: zzlgreat Date: Mon, 5 Jan 2026 18:17:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A6=82=E5=BF=B5=E6=9D=BF=E5=9D=97=E9=87=8D?= =?UTF-8?q?=E5=81=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/app_vx.cpython-310.pyc | Bin 153340 -> 160941 bytes app_vx.py | 90 +++++++++++++++++------------ 2 files changed, 53 insertions(+), 37 deletions(-) diff --git a/__pycache__/app_vx.cpython-310.pyc b/__pycache__/app_vx.cpython-310.pyc index a772109ee2d7c6e92cb3ec8068c592a8f3d63b68..466e46f410fc4c99b70bd8d2e3790726013f1ff3 100644 GIT binary patch delta 58256 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 Z67`KYPn@ey%z{V|*=RUzf8&1d{{a;v{AvII delta 49113 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 OBAcb0)_uYG+W!GkS2#KV diff --git a/app_vx.py b/app_vx.py index 268cb185..2b47fd60 100644 --- a/app_vx.py +++ b/app_vx.py @@ -723,6 +723,32 @@ SYWG_INDUSTRY_CACHE = { 5: {} # level5: 四级行业 } +# 交易日缓存(从 tdays.csv 加载) +TRADING_DAYS_SET = set() + +def load_trading_days(): + """从 tdays.csv 加载交易日数据到内存""" + global TRADING_DAYS_SET + csv_path = os.path.join(os.path.dirname(__file__), 'tdays.csv') + try: + with open(csv_path, 'r', encoding='utf-8') as f: + reader = csv.reader(f) + next(reader) # 跳过表头 + for row in reader: + if row: + # 解析日期格式 2010/1/4 -> date 对象 + date_str = row[0].strip() + parts = date_str.split('/') + if len(parts) == 3: + year, month, day = int(parts[0]), int(parts[1]), int(parts[2]) + TRADING_DAYS_SET.add(datetime(year, month, day).date()) + print(f"[交易日] 已加载 {len(TRADING_DAYS_SET)} 个交易日 (范围: {min(TRADING_DAYS_SET)} ~ {max(TRADING_DAYS_SET)})") + except Exception as e: + print(f"[交易日] 加载 tdays.csv 失败: {e}") + +# 启动时加载交易日 +load_trading_days() + # 初始化扩展 db = SQLAlchemy(app) mail = Mail(app) @@ -4453,7 +4479,7 @@ def api_event_related_stocks(event_id): event_time = event.start_time if event.start_time else event.created_at current_time = datetime.now() - # 定义交易日和时间范围计算函数(与 app.py 中的逻辑完全一致) + # 定义交易日和时间范围计算函数(使用内存中的 TRADING_DAYS_SET) def get_trading_day_and_times(event_datetime): event_date = event_datetime.date() event_time_only = event_datetime.time() @@ -4462,44 +4488,34 @@ def api_event_related_stocks(event_id): market_open = dt_time(9, 30) market_close = dt_time(15, 0) - with engine.connect() as conn: - # First check if the event date itself is a trading day - is_trading_day = conn.execute(text(""" - SELECT 1 - FROM trading_days - WHERE EXCHANGE_DATE = :date - """), {"date": event_date}).fetchone() is not None + def get_next_trading_day(from_date): + """从 TRADING_DAYS_SET 获取下一个交易日""" + # 最多查找 30 天 + for i in range(1, 31): + next_date = from_date + timedelta(days=i) + if next_date in TRADING_DAYS_SET: + return next_date + return None - if is_trading_day: - # If it's a trading day, determine time period based on event time - if event_time_only < market_open: - # Before market opens - use full trading day - return event_date, market_open, market_close - elif event_time_only > market_close: - # After market closes - get next trading day - next_trading_day = conn.execute(text(""" - SELECT EXCHANGE_DATE - FROM trading_days - WHERE EXCHANGE_DATE > :date - ORDER BY EXCHANGE_DATE LIMIT 1 - """), {"date": event_date}).fetchone() - # Convert to date object if we found a next trading day - return (next_trading_day[0].date() if next_trading_day else None, - market_open, market_close) - else: - # During trading hours - return event_date, event_time_only, market_close + # 检查事件日期是否是交易日 + is_trading_day = event_date in TRADING_DAYS_SET + + if is_trading_day: + # If it's a trading day, determine time period based on event time + if event_time_only < market_open: + # Before market opens - use full trading day + return event_date, market_open, market_close + elif event_time_only > market_close: + # After market closes - get next trading day + next_trading_day = get_next_trading_day(event_date) + return (next_trading_day, market_open, market_close) else: - # If not a trading day, get next trading day - next_trading_day = conn.execute(text(""" - SELECT EXCHANGE_DATE - FROM trading_days - WHERE EXCHANGE_DATE > :date - ORDER BY EXCHANGE_DATE LIMIT 1 - """), {"date": event_date}).fetchone() - # Convert to date object if we found a next trading day - return (next_trading_day[0].date() if next_trading_day else None, - market_open, market_close) + # During trading hours + return event_date, event_time_only, market_close + else: + # If not a trading day, get next trading day + next_trading_day = get_next_trading_day(event_date) + return (next_trading_day, market_open, market_close) trading_day, start_time, end_time = get_trading_day_and_times(event_time)