第三章 因子分类与定义:基本面因子、技术因子、另类数据因子

做量化这几年,我最大的感触就是——因子是策略的灵魂。你想想看,没有好的因子,再牛的模型也是白搭。今天咱们就来聊聊因子的分类和定义,把这三类因子掰开揉碎了讲清楚。

我个人习惯把因子分成三大类:基本面因子、技术因子、另类数据因子。每一类都有自己的脾气秉性,咱们一个一个来看。

3.1 基本面因子:价值、成长、质量

基本面因子,说白了就是看公司"底子"好不好。这类因子来源于财务报表,是量化投资的基石。

3.1.1 价值因子

价值因子的核心逻辑是——买便宜的。我在项目中遇到过很多次,市场情绪会把好公司砸出"黄金坑",这时候价值因子就派上用场了。

常见的价值因子指标:

指标 计算公式 说明
市盈率(PE) 股价 / 每股收益 越低越便宜
市净率(PB) 股价 / 每股净资产 破净股常被关注
股息率 每股股息 / 股价 越高越有安全边际
市销率(PS) 市值 / 营业收入 适合亏损企业
我的经验:价值因子在熊市末期特别有效。我曾经用PE分位数做了一版策略,回测效果不错,但实盘时发现——低PE的股票往往有"价值陷阱",得配合质量因子一起用。

3.1.2 成长因子

成长因子看的是"未来"。你想想看,一家公司现在赚1块,明年赚2块,后年赚4块——这种公司谁不爱?

常用的成长指标:

  • 营收增长率:连续3年复合增长率 > 20% 算优质
  • 净利润增长率:注意剔除非经常性损益
  • ROE增长率:反映资本使用效率的提升
  • 分析师预期调整:这个我单独拿出来说——分析师上调盈利预测,往往是个强信号
避坑指南:我曾经踩过一个坑——只看营收增长率,没注意应收账款也在暴增。结果选出来的公司,利润全是"纸面富贵"。后来我加上了"经营性现金流/净利润"这个质量指标,才把坑填上。

3.1.3 质量因子

质量因子,说白了就是看公司"身体好不好"。盈利能力强、财务健康、管理优秀——这样的公司才值得长期持有。

我常用的质量因子组合:

# 质量因子打分示例
def quality_score(df):
    """
    df: 包含财务数据的DataFrame
    返回: 质量综合得分
    """
    # ROE - 盈利能力
    roe_score = df['ROE'].rank(pct=True)
    
    # 毛利率 - 护城河
    margin_score = df['毛利率'].rank(pct=True)
    
    # 资产负债率 - 财务安全(越低越好)
    debt_score = 1 - df['资产负债率'].rank(pct=True)
    
    # 综合得分
    total_score = (roe_score + margin_score + debt_score) / 3
    return total_score

核心要点:质量因子在牛市中表现平平,但在熊市中能帮你"少亏钱"。我做过回测,2018年大熊市,质量因子组合只跌了8%,而沪深300跌了25%。

3.2 技术因子:动量、反转、波动率

技术因子看的是"市场行为"。价格、成交量、波动——这些数据里藏着交易者的情绪。

3.2.1 动量因子

动量因子的逻辑很简单——强者恒强。过去涨得好的股票,未来一段时间还会继续涨。

嗯,这里要注意:动量有"时间窗口"之分。

  • 短期动量:1-3个月,容易反转
  • 中期动量:6-12个月,最稳定
  • 长期动量:12个月以上,效果减弱

我个人习惯用12个月剔除最近1个月的动量。为什么?因为最近1个月容易有"短期噪音"。

3.2.2 反转因子

反转因子和动量因子是"冤家"。反转因子认为——跌多了会涨,涨多了会跌。

为什么会这样?因为市场经常"过度反应"。我记得2015年股灾时,很多股票跌了70%以上,但半年后反弹了50%——这就是反转的力量。

反转因子的常见用法:

# 反转因子计算
def reversal_factor(price_df, lookback=20):
    """
    price_df: 价格数据
    lookback: 回看天数
    返回: 反转因子值(负值表示超跌)
    """
    # 计算过去N日收益率
    ret = price_df.pct_change(lookback)
    
    # 反转因子 = -收益率(跌得越多,因子值越大)
    reversal = -ret
    return reversal

3.2.3 波动率因子

波动率因子很有意思。低波动率的股票,长期收益反而更好——这就是著名的"低波动异象"。

我在项目中遇到过,很多新手喜欢追高波动率的"妖股",结果亏得很惨。低波动策略虽然涨得慢,但胜在稳健。

实用技巧:波动率因子可以和动量因子组合使用。比如:选择"低波动+强动量"的股票,既能控制风险,又能捕捉趋势。

3.3 另类数据因子

另类数据,说白了就是"非传统数据"。这些数据以前没人用,现在成了量化机构的"秘密武器"。

3.3.1 另类数据的来源

数据来源 示例 应用场景
卫星图像 停车场车辆数 零售店客流量预测
网络爬虫 电商评论量 产品销量预测
支付数据 POS机交易额 消费行业景气度
新闻情绪 NLP情感分析 事件驱动策略

3.3.2 另类数据的处理难点

另类数据虽好,但处理起来很麻烦。我总结了几点:

  • 数据清洗:噪声多,需要大量预处理
  • 频率对齐:日频数据和周频数据怎么融合?
  • 过拟合风险:数据维度太高,容易"挖"出假规律
  • 时效性:有些数据今天有用,明天就失效了
我的教训:我曾经用微博评论数据做情绪因子,回测效果特别好。结果实盘时发现——微博数据有"水军"刷评论,情绪指标完全失真。后来我加了"用户真实性评分"这个过滤条件,才把问题解决。

3.4 因子分类框架图

下面这张图,是我自己整理的因子分类框架。你看一眼就能明白各类因子的关系。

因子分类框架图 基本面因子 技术因子 另类数据因子 价值因子 成长因子 质量因子 动量因子 反转因子 波动率因子 卫星/爬虫/支付/情绪 因子选择建议 • 价值因子:适合熊市末期,注意"价值陷阱" • 成长因子:适合牛市初期,关注盈利质量 • 质量因子:适合震荡市,防御性强 • 动量因子:适合趋势市,注意时间窗口 • 反转因子:适合极端行情,需要耐心 • 另类数据:适合增强收益,但处理成本高

3.5 因子选择的实战思路

说了这么多,到底怎么选因子?我的建议是——不要贪多。

我见过很多新手,一上来就搞几十个因子,结果模型过拟合得一塌糊涂。我个人习惯是:先选3-5个核心因子,跑通流程,再慢慢加。

举个例子,一个经典的"价值+质量+动量"组合:

# 因子组合示例
def factor_combo(df):
    """
    价值+质量+动量 三因子组合
    """
    # 价值因子:低PE
    value = -df['PE'].rank(pct=True)
    
    # 质量因子:高ROE
    quality = df['ROE'].rank(pct=True)
    
    # 动量因子:过去6个月收益
    momentum = df['ret_6m'].rank(pct=True)
    
    # 等权组合
    combo = (value + quality + momentum) / 3
    return combo

记住:因子不是越多越好,关键是"有效+稳定"。我做过统计,市场上真正有效的因子不超过20个,大部分都是"噪音"。

好了,这一章的内容就到这里。因子分类是量化投资的基础,把这三类因子吃透了,后面的模型构建才能得心应手。


公众号:蓝海资料掘金营,微信deep3321