DEV Community

Henry Lin
Henry Lin

Posted on

为什么长期做量化,一定要先搭建自己的“数据中台”

为什么长期做量化,一定要先搭建自己的数据中台

很多人做量化,第一步就开始研究策略。

今天学一个 MACD,明天学一个 AI 选股,后天开始回测。结果半年后,策略越来越多,代码越来越乱,数据越来越碎,整个系统根本没法扩展。

尤其是个人开发者、独立量化团队,经常会踩一个坑:

把量化系统当成了策略工程,而不是数据工程。

但说实话,真正长期跑得起来的量化系统,重心其实不在策略上,而在数据层。


为什么数据底座这么重要?

量化系统本质上就是数据驱动。所有策略、因子、回测、AI 模型、风控、选股,全都建在数据之上。

数据层一旦出问题,后面什么都跟着乱:

  • 指标没法统一,同一个 PE 不同来源数值不一样
  • 股票代码混乱,有的表叫 code,有的叫 symbol,有的叫 ts_code
  • 时间周期对不上,日线周线分钟线混在一起
  • 财务数据缺失,财报更新不及时
  • 因子重复计算,好几个策略各算一遍一样的东西
  • 回测和实盘用的数据不一致,结果根本没法复现

很多人刚开始只有几十只股票的数据,觉得 CSV 就够了。但做半年以后你会发现,日线、分钟线、基本面、财报、资金流、技术指标、因子库、AI 特征、新闻舆情、宏观数据……数据量增长得比你想的快得多。这时候如果没有统一的数据管理方式,后面几乎没法维护。


一个成熟量化系统需要哪些数据?

长期来看,建议至少把下面这些数据管起来:

                    ┌─────────────────────┐
                    │    数据中台 / DataHub │
                    └─────────────────────┘
                               │
 ┌────────────────────────────────────────────────────────┐
 │                                                        │
 │ • daily_history   (日线行情 OHLCV)                      │
 │ • daily_basic    (基本面 PE/PB/换手率)                  │
 │ • moneyflow      (资金流向)                             │
 │ • stk_factor     (技术指标 MACD/KDJ/RSI)                │
 │ • stock_basic    (股票基础信息)                         │
 │ • balance_sheet  (资产负债表)                           │
 │ • income_statement (利润表)                             │
 │ • cash_flow      (现金流量表)                           │
 │                                                        │
 └────────────────────────────────────────────────────────┘
                               │
        ┌──────────────────────────────────┐
        │                                  │
        │  因子系统 / 回测 / AI / 策略引擎   │
        │                                  │
        └──────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

为什么建议一开始就搭?

有开发者会说:"我策略还没跑通,先不用那么复杂吧。"

这想法挺正常的,但后期再重构数据层,代价真的很大。

量化有个特点:数据只会越来越多。你今天可能只有 500 只股票的日线,但早晚要加全市场、分钟线、Tick、期货、ETF、美股、港股、AI 特征、另类数据。

如果一开始没设计好数据结构,后面大概率会遇到:表结构崩坏、查询变慢、指标重复计算、Redis 缓存失控、CSV 满天飞、Python 脚本互相依赖改一个挂一片。等你想整理的时候,已经理不清了。


量化的核心其实不是策略,是数据复用

大部分刚入门的人觉得策略最重要。但实际上,成熟的量化团队花在数据一致性、数据清洗、数据标准化、因子复用、特征工程上的精力,远比调参多。

原因很简单:一份数据可以反复用。

比如同一份 daily_history,动量策略用得着,AI 训练用得着,因子分析用得着,行业轮动用得着,回测用得着,择时用得着,可视化展示用得着,选股器也用得着。

所以长期来看,真正有价值的是持续积累的数据资产,不是某一个短期能赚钱的策略。策略会过时,数据不会。


推荐的数据中台设计思路

1. 原始数据层(ODS)

保持原始数据,不做修改。

ods_daily_history
ods_moneyflow
ods_financial
Enter fullscreen mode Exit fullscreen mode

核心原则就是三条:可追溯、不污染、永远保留原始源数据。

2. 标准化层(DWD)

统一字段。

ts_code
trade_date
open
high
low
close
volume
Enter fullscreen mode Exit fullscreen mode

这一层要解决的问题就是命名不一致——有的表叫 code,有的叫 symbol,有的叫 stock_code,到后面你会疯掉。统一规范非常重要。

3. 因子层(DWS)

这里放计算后的东西:技术指标、Alpha 因子、AI 特征、行业特征、横截面特征。

factor_momentum_20
factor_turnover_ratio
factor_pe_rank
factor_volume_breakout
Enter fullscreen mode Exit fullscreen mode

4. 策略层(ADS)

直接给回测、AI 模型、选股器、前端接口用的。

top_factors_daily
strategy_signals
stock_scores
Enter fullscreen mode Exit fullscreen mode

AI 和量化的关系

AI 深度介入量化已经是大趋势了。但 AI 有个硬需求:它要吃数据,而且是干净、结构化、能对齐的数据。

没有稳定的数据底座,特征工程做不了,时序训练做不了,多周期融合做不了,Walk-Forward 做不了,因子挖掘做不了,AutoML 也做不了。

我见过不少人,最后卡住的不是策略能力,是数据根本接不起来。


个人开发者推荐的技术架构

个人或者小团队没必要上来就搞 Hadoop。以下这些够用了:

数据存储: PostgreSQL / ClickHouse / DuckDB / Parquet

缓存层: Redis

任务调度: Airflow / Celery / Cron

数据处理: Python + Pandas + Polars

因子计算: TA-Lib / vectorbt / Qlib


两条不同的路

很多人的路径是这样的:

策略 → 回测 → 亏钱 → 放弃
Enter fullscreen mode Exit fullscreen mode

而把数据当核心资产的人,路径大概是这样:

数据底座 → 因子平台 → 回测框架 → AI 特征工程 → 自动选股 → 多策略组合 → 风控系统 → 实盘交易
Enter fullscreen mode Exit fullscreen mode

区别就在于你把数据当成附属品,还是当成核心资产。


总结

长期做量化,与其急着写策略、做回测、研究 AI,不如先把数据中台搭起来。

策略会失效,市场会变,模型会过时。但数据资产会一直积累,越往后越值钱。

量化这件事,拼到最后,壁垒往往不是什么策略秘密,而是你手里有没有一套长期积累、持续迭代的数据底座。

Top comments (0)