ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

tick-stock-panel CSV/Excel上传实战:把自己的量化数据并入DuckDB同台分析

tick-stock-panel CSV/Excel上传实战:把自己的量化数据并入DuckDB同台分析 tick-stock-panel CSV/Excel上传实战把自己的量化数据并入DuckDB同台分析【免费下载链接】tick-stock-panelTSP自托管、零运维的 A 股「选股 监控 回测」量化工作台 | LLM能力驱使策略定制个股分析复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源项目地址: https://gitcode.com/GitHub_Trending/ti/tick-stock-paneltick-stock-panel 是一款自托管、零运维的 A 股「选股 监控 回测」量化工作台。它的扩展数据功能允许你把 CSV / Excel 文件一键上传为 Parquet 表并自动注册成 DuckDB 视图与内置的日K、分钟K、行情快照等数据在同一个库里直接 JOIN 查询。本文带你完整走一遍上传流程。扩展数据能装什么内置数据覆盖行情与财务但你的研究往往还有一些「私有字段」龙虎榜席位、游资净买入金额自建指标值如资金流强度、筹码集中度手动维护的股票分组、行业标签、题材热度外部研报导出的评级表这些数据统一存放为扩展数据分为两种模式模式适用场景存储方式snapshot快照每日覆盖的最新截面data/ext_data/{id}/part.parquettimeseries时序按日分区、可回溯data/ext_data/{id}/timeseries/dateYYYY-MM-DD/核心实现在 backend/app/services/ext_data.pyAPI 层见 backend/app/api/ext_data.py。上传三步走第 1 步创建扩展数据配置在「数据」页新建扩展数据前端入口CreateExtDialog.tsx填写id字母/数字/下划线如lhb_netbuy和显示名称选择模式每日一张截面选snapshot要留历史就选timeseries选择数据来源为「文件上传」把 CSV/Excel 拖进去做字段探测后端/api/ext-data/detect-fields接口会读表头自动推断每列的字段类型string / int / float / bool并智能识别哪一列像股票代码数据形如000001.SZ的列 → 识别为symbol候选纯 6 位数字列如000001→ 识别为code候选确认字段列表与 symbol/code 映射后即可保存。系统会自动补上symbol标准代码和code6 位代码两列写入时按维表把裸代码归一化成代码.交易所格式。第 2 步准备你的 CSV/Excel上传约束见 ext_data.py 的_MAX_UPLOAD_BYTES格式.csv/.xlsx/.xls大小上限50MB分块落盘超限直接 413 拒绝编码CSV 不必手动转码。服务端 ensure_utf8_csv 会自动尝试 GBK / GB18030 / Big5 等中文编码并转成 UTF-8同花顺、东方财富导出的 GBK 文件可直接上传列名括号内的时间戳等杂讯会被自动清洗 小建议把日期放在文件名或单独一列snapshot模式的落盘日期默认取「北京时间当天」也可在上传时指定date参数。第 3 步上传并核对结果调用POST /api/ext-data/{id}/upload提交文件后服务端会只保留配置中声明的列多余列自动丢弃缺失必填字段会明确报「上传数据缺少字段: xxx」校验通过后原子写入 Parquet返回{status:ok,rows:N,date:...}自动刷新 DuckDB 视图_refresh_views你的新表立即可查为什么叫「并入 DuckDB 同台分析」每次写入成功后tick-stock-panel 会在 DuckDB 中执行CREATE OR REPLACE VIEW ext_{你的id} AS SELECT * FROM read_parquet(data/ext_data/{id}/**/*.parquet, union_by_nametrue);之后你的私有表和内置行情就是同一个查询世界-- 例龙虎榜净买入前20 的股票当日涨幅如何 SELECT e.symbol, e.name, e.netbuy, k.close, k.pct_chg FROM ext_lhb_netbuy e LEFT JOIN kline_daily k USING (symbol) WHERE k.date 2026-09-26 ORDER BY e.netbuy DESC LIMIT 20;时序模式按dateYYYY-MM-DD分区union_by_nametrue还容忍列结构演进历史分区与新增列可以共存不报错。常见问题速查现象处理提示「仅支持 CSV / Excel 文件」检查文件后缀.txt改名为.csv即可上传报缺字段对照配置里的字段清单补齐列名列名可中文但必须与配置一致股票代码没对上确认 symbol/code 映射列选对了或用POST /{id}/fix-symbol一键标准化存量数据文件过大 413超过 50MB 上限拆表或只留需要的列想换数据源除了文件上传同一配置还支持「定时拉取」外部接口与历史回补见 docs/custom-data-source.md小结tick-stock-panel 的扩展数据上传链路为探测自动识别列、类型与股票代码列归一symbol/code 标准化、编码转码、列名清洗落盘原子写入 Parquet快照覆盖 / 时序按日分区注册自动创建ext_{id}DuckDB 视图与内置行情同台 JOIN几行 CSV 就能让你的私有指标进入选股、监控与回测体系这是自托管量化工作台最直接的扩展方式。相关源码可进一步阅读 backend/app/api/ext_data.py 与 backend/app/services/ext_data.py。【免费下载链接】tick-stock-panelTSP自托管、零运维的 A 股「选股 监控 回测」量化工作台 | LLM能力驱使策略定制个股分析复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源项目地址: https://gitcode.com/GitHub_Trending/ti/tick-stock-panel创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表