multi-factor-strategy技能使用说明
2026-03-29
新闻来源:网淘吧
围观:17
电脑广告
手机广告
{"homepage":"https://gitcode.com/datavoid/quantcli","user-invocable":true}
多因子策略助手
引导您创建多因子选股策略并生成独立的YAML配置文件。
安装 quantcli
# Install from PyPI (recommended)
pip install quantcli
# Or install from source
git clone https://gitcode.com/datavoid/quantcli.git
cd quantcli
pip install -e .
验证安装:
quantcli --help
快速开始
一个完整的多因子选股策略YAML示例:
name: Value-Growth Hybrid Strategy
version: 1.0.0
description: ROE + Momentum factor stock selection
screening:
fundamental_conditions: # Stage 1: Financial condition screening
- "roe > 0.10" # ROE > 10%
- "pe_ttm < 30" # P/E < 30
- "pe_ttm > 0" # Exclude losses
daily_conditions: # Stage 2: Price condition screening
- "close > ma10" # Above 10-day MA
limit: 100 # Keep at most 100 stocks
# Factor configuration (supports two methods, factors at top level)
factors:
# Method 1: Inline factor definition
- name: ma10_deviation
expr: "(close - ma(close, 10)) / ma(close, 10)"
direction: negative
description: "10-day MA deviation"
# Method 2: External reference (reference factor files in factors/ directory, include .yaml suffix)
- factors/alpha_001.yaml
- factors/alpha_008.yaml
ranking:
weights: # Weight fusion
ma10_deviation: 0.20 # Inline factor
factors/alpha_001.yaml: 0.40 # External reference factor
factors/alpha_008.yaml: 0.40
normalize: zscore # Normalization method
output:
limit: 30 # Output top 30 stocks
columns: [symbol, name, score, roe, pe_ttm, close, ma10_deviation]
因子配置方法
因子配置支持两种方法(可以混合使用):
| 方法 | 类型 | 示例 | 描述 |
|---|---|---|---|
| 内联 | 字典 | {名称: xxx, 表达式: "..."} | 在YAML中直接定义表达式 |
| 外部 | 字符串 | factors/alpha_001.yaml | 从因子文件加载因子/目录 |
示例:混合用法
factors:
# Inline: Custom factor
- name: custom_momentum
expr: "close / delay(close, 20) - 1"
direction: positive
# External: Alpha101 factor library (include .yaml suffix)
- factors/alpha_001.yaml
- factors/alpha_005.yaml
- factors/alpha_009.yaml
ranking:
weights:
custom_momentum: 0.3
factors/alpha_001.yaml: 0.3
factors/alpha_005.yaml: 0.2
factors/alpha_009.yaml: 0.2
运行策略:
quantcli filter run -f your_strategy.yaml
调用
/multi-factor-strategy
可用的表达式函数
数据处理函数
| 函数 | 用法 | 描述 |
|---|---|---|
| 延迟 | delay(x, n) | 滞后n个周期 |
| 移动平均 | ma(x, n) | 简单移动平均 |
| 指数移动平均 | ema(x, n) | 指数移动平均 |
| 滚动求和 | rolling_sum(x, n) | 滚动求和 |
| 滚动标准差 | rolling_std(x, n) | 滚动标准差 |
技术指标函数
| 函数 | 用法 | 描述 |
|---|---|---|
| rsi | rsi(x, n=14) | 相对强弱指数 |
| correlation | correlation(x, y, n) | 相关系数 |
| cross_up | cross_up(a, b) | 金叉(a上穿b) |
| cross_down | cross_down(a, b) | 死叉(a下穿b) |
排序与标准化函数
| 函数 | 用法 | 描述 |
|---|---|---|
| rank | rank(x) | 横截面排序(0-1) |
| zscore | zscore(x) | 标准化 |
| 符号 | sign(x) | 符号函数 |
| 钳制 | clamp(x, min, max) | 裁剪函数 |
条件函数
| 函数 | 用法 | 描述 |
|---|---|---|
| where | where(cond, t, f) | 条件选择 |
| if | if(cond, t, f) | 条件选择(别名) |
基础字段
| 字段 | 描述 |
|---|---|
| 开盘价, 最高价, 最低价, 收盘价 | OHLC价格 |
| 成交量 | 交易量 |
| 市盈率, 市净率 | 市盈率, 市净率 |
| 净资产收益率 | 净资产收益率 |
| 净利润率 | 净利润率 |
引导式工作流程
步骤1:策略目标定位
我将首先了解您的策略需求:
- 策略类型:价值型、成长型、动量型、波动性、混合型
- 选择数量:集中型(10-30只)、中等型(50-100只)、分散型(200只以上)
- 持有期限:日内、短期(周)、中期(月)、长期(季度)
步骤2:因子选择
根据您的策略目标,推荐合适的因子组合:
常见基本面因子:
| 因子 | 表达式 | 方向 | 描述 |
|---|---|---|---|
| 净资产收益率 | 净资产收益率 | 积极的 | 净资产收益率 |
| 市盈率 | 市盈率 | 消极的 | 市盈率越低越好 |
| 市净率 | 市净率 | 消极的 | 市净率 |
| 净利润率 | 净利润率 | 积极的 | 净利润率 |
| 营收增长 | 营收同比增长率 | 积极的 | 营收增长率 |
常见技术因子:
| 因子 | 表达式 | 方向 | 描述 |
|---|---|---|---|
| 动量 | (收盘价/delay(收盘价,20))-1 | 积极 | N日动量 |
| 均线偏离度 | (收盘价-收盘价10日均线)/收盘价10日均线 | 消极 | 均线偏离度 |
| 均线斜率 | (收盘价10日均线-5日前收盘价10日均线)/5日前收盘价10日均线 | 积极 | 均线斜率 |
| 成交量比率 | 成交量/成交量5日均线 | 消极 | 成交量比率 |
Alpha101内置因子(可参考{baseDir}/alpha101/alpha_XXX):
QuantCLI包含40个可直接引用的WorldQuant Alpha101因子:
| 因子 | 类别 | 描述 |
|---|---|---|
alpha101/alpha_001 | 反转 | 20日新高后回落 |
alpha101/alpha_002 | 反转 | 下跌成交量底部 |
alpha101/alpha_003 | 波动率 | 低波动稳定性 |
alpha101/alpha_004 | 资金流向 | 资金净流入 |
alpha101/alpha_005 | 趋势 | 上升趋势 |
alpha101/alpha_008 | 资金流向 | 资金流入 |
alpha101/alpha_009 | 动量 | 长期动量 |
alpha101/alpha_010 | 反转 | 均线偏离反转 |
alpha101/alpha_011~alpha_020 | 扩展 | 波动性、动量、价量因子 |
alpha101/alpha_021~alpha_030 | 扩展 | 价量、趋势、强度因子 |
alpha101/alpha_031~alpha_040 | 扩展 | 仓位、波动性、资金因子 |
查看所有内置因子:
quantcli factors list
使用示例:
factors:
- alpha101/alpha_001 # Reversal factor
- alpha101/alpha_008 # Capital inflow
- alpha101/alpha_029 # 5-day momentum
ranking:
weights:
alpha101/alpha_001: 0.4
alpha101/alpha_008: 0.3
alpha101/alpha_029: 0.3
筛选条件示例:
screening:
conditions:
- "roe > 0.10" # ROE > 10%
- "netprofitmargin > 0.05" # Net profit margin > 5%
步骤三:权重配置
根据因子重要性分配权重,0表示仅用于筛选,不参与评分:
ranking:
weights:
# Fundamental factors
roe: 0.30
pe: 0.20
# Technical factors
ma_deviation: 0.30
momentum: 0.20
normalize: zscore
步骤四:生成策略文件
我将为您生成一个完整的策略YAML文件:
name: Your Strategy Name
version: 1.0.0
description: Strategy description
# Stage 1: Fundamental screening
screening:
conditions:
- "roe > 0.10"
- "pe < 30"
limit: 200
# Stage 2: Technical ranking
ranking:
weights:
roe: 0.30
pe: 0.20
ma_deviation: 0.30
momentum: 0.20
normalize: zscore
output:
columns: [symbol, score, rank, roe, pe, momentum]
limit: 30
步骤五:运行与评估
运行策略:
quantcli filter run -f your_strategy.yaml --top 30
评估要点:
- 入选股票数量: 检查筛选条件是否合理
- 因子分布: 因子得分的分布情况
- 行业分散度: 避免过度集中
常见问题
问:如何分配因子权重?答:核心因子0.3-0.4,辅助因子0.1-0.2,确保权重总和接近1
问:筛选条件过严导致结果为空?答:逐步放宽条件,先查看满足每个条件的股票数量
问:支持哪些表达式语法?答:支持40多个内置函数:ma()、ema()、delay()、rolling_sum()、rsi(),rank(),zscore(), 等等。
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Box技能使用说明
下一篇:Mixpost技能使用说明


微信扫一扫,打赏作者吧~