网淘吧来吧,欢迎您!

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)滚动标准差

技术指标函数

函数用法描述
rsirsi(x, n=14)相对强弱指数
correlationcorrelation(x, y, n)相关系数
cross_upcross_up(a, b)金叉(a上穿b)
cross_downcross_down(a, b)死叉(a下穿b)

排序与标准化函数

函数用法描述
rankrank(x)横截面排序(0-1)
zscorezscore(x)标准化
符号sign(x)符号函数
钳制clamp(x, min, max)裁剪函数

条件函数

函数用法描述
wherewhere(cond, t, f)条件选择
ifif(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

评估要点:

  1. 入选股票数量: 检查筛选条件是否合理
  2. 因子分布: 因子得分的分布情况
  3. 行业分散度: 避免过度集中

常见问题

问:如何分配因子权重?答:核心因子0.3-0.4,辅助因子0.1-0.2,确保权重总和接近1

问:筛选条件过严导致结果为空?答:逐步放宽条件,先查看满足每个条件的股票数量

问:支持哪些表达式语法?答:支持40多个内置函数:ma()ema()delay()rolling_sum()rsi(),rank(),zscore(), 等等。

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第326370名访客 今日有221篇新文章/评论