股票分析系统 — 数据库架构文档

www.wheelfly.cn/stock/database  |  PostgreSQL 16.13  |  Tencent Cloud Rocky Linux 9.7

服务器信息

Tencent Cloud CVM
150.158.87.41
Rocky Linux 9.7
PostgreSQL 16.13
5432 (SSL required)
appdb
~250万行 (stocka_k) + 1,357万行 (stocka_k_copy)
2022-12-20 ~ 至今(stocka_k)
1990-12-19 ~ 2026-07-29

连接方式: 直连: psycopg2.connect(host='150.158.87.41', port=5432, sslmode='require') SSH隧道: 本地 localhost:5433 → SSH → 服务器 150.158.87.41:5432 (IP白名单自动管理)

核心数据表

K线+基本面

1. stocka_k — 日线K线数据 (OHLCV)

所有股票分析的核心数据来源。每行 = 一只股票一个交易日的完整行情数据。 数据来源: 腾讯财经API (前复权), 通过 sync_kline.py 每日定时增量更新。 包含个股和指数(000001.SH, 000300.SH, 399001.SZ等)。

列名类型说明
codeVARCHAR股票/指数代码, 如 600519.SH, 000300.SH
dateDATE交易日期
openNUMERIC开盘价
highNUMERIC最高价
lowNUMERIC最低价
closeNUMERIC收盘价
volumeNUMERIC成交量 (股)
amountNUMERIC成交额 (元)
turnover_rateNUMERIC换手率

~2,425,435行 | 唯一约束: (code, date) | 用途: 策略回测、K线图表、动量计算、成交量分析、交易日历

⚠ 数据每日通过腾讯API增量更新, 支持前复权。指数数据额外通过AKShare补充。

2. stocka_database26 — 股票基本面+技术指标

每行 = 一只股票的完整基本面和技术面快照。用于股票筛选、名称查询、申万行业分类。

分类列名类型说明
标识codeVARCHAR股票代码 (主键)
标识nameVARCHAR股票名称, 如"贵州茅台"
标识marketVARCHAR市场: SH / SZ / BJ
估值price, pe, pb, market_cap, epsNUMERIC价格/市盈率/市净率/总市值/每股收益
盈利roe, gross_profit_margin, net_profit_marginNUMERICROE/毛利率/净利率
风险debt_ratioNUMERIC资产负债率
增长revenue_growth, profit_growthNUMERIC营收增长率/利润增长率
技术td_price_gt_ma5_days, td_price_gt_ma10_days, td_price_gt_ma20_daysINT价格站上均线天数
技术td_weekly_uptrend, td_weekly_vol_chgINT/NUM周线上涨/周量变
技术td_turnover_d5_chg, td_turnover_w4_chg, td_turnover_m3_chgNUMERIC5日/4周/3月换手率变化
分类sector_sw1VARCHAR申万一级行业 (行业筛选)
其他volume, amount, turnover_rate, data_source, updated_at行情数据/数据来源/更新时间

~5,209行 | 用途: 股票名称查询、全市场筛选、申万行业分类、市值排名

3. stocka_board + stocka_stock_board — 东方财富行业板块

表名列名类型说明
stocka_boardboard_code, board_nameVARCHAR板块代码 / 板块名称 (如"半导体", "白酒")
stocka_stock_boardstock_code, board_codeVARCHAR股票→板块映射 (多对多)

4. stocka_etf — ETF数据

列名说明
code, name, market, categoryETF代码/名称/市场/分类
price, volume, amount, turnover_rate行情数据
market_cap, chg_pct, score市值/涨跌幅/综合评分
search_key拼音搜索键

5. stocka_fund — 基金数据

列名说明
code, name, fund_type基金代码/名称/类型
nav, cum_nav, daily_chg单位净值/累计净值/日涨跌
ret_1w ~ ret_since_founded各周期收益率(1周~成立以来)
score, search_key评分/拼音搜索

6. stocka_fund_holdings — 基金/ETF持仓

列名说明
fund_code, rank基金代码 / 持仓排名(1-10)
asset_code, asset_name, asset_type持仓标的代码/名称/类型(股票/债券)
weight, market_value, shares, report_date权重/市值/股数/报告期

~28,000行 | 用途: ETF持仓明细查询、基金穿透分析

📊 stocka_k_copy — 全量历史K线

长周期数据

表结构

stocka_k 完全相同的列结构(code, date, open, high, low, close, volume, amount, turnover_rate), 但覆盖时间更长、股票数量更多。数据来源为历史全量K线数据(腾讯财经API前复权),通过 sync_kline.py 分批导入。

列名类型说明
codeVARCHAR(12)股票代码 (如 000809.SZ / 600310.SH / 688378.SH)
dateDATE交易日期
openNUMERIC开盘价
highNUMERIC最高价
lowNUMERIC最低价
closeNUMERIC收盘价
volumeNUMERIC成交量 (股)
amountNUMERIC成交额 (元)
turnover_rateNUMERIC换手率

13,566,351 行 | 5,215 只股票 | 无主键约束 | 用途: 长周期策略回测、历史数据挖掘、全市场统计分析

📈 数据概况

13,566,351
5,215 只
1990-12-19 ~ 2026-07-29
~35.6 年 (13,006 天)
.SZ 2,896 只 | .SH 2,319 只

⚠️ 数据一致性分析

该表包含 5,215 只股票,但每只股票的日期范围并不一致。主要原因:① 各股票IPO上市时间不同(最早日期分散在 1,846 个不同日期); ② 数据更新存在分批延迟(最晚日期分散在 18 个不同日期)。在进行批量回测时,需要对齐到所有目标股票共有的交易日。

指标主流值覆盖股票占比说明
最早日期2010-01-041,47828.3%1,846 种不同起始日期,其余 3,737 只分散在各IPO日期
最晚日期2026-07-101,97437.9%18 种不同截止日期:07-28(724只) / 07-18(382只) / 07-24(375只) 等
日期完全一致2010-01-04 ~ 2026-07-104378.4%仅 8.4% 的股票起止日期完全匹配,回测时需特别注意

📊 每股票行数分布

分位交易日数说明
最少28上市时间极短的股票(如近期IPO新股)
P10919约 3.6 年数据
P251,358约 5.4 年数据
P502,514约 10 年数据(中位数)
P754,010约 16 年数据
P904,022约 16 年数据(主流批次:2010-01-04 ~ 2026-07-28)
最多8,691包含1990年以来的完整历史

与 stocka_k 的对比

维度stocka_kstocka_k_copy
行数~250 万1,357 万
股票数约 5,200(持续增长)5,215(固定快照)
时间范围2022-12-20 ~ 至今1990-12-19 ~ 2026-07-29
数据同步每日定时增量更新一次性全量导入(不定期更新)
用途日常策略回测、实时信号长周期历史回测、统计分析
数据一致性同步更新,日期一致⚠️ 仅 8.4% 股票日期一致,需对齐处理

股票池 / 基金池

自选股管理

分级自选池系统: Level 1-5 按关注度递减, Level 11 为回收站。股票池和基金池结构对称。

表名用途主要列
stockA_level1股票池 - 第一档 (核心关注)code, name, market, notes, added_at
stockA_level2 ~ stockA_level5股票池 - 第二~五档同上
stockA_level11股票池 - 回收站同上
stocka_move_log股票移动记录code, from_level, to_level, moved_at
stocka_note_log股票备注 (多条目)code, note_text, created_at
funda_level1 ~ funda_level5基金池 - 第一~五档code, name, type, category, notes, added_at
funda_level11基金池 - 回收站同上
funda_move_log基金移动记录code, from_level, to_level, moved_at

用途: /stockA/select/stockpool/ 自选池管理页面 | API: /api/stocka/level/* & /api/funda/level/*

数据流向图

[腾讯财经API] ──前复权日线──→ sync_kline.py ──UPSERT──→ stocka_k [AKShare] ──指数日线──→ import_index_akshare.py ──INSERT──→ stocka_k [QMT xtdata] ──指数日线──→ download_index_data.py ──INSERT──→ stocka_k [外部数据源] ──基本面───→ data_pipeline ──UPDATE──→ stocka_database26 [东方财富] ──行业板块──→ import ──INSERT──→ stocka_board + stocka_stock_board stocka_k ──┬──→ DataManager ──→ 策略回测引擎 (策略1-8) ├──→ TradingCalendar ──→ 交易日历 ├──→ KLineData ──→ K线查看器 (stock_k.py) ├──→ API Server ──→ 网站趋势筛选 └──→ sync_kline.py ──→ 本地 pickle 缓存 (K_value/data/) stocka_database26 ──┬──→ Stock Utils ──→ 名称查询 / 拼音搜索 ├──→ DataManager ──→ 板块成分股 / 市值排名 └──→ API Server ──→ 全市场筛选 (30+指标)

各程序使用的数据表

策略回测系统

strategy/run_ui.py

stocka_k (OHLCV日线)
stocka_database26 (板块成分股)
stocka_board + stocka_stock_board

K线查看器

K_value/stock_k.py

stocka_k (K线数据)
stocka_database26 (名称查询)
→ 本地 pickle 缓存加速

K线行情 (旧版)

strategies/trends_K_line/

stocka_k (DataManager)
stocka_database26 (拼音搜索)

动量计算工具

moment/moment_cal.py

stocka_k (DataManager)

API服务器

00_website_wheelfly/api_server.py

所有表: 筛选/自选池/ETF/基金/
持仓/趋势/备注 全覆盖

网站前端

stockA/select/ stockA/detail/ stockA/strategy1/

通过 API Server 间接访问
不直连数据库

当前买入信号扫描

scan_current_buys.py

stocka_k (DataManager)

综合报告生成

generate_summary_report.py

stocka_k (DataManager)

数据库管理工具

database/2602_pgsql_login/

appdb (主数据库)
→ pgsql_data/*.json 本地备份

青岛温度监测

temp_generation/temp_sb.py

stocka_k → TEMP 表 (天气数据)