# A 股事件-市场时间线分析工具链:数据字典 > 项目路径:`C:\Users\lookt\a_stock_timeline` > 数据库:`data/a_stock.db`(SQLite) > 数据导出:`data/a_stock_all.xlsx`(8 个 Sheet) --- ## 一、整体架构 ``` 数据采集层(src/fetcher/) │ ▼ 数据持久层(data/a_stock.db — 8 张表) │ ├──► CSV 备份(data/raw/) │ ▼ 时间线对齐层(src/align/) │ ▼ 可视化层(src/viz/) ``` --- ## 二、各表详细说明 --- ### 2.1 `trade_calendar` —— 交易日历 | 属性 | 说明 | |---|---| | 行数 | 8,797 | | 时间范围 | 1990-12-19 至今 | | 数据源 | AkShare `tool_trade_date_hist_sina` | | 用途 | 判断某日是否为交易日;时间线对齐的锚点 | **字段:** | 字段名 | 类型 | 说明 | |---|---|---| | `trade_date` | TEXT(YYYY-MM-DD) | 日期 | | `is_trade_day` | INTEGER(0/1) | 1=交易日,0=非交易日(周末/节假日) | **使用示例:** - `WHERE is_trade_day = 1` 筛选实际交易日 - 与 `stock_daily` 做 JOIN,确认某日是否有指数数据 - 用于快讯/新闻时间戳补全(若时间戳缺失日期,默认填最近交易日) --- ### 2.2 `stock_daily` —— A 股主要指数日线行情 | 属性 | 说明 | |---|---| | 行数 | 315 | | 指数数量 | 5 只(上证、深证、沪深300、创业板、科创50) | | 时间范围 | 近 90 个交易日 | | 数据源 | AkShare `index_zh_a_hist` | | 用途 | 反映大盘整体走势,是时间线的"市场背景层" | **字段:** | 字段名 | 类型 | 说明 | |---|---|---| | `ts_code` | TEXT | 指数代码(sh000001=上证综指,sz399001=深证成指,sh000300=沪深300,sz399006=创业板指,sh000688=科创50) | | `trade_date` | TEXT(YYYY-MM-DD) | 交易日期 | | `open` | REAL | 开盘点位 | | `high` | REAL | 最高点位 | | `low` | REAL | 最低点位 | | `close` | REAL | 收盘点位 | | `volume` | REAL | 成交量(股) | | `amount` | REAL(可能为 NULL) | 成交额(元),部分指数无成交额数据 | **指数代码速查:** | ts_code | 名称 | |---|---| | sh000001 | 上证综指 | | sz399001 | 深证成指 | | sh000300 | 沪深300 | | sz399006 | 创业板指 | | sh000688 | 科创50 | **分析提示:** - 配合 `pct_change = (close - prev_close) / prev_close * 100` 计算日收益率 - 与宏观事件 JOIN,观察重大政策/数据发布前后指数的短期反应 - 与龙虎榜 JOIN,识别"指数下跌 + 游资活跃"的异常交易日 --- ### 2.3 `lhb_daily` —— 龙虎榜明细 | 属性 | 说明 | |---|---| | 行数 | 409 | | 时间范围 | 近 90 个交易日 | | 数据源 | AkShare `stock_lhb_detail_daily_sina` | | 用途 | 追踪活跃游资席位的操作标的,识别短线热点 | **字段:** | 字段名 | 类型 | 说明 | |---|---|---| | `trade_date` | TEXT(YYYY-MM-DD) | 上榜日期 | | `ts_code` | TEXT | 股票代码 | | `name` | TEXT | 股票名称(可能有编码问题,实际显示正常) | | `close` | REAL | 上榜日收盘价 | | `pct_change` | REAL | 当日涨跌幅(%) | | `amount` | REAL | 龙虎榜成交金额(万元) | | `reason` | TEXT | 上榜原因(如:涨跌幅偏离值达7%、日换手率达20%等) | **常见上榜原因含义:** | reason 关键词 | 含义 | |---|---| | 涨跌幅偏离值达7% | 单日涨幅或跌幅过大,被交易所监控 | | 日换手率达20% | 筹码换手频繁,可能是游资接力 | | 连续3个交易日内涨跌幅偏离值累计达20% | 短线连板股 | | 日振幅达15% | 日内波动剧烈,多空分歧大 | | 异常波动 | 无明显原因的异动 | **分析提示:** - 按 `reason` 分组,统计近期哪类上榜原因最频繁 - 结合指数涨跌(`stock_daily`)判断:大盘跌时仍有大量涨停,可能是个股独立行情 - 高频上榜股(同一股票多日出现)往往是市场主线龙头 --- ### 2.4 `news_flash` —— 财经快讯流 | 属性 | 说明 | |---|---| | 行数 | 10(演示数据,批量采集后可增至数千条/日) | | 时间精度 | 分钟级 | | 数据源 | EastMoney `np-anotice-stock`(主),AkShare `stock_news_em`(降级) | | 用途 | 实时捕获影响市场的突发消息,作为时间线的"事件触发层" | **字段:** | 字段名 | 类型 | 说明 | |---|---|---| | `content` | TEXT | 快讯正文内容(可能有编码问题) | | `event_time` | TEXT(YYYY-MM-DD HH:MM:SS) | 事件发生时间 | | `source` | TEXT | 来源(如:东方财富Choice数据、证券时报) | | `inserted_at` | TEXT(YYYY-MM-DD HH:MM:SS) | 入库时间 | **分析提示:** - 快讯内容可能包含:政策发布、经济数据、监管动态、个股公告 - 可按关键词("降息"、"关税"、"制裁"、"收购")做规则过滤 - 高频来源(东方财富、同花顺)可作为可信度参考 --- ### 2.5 `macro_event` —— 宏观经济事件日历 | 属性 | 说明 | |---|---| | 行数 | 99 | | 数据源 | AkShare `news_economic_baidu`(财经日历) | | 用途 | 追踪全球主要经济数据发布时间(如非农、CPI、利率决议) | **字段:** | 字段名 | 类型 | 说明 | |---|---|---| | `event_date` | TEXT(YYYY-MM-DD) | 事件公布日期 | | `title` | TEXT | 事件标题(当前入库存在字段映射问题,详见下方警告) | | `event_type` | INTEGER | 重要性等级(1=高,2=中,3=低) | | `source` | TEXT | 数据来源 | | `inserted_at` | TEXT(YYYY-MM-DD HH:MM:SS) | 入库时间 | > **警告(已知问题):** 当前入库的 `title` 字段实际包含了原始数据的 `event_date`,而真正的标题内容写入了 `event_date` 字段。这是 AkShare 返回字段名与实际位置不一致导致的映射错误。修复方案:调整 `macro_event_fetcher.py` 中的字段映射逻辑,按返回数据的实际列位置重新对应。 **常见宏观事件类型:** | 事件 | 典型影响 | |---|---| | 美国非农就业数据 | 超预期=美元走强,A股承压 | | CPI/PPI 数据 | 超预期=通胀担忧,货币政策预期收紧 | | 美联储利率决议 | 降息=全球流动性宽松,A股受益 | | 中国官方PMI | 超预期=经济复苏预期增强 | | 进出口数据 | 超预期=外需强劲 | --- ### 2.6 `news_cn` —— A 股市场新闻 | 属性 | 说明 | |---|---| | 行数 | 10(演示数据) | | 数据源 | AkShare `stock_news_em` | | 用途 | 覆盖个股/行业/宏观层面的新闻报道,构建事件叙事 | **字段:** | 字段名 | 类型 | 说明 | |---|---|---| | `id` | INTEGER | 自增主键 | | `title` | TEXT | 新闻标题 | | `content` | TEXT | 新闻正文摘要 | | `pub_date` | TEXT(YYYY-MM-DD HH:MM:SS) | 发布时间 | | `source` | TEXT | 来源媒体 | | `url` | TEXT | 原文链接 | | `keywords` | TEXT | 关键词标签(逗号分隔) | | `inserted_at` | TEXT(YYYY-MM-DD HH:MM:SS) | 入库时间 | --- ### 2.7 `money_flow` —— 个股资金流向(主力净流入) | 属性 | 说明 | |---|---| | 行数 | 2,085 | | 时间范围 | 最近 1 个交易日(全市场个股) | | 数据源 | AkShare `stock_fund_flow_individual` | | 用途 | 追踪主力资金(超大单+大单)的每日净流入/出,识别资金轮动方向 | **字段:** | 字段名 | 类型 | 说明 | |---|---|---| | `ts_code` | TEXT | 股票代码 | | `trade_date` | TEXT(YYYY-MM-DD) | 交易日期 | | `main_net_in` | REAL(当前全为 NULL,待修复) | 主力净流入金额(元) | > **已知问题:** `main_net_in` 字段当前全部为 NULL。原因是 AkShare `stock_fund_flow_individual` 接口返回的数值包含"万"、"亿"等中文单位后缀,字符串转数值时解析失败。修复方案:在 `fund_flow_fetcher.py` 中先对单位字符串进行清洗(去掉"万"/"亿",按需转换精度),再转为浮点数。 **资金流向分析逻辑:** | 主力净流入方向 | 市场含义 | |---|---| | 连续多日净流入某板块 | 机构建仓,可能是主线行情启动 | | 大盘下跌但某股净流入 | 护盘资金或逆势买入 | | 大盘上涨但某股净流出 | 主力借机减仓 | --- ### 2.8 `global_index` —— 外盘重要指数 | 属性 | 说明 | |---|---| | 行数 | 14,583 | | 时间范围 | 道琼斯(2004-至今)、纳斯达克100(2004-至今)、标普500(2004-至今) | | 数据源 | AkShare `index_us_stock_sina` | | 用途 | 反映美股走势,作为 A 股的"外围环境层"(隔夜美股涨跌影响次日 A 股情绪) | **字段:** | 字段名 | 类型 | 说明 | |---|---|---| | `index_code` | TEXT | 指数代码(US.DJI=道琼斯,US.NDX=纳斯达克100,US.INX=标普500) | | `trade_date` | TEXT(YYYY-MM-DD) | 交易日期 | | `close` | REAL | 收盘点位 | | `pct_change` | REAL | 当日涨跌幅(%),由收盘价自计算 | **外盘与 A 股的联动规律:** | 场景 | A 股次日预期 | |---|---| | 美股大涨(纳指+2%以上) | 高开概率大 | | 美股大跌(道指-2%以上) | A 股低开,但可能低开高走 | | 美股窄幅震荡 | A 股按自身逻辑运行 | | 美股期货夜盘异动 | 可作为盘前情绪参考 | --- ## 三、数据关联关系 ``` trade_calendar(锚点) │ ├──► stock_daily ON trade_date(大盘指数基准) ├──► lhb_daily ON trade_date(游资活跃度) ├──► money_flow ON trade_date(资金流向) │ news_flash ON event_time(分钟级事件) │ news_cn ON pub_date(新闻发布日) │ macro_event ON event_date(宏观事件日) │ global_index ON trade_date-1(美股影响传导,差一天) ``` **时间线对齐策略:** 1. 以 `trade_date`(交易日)为基准轴 2. 快讯/新闻精确到分钟,非交易日数据合并到最近交易日 3. 宏观事件按公布日期对齐 4. 外盘指数按"美股T日 → A股T+1日"的逻辑传导对齐 --- ## 四、数据质量问题汇总 | 问题 | 涉及表 | 严重程度 | 状态 | |---|---|---|---| | `main_net_in` 全为 NULL | `money_flow` | 高 | 待修复 | | 字段映射错位 | `macro_event` | 高 | 待修复并重新入库 | | 中文内容乱码(GBK/UTF-8) | `lhb_daily`, `news_flash`, `news_cn` | 低(数据本身正确,仅显示问题) | 排查终端编码 | | 采集时间范围受限 | `stock_daily` | 中 | 可扩展至更长历史 | | `macro_event` 为历史数据非未来事件 | `macro_event` | 中 | 需配置 AkShare 实时财经日历参数 | --- ## 五、快速查询示例 ```sql -- 查最近 5 个交易日的大盘涨跌 SELECT trade_date, close, ROUND((close - LAG(close) OVER(ORDER BY trade_date)) / LAG(close) OVER(ORDER BY trade_date) * 100, 2) AS pct_change FROM stock_daily WHERE ts_code = 'sh000001' ORDER BY trade_date DESC LIMIT 5; -- 查近 30 天龙虎榜热门上榜原因 SELECT reason, COUNT(*) AS cnt FROM lhb_daily WHERE trade_date >= date('now', '-30 days') GROUP BY reason ORDER BY cnt DESC LIMIT 10; -- 查某日主力净流入TOP10个股 SELECT ts_code, main_net_in FROM money_flow WHERE trade_date = '2026-09-15' ORDER BY main_net_in DESC NULLS LAST LIMIT 10; -- 查近 7 天重大宏观事件 SELECT event_date, title FROM macro_event WHERE event_date >= date('now', '-7 days') ORDER BY event_date; ``` --- ## 六、后续数据扩展方向 | 优先级 | 数据类型 | 数据源 | 说明 | |---|---|---|---| | P0 | 资金流向(修复) | 修复 `fund_flow_fetcher.py` 逻辑 | 解决 NULL 问题 | | P0 | 宏观事件(修复) | 修复 `macro_event_fetcher.py` 映射 | 解决字段错位 | | P1 | 港股行情 | AkShare `index_hk_hist` | 补充港股恒生指数 | | P1 | 期货行情 | AkShare `futures_zh_daily_sina` | 商品期货(黄金/原油) | | P1 | 北向资金 | AkShare `stock_hsgt_north_net_flow_in` | 外资流向 | | P2 | 行业板块涨跌 | AkShare `stock_board_industry_name_em` | 板块轮动 | | P2 | 融资融券 | AkShare `stock_margin_detail_sz` | 杠杆资金动向 | | P2 | 恐慌指数(VIX) | AkShare | 市场情绪反向指标 | --- *文档版本:v1.0* *最后更新:2026-09-15* *对应数据库快照:`data/a_stock.db`(8 表)*