三市场三周期量化与基本面融合多因子选股系统设计方案
副标题:A股、港股、美股:三周期量化 + 基本面选股系统设计
目的是建立一套 Quantamental(量化与基本面融合)多因子选股系统,分别服务于三个投资周期、三个股票市场。 不是简单地把几十个指标加权求和,而是搭建五层体系:
- 股票池筛选:剔除不可交易、流动性不足及重大风险标的
- 多因子评分:依据市场和持有周期,计算0—100分
- 基本面验证:识别财务异常、催化剂真实性及预期差
- 交易与风控:决定能否买入、仓位、退出条件
- 回测与持续校准:检验扣除交易成本后是否存在稳定优势
这套系统应同时输出四个结果:股票综合评分、相对排名、预期风险收益比、交易建议状态。 所有初始权重和筛选阈值都是待验证的策略假设,而不是已经通过真实历史回测证明有效的参数。
一、九套模型的初始权重
把全部指标统一为七个一级因子,但针对三个市场、三个投资周期,采用九组不同权重。
模型A:周内短线(1—5个交易日)
| 一级因子 | A股 | 港股 | 美股 |
|---|---|---|---|
| 资金与筹码结构 | 30% | 30% | 23% |
| 消息与事件催化 | 25% | 20% | 27% |
| 情绪与技术趋势 | 25% | 18% | 20% |
| 盈利与预期修正 | 5% | 9% | 12% |
| 宏观与政策 | 8% | 12% | 10% |
| 估值水平 | 2% | 5% | 3% |
| 行业景气与竞争优势 | 5% | 6% | 5% |
| 合计 | 100% | 100% | 100% |
设计理由: A股短线提高资金和情绪权重,重点识别题材扩散、成交量异常、板块联动和筹码拥挤。港股短线重视成交深度和流动性,避免模型给出高分却难以实际成交。美股短线适当提高事件与业绩预期权重,尤其关注财报、指引及重大公司公告。
模型B:中期趋势(1—6个月)
| 一级因子 | A股 | 港股 | 美股 |
|---|---|---|---|
| 资金与筹码结构 | 13% | 12% | 10% |
| 消息与事件催化 | 15% | 11% | 13% |
| 情绪与技术趋势 | 15% | 10% | 13% |
| 盈利与预期修正 | 22% | 27% | 30% |
| 宏观与政策 | 15% | 18% | 12% |
| 估值水平 | 7% | 12% | 12% |
| 行业景气与竞争优势 | 13% | 10% | 10% |
| 合计 | 100% | 100% | 100% |
这个周期的核心应是盈利预期修正 + 趋势确认,而不是单纯追逐上涨幅度最大的股票。

模型C:中长期投资(6—24个月)
| 一级因子 | A股 | 港股 | 美股 |
|---|---|---|---|
| 资金与筹码结构 | 5% | 7% | 4% |
| 消息与事件催化 | 6% | 5% | 7% |
| 情绪与技术趋势 | 5% | 3% | 4% |
| 盈利与预期修正 | 30% | 28% | 32% |
| 宏观与政策 | 13% | 17% | 13% |
| 估值水平 | 18% | 25% | 20% |
| 行业景气与竞争优势 | 23% | 15% | 20% |
| 合计 | 100% | 100% | 100% |
中长期投资应优先判断公司的盈利、现金流、资本回报率和竞争优势,再评估价格是否合理。
模型之间的重要区别: 周内模型预测短期资金供需,中期模型寻找预期上修与持续趋势,长期模型研究未来盈利增长与估值重估。因此,不能把三个模型的分数直接比较,也不应该把同一只股票在三个周期的排名简单求平均。
二、七大因子如何量化
这里是整套系统最重要的部分:把抽象的“资金”“情绪”“盈利能力”,转化为有明确计算方法的数据指标。
1. 周内短线模型:重点指标
| 因子 | 二级指标及组内权重 |
|---|---|
| 资金与筹码 | 5日成交额放大程度40%、换手率异常25%、交易成本与流动性20%、主动买卖失衡15% |
| 事件催化 | 事件重要性40%、信息新颖性30%、事件时效性30% |
| 情绪与趋势 | 5日相对强弱40%、波动率调整后的趋势30%、市场及板块广度30% |
| 盈利预期 | 最新业绩超预期程度50%、管理层指引变化50% |
| 宏观政策 | 政策或宏观意外变化50%、个股对应风险敏感度50% |
| 估值 | 同业估值偏离70%、极端估值风险30% |
| 行业景气 | 板块相对强弱60%、上涨股票占比40% |
这张表中的百分比是各一级因子内部的二级权重。
例如,A股短线的资金因子总权重为30%,其中“5日成交额放大程度”的实际总权重为:
text
30\%\times40\%=12\%几个关键指标的计算方式:
① 成交额放大倍数
text
VA_5=\frac{近5日平均成交额}{此前20日平均成交额}用于识别资金活跃度变化。需要注意,成交量异常放大并不一定利多,也可能意味着高位分歧或集中抛售,因此应与价格方向结合判断。
② 相对强弱
text
RS_5=R_{\text{股票},5日}-R_{\text{所属行业},5日}③ 主动买卖失衡
text
OBI=\frac{主动买入量-主动卖出量}{主动买入量+主动卖出量}该指标需要可靠的逐笔成交或订单流数据,不应该用普通行情软件标注的“主力资金净流入”直接替代。
④ 事件分数
可把事件重要性、来源可信度和新颖程度标准化,再使用时间衰减函数:
text
EventScore_t=E_0e^{-\Delta t/\tau}其中 (\tau) 为衰减尺度,需要回测确定,不建议预先认定所有消息三天后都会失效。
2. 1—6个月模型:重点指标
| 因子 | 二级指标及组内权重 |
|---|---|
| 资金与筹码 | 20/60日成交活跃度变化40%、可验证的持仓变化30%、流通盘换手30% |
| 事件催化 | 业绩指引变化40%、里程碑兑现30%、政策或重大合同进展30% |
| 情绪与趋势 | 12-1动量50%、均线趋势30%、下行波动率20% |
| 盈利预期 | FY1 EPS修正45%、FY2 EPS修正25%、收入预测修正15%、利润率趋势15% |
| 宏观政策 | 增长与信用环境50%、利率汇率敏感性50% |
| 估值 | 同业远期PE分位40%、EV/EBITDA分位30%、自由现金流收益率30% |
| 行业景气 | 订单与需求40%、价格与库存30%、供需变化30% |
其中,我最看重两个指标。
① 盈利预测修正
text
EPSRev_{30}=\frac{EPS_{t}^{FY1}-EPS_{t-30}^{FY1}}{Price_t}这里使用同一预测财年、同一会计口径的历史一致预期,并把EPS转换为与价格相同的货币单位。 之所以不直接使用EPS增长率,是因为企业可能处在亏损转盈利阶段,简单百分比会出现极端值。
② 12-1动量
text
MOM_{12-1}=\frac{P_{t-21}}{P_{t-252}}-1即大约过去12个月、但排除最近1个月的累计收益。 这是经典动量研究采用的常见构造思路;它不是简单的“过去涨得越多,未来必然继续上涨”。
我的中期模型会特别重视: 盈利预测上修与价格动量同时发生的股票。 这种组合值得测试,但必须通过与单独使用盈利修正、单独使用动量的模型比较,才能证明融合是否真正增加了预测能力。
3. 6—24个月模型:重点指标
| 因子 | 二级指标及组内权重 |
|---|---|
| 资金与筹码 | 流动性稳定性50%、股本稀释与融资压力50% |
| 事件催化 | 战略里程碑兑现50%、经营与治理重大变化50% |
| 情绪与趋势 | 200日相对趋势60%、下行风险变化40% |
| 盈利预期 | 未来两年EPS增长30%、ROIC 25%、现金流质量25%、财务稳定性20% |
| 宏观政策 | 中长期增长与信用条件50%、利率汇率风险暴露50% |
| 估值 | 自由现金流收益率40%、远期PE相对估值30%、适用行业的企业价值估值30% |
| 行业景气 | 市场份额40%、相对定价能力30%、竞争壁垒与资本强度30% |
建议重点监控四项财务指标。
① 投入资本回报率 ROIC
text
ROIC=\frac{税后经营利润(NOPAT)}{平均投入资本}② 自由现金流 FCF
text
FCF=经营现金流-资本性支出③ 自由现金流收益率
text
FCFYield=\frac{自由现金流}{权益市值}④ 净负债/EBITDA
text
Leverage=\frac{有息债务-现金及等价物}{EBITDA}对于银行、保险、REITs、尚未盈利的生物科技公司,这套通用财务模板不能直接照搬,应采用行业专属指标,例如银行的ROE、P/B、不良贷款率,REITs的FFO/AFFO等。
行业竞争优势也需要量化代理变量,例如市场份额变化、相对竞争对手的毛利率差额、客户留存率或研发成果转化率。无法从可靠来源取得的数据不能凭印象填高分。
三、统一评分公式:如何给一只股票打分
这是九套模型共用的核心引擎。
第一步:指标标准化
不同指标单位不一致,不能把ROIC的18%、每日成交额的20亿元、以及动量的35%直接相加。 我建议使用同市场、同一时点的截面百分位评分。 首先,对每个指标确定方向:例如ROIC越高越好、融资风险越低越好。然后对极端值进行缩尾处理,再计算分位数:
text
s_{i,j,t}=100\times PercentileRank(x_{i,j,t})其中:
- (i):股票
- (j):指标
- (t):评分日期
- (s):0—100之间的得分 估值、盈利能力等指标建议同时计算行业内分位,避免银行的PE与软件公司的PE直接比较。对于动量,还应保留一定的全市场强弱信息,不能把所有行业趋势全部中性化掉。
第二步:计算一级因子得分
假设某一级因子包含三个二级指标:
text
F_i=0.4s_{i,1}+0.35s_{i,2}+0.25s_{i,3}每个一级因子最终也会得到0—100分。
宏观因子需要特殊处理:利率、信用环境等变量对大多数股票是共同信息,因此不能简单给每只股票相同的宏观分数。应该使用宏观状态 × 个股历史敏感度,计算其不同风险暴露下的分数;市场整体风险状态另用于调整组合总仓位。
第三步:计算综合分数
text
\boxed{S_{i,m,h,t}=\sum_{k=1}^{7}w_{m,h,k}F_{i,k,t}}其中 (m) 为市场,(h) 为投资周期。各因子权重之和为100%。
以一只假设的A股股票、1—6个月模型为例:
| 一级因子 | 权重 | 指标评分 |
|---|---|---|
| 资金与筹码 | 13% | 70 |
| 事件催化 | 15% | 80 |
| 情绪与趋势 | 15% | 65 |
| 盈利预期 | 22% | 85 |
| 宏观政策 | 15% | 60 |
| 估值 | 7% | 55 |
| 行业景气 | 13% | 75 |
综合模型评分:72.15 / 100分
该结果只是示范计算,未对应任何真实股票。
这个72.15分只能说明该股票在模型指标下的相对吸引力,绝不能解释成72.15%的上涨概率。 若要预测上涨概率,应使用历史样本对评分进行独立校准:
text
p_H=P(R_{i,H}^{excess}>0\mid S_i,\text{市场状态})并进一步计算扣除成本后的交易期望:
text
EV=p_H\times平均盈利-(1-p_H)\times平均亏损-交易成本只有样本外校准表现可靠,才适合输出类似“未来20个交易日上涨概率”的数字。
第四步:加入基本面人工验证
我的建议是:基本面研究不要随意修改公式算出的分数,而应独立完成证据核查。
核查经营现金流真实性、财务重述、股权质押、商誉减值、核心产品竞争力、重大订单可兑现程度等。 存在重大且未经澄清的财务造假证据、严重流动性危机等情况时,可以直接设置风险否决。普通研究判断也必须记录证据、时间和结论,不能在看到后续股价走势后倒填分析记录。 对于缺失数据,要求保留覆盖率标记。如果缺失的指标累计权重超过20%,我建议暂停正式排名;否则可在合理范围内按剩余有效指标重新归一化,但不能把缺失的盈利预测当成0分。事件缺席则可以定义为中性分50。
四、三个市场的数据来源
这是整个系统最现实的实施问题。
免费的历史行情比较容易获得;可靠的历史盈利预测修正、真实交易时点的公告、机构持仓和订单簿数据则明显困难得多。
数据来源推荐
| 数据类别 | A股 | 港股 | 美股 |
|---|---|---|---|
| 日线行情、成交额 | Tushare Pro、AKShare、交易所 | HKEX、授权行情商 | Nasdaq Data Link、行情服务商 |
| 公司财务报表 | 巨潮资讯、沪深交易所、Wind | HKEXnews | SEC EDGAR、公司IR |
| 历史盈利一致预期 | Wind、Choice、FactSet | FactSet、LSEG | FactSet、LSEG、S&P |
| 机构持仓 | 基金定期披露、上市公司公告 | CCASS、权益披露 | SEC 13F等披露 |
| 实时盘口与逐笔数据 | 授权Level-2行情 | HKEX授权行情 | Nasdaq或交易所授权数据 |
| 利率、汇率、宏观 | 央行、统计局等 | HKMA、政府统计处 | FRED、美联储等 |
几个重要来源已经核实:
- Tushare Pro 和 AKShare:可用于构建A股研究数据的初始方案,但需检查接口稳定性、权限、复权和历史数据质量。
- HKEXnews 披露易:可搜索港股上市公司公告、业绩和财务报告,包括已退市公司的相关文档。
- SEC EDGAR API:提供公开申报记录以及部分标准化XBRL财务数据,无须API密钥,但必须遵守访问规则。
- FactSet历史时点一致预期:提供历史时点的分析师预测快照,适合构建真正的盈利修正回测。
LSEG I/B/E/S与S&P Capital IQ也提供全球盈利预测、历史修正等数据,但授权和历史范围取决于订阅服务。
我会把数据方案分为两个档次: 低成本研究版:采用公开行情、官方财报和公告,以盈利历史趋势及管理层指引代替部分一致预期指标。可以建立研究原型,但不能声称完全实现了“分析师盈利预期修正模型”。 专业版:使用具备历史时点快照的数据,加入可验证的分析师预测、逐笔交易及机构仓位变化,用于正式回测与模拟交易。 每条财务或公告数据至少保存两个时间字段:信息实际公开时间和系统接收时间。回测只能使用交易决策时已经可获得的信息。
五、交易规则必须分别建模
A股、港股和美股不能共用同一个订单执行模拟器。
| 市场 | 必须考虑的交易约束 |
|---|---|
| A股 | 股票通常不能当日买入当日卖出;交易板块的涨跌幅制度、停牌和无法成交的涨跌停订单 |
| 港股 | T+2交收、每手买卖单位、买卖价差、部分证券的VCM冷静期 |
| 美股 | T+1交收、盘前盘后流动性、LULD波动限制及个股暂停交易 |
截至2026年10月,特别需要落实以下规则: A股上交所现行交易规则明确规定普通股票交收前不得卖出;2026年7月6日起,沪深主板风险警示股票涨跌幅限制已由5%调整为10%。这意味着回测2025年与2026年下半年的ST股票,不能套用同样的涨跌停参数。 港股现金市场仍实行T+2交收,T+1是港交所提出的后续改革方向。港股的VCM冷静期也不是A股式的每日固定涨跌停板。 美股自2024年5月28日起,对大多数证券交易实行T+1标准交收;它与A股买入后不能立即卖出的交易限制是两个不同概念。
交易成本
在回测中,交易成本应拆成:
text
C=佣金+税费+买卖价差+滑点+市场冲击+融资及换汇成本其中港股特别需要注意,通常应税股票买卖双方各收0.1%印花税,普通来回交易仅这一项就约占成交金额0.2%,此外还有交易费、征费和券商佣金。
A股证券交易印花税自2023年8月28日起减半,建模时也必须按历史生效日期使用当时的税费。
对短线策略,我建议同时观察毛收益与净收益。如果策略在扣除成本后没有明显优势,即使预测胜率看起来不错,也没有足够的实战价值。
六、风控系统设计
在我看来,风控不能被当作第八个普通评分因子,而应该是独立于选股评分之外的强制模块。
三周期建议风控参数
下面是保守研究原型的起始参数,不是对所有资金规模都适用的固定建议。
| 风控项 | 周内短线 | 1—6个月 | 6—24个月 |
|---|---|---|---|
| 单只股票仓位上限 | 3% | 5% | 7% |
| 单次交易初始风险预算 | 净值0.3% | 净值0.5% | 净值0.75% |
| 单行业总仓位上限 | 20% | 25% | 25% |
| 主要退出机制 | ATR、事件失效、时间止损 | 盈利修正逆转、趋势破坏 | 投资逻辑失效、估值明显透支 |
| 组合检查频率 | 每日 | 每周 | 每月及重要事件时 |
单笔仓位可以按照风险预算计算:
text
仓位比例 \leq
\frac{单笔风险预算}{计划止损幅度}例如,账户净值风险预算为0.3%,预设合理退出距离为6%,风险预算对应的仓位上限就是5%;但由于短线模型另设3%的单票上限,最终最多只能配置3%。 同时还需要受到成交能力限制:
text
单次订单金额\leq ADV_{20}\times参与率上限这里可以先使用日均成交额1%的订单参与率作为压力测试假设,实际再根据账户规模、交易时段和盘口深度重新校准。 必须注意:止损单并不能保证按止损价成交,A股连续跌停、港股跳空和美股暂停交易都可能令真实损失超出预设预算。 我还建议建立三类额外约束:
- 相关性风险:限制同行业、同主题、同一实际控制人或A/H两地上市公司带来的重复风险暴露。
- 市场与汇率风险:分别计算RMB、HKD、USD计价的净值、汇兑收益和风险敏感度。
- 模型失效风险:若近期信号有效性、实际滑点或回撤明显偏离验证期范围,降低新开仓规模并重新评估,而不是立刻优化历史参数来“修复”回测曲线。
七、历史回测如何验证这九套模型
我建议采取先验证选股信号,再验证组合交易,最后验证整体风控的顺序。
1. 信号回测
三个周期分别使用不同预测窗口。
| 模型 | 主要观察收益窗口 | 信号更新 |
|---|---|---|
| 周内短线 | 1、3、5个交易日 | 每日 |
| 1—6个月 | 21、63、126个交易日 | 每周 |
| 6—24个月 | 126、252、504个交易日附近 | 每月、业绩更新时 |
以交易日计算只是近似,真正的6个月、24个月收益窗口还需结合各市场日历。 首先测试各因子与未来收益的关系。核心指标是Rank IC:
text
IC_t=Spearman(S_{i,t},R_{i,t\to t+H})其中未来收益建议使用扣除市场和必要风险暴露后的相对收益,防止模型实际上只是在买高Beta股票。 观察平均IC、IC的稳定程度、不同评分分组的未来收益是否有序,以及信号有效性是否随持有时间衰减。
2. 时间序列与样本外验证
不能把全样本随机拆成训练集和测试集,因为相邻的持仓收益窗口可能重叠。 正确方式是按照真实时间顺序进行Walk-forward测试,并使用Purging与Embargo处理重叠标签。 示意流程如下:

对于24个月持有模型,尤其不能把尚未经过完整24个月的信号当成已经有完整收益结果的样本。 回测股票池也必须包含历史退市、停牌、上市时间较短及最终表现不佳的股票。仅使用今天仍然上市的公司,会引入幸存者偏差。
3. 策略绩效指标
我会把下列指标设为正式验收字段:
| 指标 | 验证目标 |
|---|---|
| 年化收益率 CAGR | 扣成本后的绝对表现 |
| 年化超额收益 | 是否跑赢对应市场基准 |
| Sharpe Ratio | 单位波动的风险调整收益 |
| Information Ratio | 超额收益是否稳定 |
| 最大回撤 MDD | 最坏历史损失幅度 |
| Rank IC及ICIR | 选股因子预测稳定性 |
| 换手率 | 交易频率与成本敏感性 |
| 盈亏比、胜率 | 收益分布与交易质量 |
| 尾部损失、CVaR | 极端行情的承受能力 |
基准应根据股票池选择,而不是机械地让所有策略都和沪深300或标普500比较。例如,中小盘股票池应使用规模更接近的基准,并尽量采用包含分红的总回报口径。
4. 必须通过的压力测试
我认为正式部署前至少完成以下实验:
- 成本翻倍测试:佣金、价差和滑点假设明显恶化后,是否仍有正的净超额收益?
- 因子消融测试:分别删除资金、消息、盈利、估值等因子,验证新增因子是否真正改善表现。
- 权重扰动测试:各主要权重在合理范围内变化时,策略是否仍有相近表现?
- 市场状态测试:分别在牛市、熊市、横盘、高波动和低波动期间验证。
- 流动性测试:减少可成交量、增加冲击成本,检查回测表现是否严重衰减。
- 极端风险测试:加入停牌、跳空、涨跌停无法成交、退市损失和换汇冲击。 多次尝试参数还会形成数据挖掘偏差,因此正式测试集不应反复用于调参;如果进行了大量策略尝试,应考虑多重检验或Deflated Sharpe Ratio等方法。
八、怎样从0开始实施
我建议分三个版本推进,而不是一开始就训练复杂的深度学习股票预测器。
V1:规则型多因子系统
建立三个市场的历史股票池、可交易性过滤、数据标准化、七大因子评分、回测引擎与风险报告。先使用本文的固定权重。
V2:统计学习权重优化
使用正则化线性模型、LightGBM等学习非线性关系,并与固定权重系统比较。对权重变化、特征贡献和跨市场稳定性施加约束。
V3:基本面事件引擎与模拟交易
增加公告结构化、财报文本分析、盈利预期变化、风险否决记录、市场状态识别,并通过模拟盘核对实际成交与模型假设。
如果以后要加入大语言模型,我会优先让AI负责阅读公告、提取经营数据、识别风险和生成可核查的研究解释,而不是直接让语言模型猜测明天的股票价格。
九、我建议采用的最终系统架构

技术实现上,我倾向使用Python作为核心语言,采用Parquet或数据库保存历史数据,使用独立的因子计算、回测、组合优化和报告模块。框架可以参考 QuantConnect LEAN 的事件驱动回测设计,但需要额外验证A股和港股市场规则、行情授权及数据覆盖范围。
最终建议
我认为这套系统最值得优先验证的,不是全部七大因子,而是各周期真正承担预测任务的核心组合:
| 周期 | 首先验证的核心组合 |
|---|---|
| 周内短线 | 事件超预期程度 × 异常成交 × 相对强弱 |
| 1—6个月 | 盈利预测修正 × 价格动量 × 行业景气 |
| 6—24个月 | 可持续盈利增长 × ROIC/现金流 × 合理估值 |
这些组合先分别与单因子策略、等权模型及对应市场基准比较。如果它们在三个市场的样本外净收益表现稳定,再逐步加入更复杂的因子和机器学习。 真正应该追求的,不是让模型指标越来越多,而是让每增加一个指标,都能证明它带来了独立、稳定、扣除成本后仍然存在的预测价值。
项目规划
项目名称: quantamental-tricycle
| 模块 | 开发内容 |
|---|---|
| 数据中心 | A股、港股、美股行情、财报、公告与宏观数据 |
| 选股模型 | 三个投资周期、七大因子、九套评分权重 |
| 基本面分析 | 盈利质量、估值、行业竞争力与财务风险 |
| 回测引擎 | 历史数据回测、收益分析、策略验证 |
| 风控系统 | 仓位管理、止损、交易成本、市场风险 |
| 策略优化 | 参数校准、Walk-forward、机器学习扩展 |
开发顺序
- V1:可运行原型 — 建立Python项目、评分引擎、样例数据、基础回测和自动化测试。
- V2:数据与策略扩展 — 接入三市场真实数据源,完善财务因子、市场交易规则与风险控制。
- V3:智能分析平台 — 加入AI公告分析、交互式界面、模拟交易与模型优化。 开发任务已包含原方案中的全部九套初始权重、关键公式、数据来源和回测要求。