
用 WorkBuddy 一条指令完成剔除停牌与 ST、处理缺失值、增量写入本地数据库,并输出一份数据清洗报告。
停牌股要剔、ST 股要剔、缺失值要补、增量不能重复入库——这些活规则清楚但琐碎,做量化的人往往策略代码只写了二十分钟,剩下三天都在跟数据较劲。用 WorkBuddy 一条指令把清洗规则写进去,每次执行都按同一套标准走,不静默填补、不重复入库,出错的风险大幅降低。
把量化流程拆开看,写策略那部分其实占比不高。更多的精力花在数据准备上:拉取、核对、清洗、入库、校验。一个成熟的流程里,这些环节会反复执行,每次新数据进来都要走一遍。
而人的表现恰恰在重复性工作上最不稳定。第一遍做得很仔细,第十遍开始跳步骤,到第五十遍基本上只剩机械动作,出错了也不容易察觉。
自动化的价值在这里体现得最直接 —— 不是因为机器做得更好,而是因为它每次都做得一样。
问题类型 | 具体表现 | 处理方式 |
|---|---|---|
不可交易标的 | 停牌、ST | 按规则剔除,不进股票池 |
数据缺失 | 字段为空、整行缺失 | 明确处理策略,不静默填补 |
重复数据 | 同一标的同一日期多次出现 | 按主键去重,保留最新 |
口径不一致 | 复权方式、统计范围不同 | 统一口径后再合并 |
这四类问题中,重复数据和口径不一致最容易被忽视——前者在数据量小时看不出来,积累几个月后某天的统计值突然偏高才暴露;后者不同来源的数据复权方式不同,直接混在一起算收益率,结论根本不可比。
把四类问题写进一条指令,任务是可执行的。指令写法、增量更新、存储形式是三个需要分别说清楚的环节。
基础版写法:
请读取今天的 A 股行情数据,剔除所有停牌股和 ST 股票,处理缺失值后增量更新到本地数据库,并生成一份今日的数据清洗报告。
如果希望过程更可控,可以把细节补上,写成增强版:
处理缺失值时不使用估算填充,直接在报告中列出缺失字段与对应标的;入库前检查是否已存在相同标的与日期的记录,如存在则以最新数据覆盖。
后半段这两句是多花几十个字换来的确定性。不加的话,你无法预知它会怎么处理空值——而填补策略直接影响后续所有计算。
增量两个字值得单独说。全量重跑在数据量小的时候没问题,但数据一多,每次重算整段历史就变得不现实。增量更新的含义是只处理新增部分,把新数据追加进去。
这带来一个新的注意点:增量更新的前提是历史数据本身是干净的。如果前面积累了重复记录或错误值,增量只会让问题继续叠加。所以第一次建议做一次全量核对,之后再用增量维护。
至于存储形式,本地数据库是一种常见选择。它的好处是数据留在自己机器上,查询速度快,也不需要额外的服务依赖。对量化场景来说,数据不离开本机也降低了泄露风险。
清洗跑完之后,有两件事需要提前想清楚:一是怎么确认这次清洗没出错,二是工具做不到什么。
被动等待问题暴露,代价太高。比较实用的做法是让每次清洗都输出一份报告,包含几项:本次处理的总记录数、被剔除的标的数量及原因分布、缺失值的位置清单,以及新增入库的条数。
这几个数字的价值在于异常检测。正常情况下每天的记录数应该在一个稳定区间内波动;如果某天突然少了一半,大概率是数据源出了问题,而不是市场真的变了一半。有报告在手,异常能在当天被发现,而不是在后来的回测结果里莫名其妙地体现出来。
如果想让这层保障更扎实,可以再加一步抽查:让报告同时输出几条样本记录,比如被剔除的标的里随机列两只、新增入库的记录里随机列两条,附上完整字段值。你只需扫一眼,就能判断剔除逻辑是否符合预期、入库字段是否错位。这一步花不了多少时间,却把相信变成了核对。
清洗任务建议不要和选股任务混在一条里。两者的执行频率和失败影响面不同:清洗出错会让后续全部失真,值得单独监控;选股出错只影响当次清单。分开建任务,出了问题也能快速定位是哪一环。
需要说明的是,自动化处理的是清洗和入库这两个环节,它不会告诉你数据该怎么定义。比如复权方式选前复权还是后复权、缺失的财务数据该不该沿用上一期、ST 的判定以什么时点为准——这些都是口径决策,一旦定错,后面再干净的数据也救不回来。工具负责执行规则,规则的合理性仍然要靠你判断。
最后一个容易忽略的细节:把清洗规则本身存档。规则写在指令里,改动就只有你自己知道。几个月后回看历史数据时,如果中间调整过剔除标准,两个时期的股票池其实不可比,但表面上看不出区别。把每次规则变更的时间和内容记下来,能让后续的对比分析建立在确定的基准上。
批量清洗、增量入库都要消耗积分,选哪一档套餐,取决于你是个人使用还是团队协作。
个人版面向个人用户,标准版及以上付费套餐除了每月基础积分,还按月发放限时加赠积分:标准版每月实得 4,000 积分(基础 2,000 + 加赠 2,000)、高级版 9,000(基础 4,000 + 加赠 5,000)、Buddy One VIP 50,000(基础 20,000 + 加赠 30,000),加赠部分自到账日起 1 个月内有效。对要每天做数据清洗入库的个人投资者来说,先用完免费额度、再按需选一个付费档,通常就够支撑增量更新的日常运行。
企业版面向团队和机构,分企业旗舰版与企业专享版。企业套餐的积分进入团队共享池,全团队共用一个池子,多人协作时不用各自攒额度。当前WorkBuddy 活动期内(即日起至 2026 年 12 月 31 日),新购、续费或扩容企业旗舰版、企业专享版,每账号每月可在版本已含的 2,000 Credits 之上再额外获得 2,000 Credits(即每月实得翻倍),加赠额度同样进入团队共享池、随订阅周期按月发放,赠送部分自到账日起 1 个月内有效。
简单说:个人投资者选个人版按用量挑档位;一个团队要用同一套清洗规则维护数据库,企业版的共享积分池更合适。各档套餐与折扣详情可在 WorkBuddy 产品页 查看。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。