多因子灵活组合筛选功能使用指南

文档版本:v1.0  |  更新日期:2026-06-06  

摘要:多因子灵活组合筛选是股票量化分析平台的核心工具之一,基于每日计算的 130+ 技术面因子(涵盖均线、MACD、KDJ、RSI、BOLL、PE、PB、分位值、技术信号等 16 个分类),支持用户自由组合条件、灵活嵌套逻辑,实现对全市场股票的精准筛选。本文档详细介绍因子分类、条件构建方式、字段间比较、条件保存复用等功能的使用方法。

一、功能概述

传统的股票筛选工具通常只能按固定维度(如行业、市值区间、PE 范围)进行查询,筛选逻辑僵化、覆盖维度有限。多因子灵活组合筛选功能从根本上改变了这一局面,它将条件构建权完全交给用户,用户可以从 130+ 个技术面因子中任意挑选,自由定义比较方式,并通过 AND/OR 逻辑及嵌套条件组拼装出复杂的筛选规则。

核心能力一览:

  • 因子自由组合:130+ 因子按需选取,不限数量
  • 逻辑灵活嵌套:AND / OR 自由切换,支持最多 3 层嵌套子组
  • 字段间比较:支持因子与因子直接比较(如 收盘价 > MA20 > MA60)
  • 两种比较模式:数值模式(因子 vs 固定值)、因子模式(因子 vs 因子)
  • 布尔型快捷选择:技术信号类因子(金叉/死叉/顶底背离等)提供"是/否"下拉
  • 条件保存复用:可将当前筛选条件保存,下次一键加载
  • 基本信息联合筛选:同时按行业、企业性质、上市年限过滤
  • 排序与分页:结果按任意因子排序,支持分页查看

数据来源为 stock_price_factors 表,每个交易日收盘后由定时任务自动计算更新。筛选始终基于最新交易日数据,确保时效性。

二、因子分类介绍

系统共收录 16 大类、130+ 个因子,覆盖行情估值、趋势均线、量能、技术信号、历史分位等多个维度。各分类详情如下:

分类因子数量代表因子说明
行情估值27开盘价、收盘价、涨跌幅、PE、PB、PS、股息率、总市值、流通市值、成交额当日核心行情与估值指标。价格类字段提供不复权/后复权/前复权三种口径。市值和成交额单位均为"亿"。
涨跌幅5近1/5/10/20/60日涨跌幅(%)多周期涨跌幅,用于评估短中长期趋势强度。
均线 MA7MA5、MA10、MA20、MA30、MA60、MA90、MA250简单移动均线(不复权),最基础的趋势跟踪指标。
均线 EMA7EMA5、EMA10、EMA20、EMA30、EMA60、EMA90、EMA250指数移动均线,对近期价格赋予更高权重,反应更灵敏。
MACD3MACD柱(DIF-DEA)、DIF、DEA经典趋势动能指标。
KDJ3K值、D值、J值随机指标,反映超买超卖状态。
RSI3RSI6、RSI12、RSI24相对强弱指标,三个周期覆盖短中长。
BOLL3上轨、中轨、下轨布林带,界定价格的波动区间。
BIAS3BIAS6、BIAS12、BIAS24乖离率,衡量价格偏离均线的程度。
EXPMA2EXPMA12、EXPMA50指数平均线,兼具趋势跟踪与平滑特性。
MTM2MTM(动量线)、MTM MA动量指标,衡量价格变化速度。
量能65/10/20日均量、5/10/20日均换手率量价配合分析的关键维度。
技术信号23MACD/KDJ/RSI金叉死叉、顶底背离、均线多空排列、BOLL突破布尔型(0/1)信号因子,无需输入数值,选择"是/否"即可。含日线和60日两种周期。
形态9连续阳线/阴线天数、连续缩量/放量天数、上涨/下跌/低位/高位天数连续形态统计,用于判断趋势持续性和极端状态。
分位值20价格/PE/PB/股东数 在1/3/5/8/10年中的分位历史估值位置的量化指标,值域 0~1。值越低表示当前处于历史低位。
股东变动10股东数变动(1~10期前,%)各期股东人数变动百分比,反映筹码集中或分散趋势。
提示:因子下拉框采用分组多列布局,16 个分类按名称排列,组内因子分 3 列展示。支持关键词搜索,输入因子名称即可快速定位。

三、条件构建方式

3.1 基本信息筛选

在"基本信息筛选"区域,可以按以下维度初步缩小选股范围:

  • 所属行业:多选下拉,支持模糊搜索,可选多个行业
  • 企业性质:多选下拉,如央企、地方国企、民企等
  • 上市年限:设定最小/最大年限范围

基本信息筛选会与因子条件以 AND 逻辑合并,即同时满足所有条件。

3.2 添加因子条件

每条因子条件由三部分组成:左操作数(因子) + 运算符 + 右操作数(值或因子)

操作步骤:

  1. 点击"添加条件组"创建条件组
  2. 在条件组内点击"添加条件"
  3. 从下拉框中选择目标因子(支持关键词搜索)
  4. 选择运算符(≥、≤、>、<、=、≠、BETWEEN)
  5. 选择值类型("数值"或"因子")
  6. 输入数值或选择对比因子

3.3 数值模式 vs 因子模式

系统支持两种比较模式,通过条件行中的"数值/因子"切换按钮选择:

模式示例适用场景
数值模式收盘价 ≥ 10
市盈率 ≤ 30
MACD金叉 = 是
因子与固定值比较,如筛选股价大于某数值、PE在某个区间(BETWEEN)的股票。布尔型因子不可切换为因子模式。
因子模式收盘价 ≥ MA20
MACD DIF ≥ MACD DEA
因子与因子直接比较,不再需要输入数值。适合跨指标联动分析,如"收盘价站上均线"、"DIF上穿DEA"的条件。
自动限制:布尔型技术信号因子(如MACD金叉、KDJ死叉等)和连续形态因子(如连续阳线天数等)不支持因子模式,系统会自动隐藏"因子"切换按钮,强制使用数值模式。布尔型因子选择后自动显示"是/否"下拉,无需手动输入 0 或 1。

四、AND/OR 逻辑与嵌套

4.1 条件组内逻辑

每个条件组都有一个 AND/OR 切换按钮,控制组内所有条件的连接方式:

  • AND(且):组内所有条件必须同时满足
  • OR(或):组内任一条件满足即可
条件组1(AND): ├── 市盈率(TTM) ≤ 30 ├── 市净率 ≤ 3 └── 股息率(%) ≥ 2 筛选 PE≤30 PB≤3 股息率≥2 的股票

4.2 嵌套子组

在条件组内点击"添加子组",可以创建嵌套条件组,实现复杂的逻辑组合。子组支持最多 3 层嵌套。

条件组1(AND): ├── 总市值(亿) ≥ 100 ├── 换手率(%) ≥ 3 └── 子组1.1(OR): ├── MACD金叉 = 是 └── KDJ金叉 = 是 筛选 市值≥100亿 换手率≥3% (MACD金叉 KDJ金叉)的股票

4.3 多条件组

页面支持同时存在多个顶层条件组,它们之间始终以 AND 逻辑连接(每个组各自内部可独立设置 AND/OR)。

五、字段间比较(链式条件)

因子模式的真正威力在于可以构建链式比较,例如经典的"当前价 > MA20 > MA60"多头排列判断。只需在同一条件组中添加两条因子模式条件即可:

条件组1(AND): ├── 收盘价(不复权) > MA20 (因子模式:close > ma_bfq_20) └── MA20 > MA60 (因子模式:ma_bfq_20 > ma_bfq_60) 等效于 SQL: f.close > f.ma_bfq_20 AND f.ma_bfq_20 > f.ma_bfq_60

此模式适用于任何两个数值型因子之间的比较,如:

  • 收盘价 > BOLL中轨(价格在布林带中轨上方)
  • 成交量 > 5日均量(当日放量)
  • MACD DIF > MACD DEA(DIF在DEA上方)

六、结果查看与排序

6.1 查询执行

构建好条件后,点击绿色"查询"按钮执行筛选。查询始终基于最新交易日数据,页面顶部会显示当前数据日期。不添加任何条件直接点击查询,将返回全量股票列表。

6.2 结果表格

查询结果以表格形式展示,包含以下核心字段:

  • 股票代码 / 名称:固定左侧,可快速识别
  • 行业:所属行业分类
  • 收盘价:当日收盘价
  • 涨跌幅(%):红涨绿跌,颜色标识
  • PE / PB:市盈率、市净率
  • 总市值(亿):以亿元为单位显示
  • 量比 / 换手率(%):量能指标

6.3 排序

在"排序"区域,可选择任意因子作为排序字段,并指定升序或降序。默认按收盘价降序排列。注意:排序字段会通过白名单和正则双重校验,确保 SQL 注入安全。

6.4 分页

查询结果使用服务端真分页,默认每页 20 条。底部工具栏显示总记录数和页码。每页大小可在工具栏中调整。

七、条件保存与复用

7.1 保存条件

构建好一套筛选条件后,点击"保存当前条件"按钮,输入名称和备注即可保存。保存内容包含:

  • 全部因子条件组合(含嵌套结构)
  • 行业、企业性质、上市年限等基本信息筛选条件
  • 排序字段和方向

需要注意的是,保存条件需要已登录状态,与用户账号绑定。

7.2 加载条件

点击"我的查询条件"按钮,弹出已保存条件列表。选择任一条件点击"加载",页面会自动还原所有条件配置,包括条件组、因子选择、运算符、数值、排序等。加载后可修改、重新查询或覆盖保存。

7.3 删除条件

在"管理"我的条件弹窗中,点击"删除"即可移除不再需要的条件。

九、典型使用场景

场景一:低估值高股息筛选

条件组(AND): ├── 市盈率(TTM) ≤ 15 ├── 市净率 ≤ 1.5 ├── 股息率(%) ≥ 3 └── 总市值(亿) ≥ 100

筛选 PE≤15、PB≤1.5、股息率≥3% 且市值≥100亿的蓝筹价值股。

场景二:均线多头排列 + MACD金叉

条件组(AND): ├── 收盘价(不复权) > MA20 (因子模式) ├── MA20 > MA60 (因子模式) ├── MA60 > MA250 (因子模式) ├── MACD金叉 = 是 └── 换手率(%) ≥ 2

筛选均线全面多头排列、MACD 刚金叉、成交活跃的强势股。

场景三:底部背离信号

条件组(AND): ├── 价格分位(1年) ≤ 0.3 └── 子组(OR): ├── MACD底背离 = 是 ├── KDJ底背离 = 是 └── RSI底背离 = 是

筛选股价处于近1年低位 30% 以下,且出现 MACD/KDJ/RSI 任一底背离信号的潜在反转标的。

场景四:放量突破

条件组(AND): ├── 收盘价(不复权) > BOLL上轨 (因子模式) ├── 成交量(手) > 5日均量 (因子模式) ├── 近5日涨跌幅(%) ≥ 5 └── 连续阳线天数 ≥ 3

筛选价格突破布林上轨、放量上涨、连续阳线的强势突破股。

十、注意事项

  1. 筛选数据基于系统中的最新交易日数据,若当日数据尚未计算完成,将使用最近可用交易日的数据。
  2. BETWEEN 运算符仅支持数值模式,不支持因子模式。输入两个值后系统自动将小值放前面。
  3. 布尔型因子(技术信号类)数值为 0 或 1。前端已优化为"是/否"下拉选择,无需手动输入。
  4. 连续形态因子(连续阳线天数等)不支持因子间比较,仅支持与固定数值比较。
  5. 总市值、流通市值、成交额在前端统一以"亿"为单位显示和输入,后端自动完成单位转换。
  6. 保存条件需要登录账户。条件与用户 ID 绑定,不同用户的条件互不可见。
  7. 条件组数量不限,但组与组之间始终以 AND 连接。如需 OR 关系,请在组内使用子组实现。

— 文档结束 —