Skip to content

15002430024/haitong-highlevelfactor

Repository files navigation

海通高频因子构建 (Haitong High-Frequency Factors Construction)

项目简介

本项目是一个基于 Python 的高频因子计算引擎,旨在复现海通金工系列研报中的 22 个高频选股因子。项目利用 Polars 库进行高效的大规模数据处理,支持上交所和深交所的逐笔成交、逐笔委托及快照数据。

核心特性:

  • 完整复现: 涵盖海通研报中的收益分布、大单资金流、交易意愿、委托成交相关性等多个维度的 22 个因子。
  • 高性能: 核心计算逻辑全链路使用 Polars 实现,针对大规模逐笔数据进行了优化。
  • 严格时序: 精确处理连续竞价时段,所有计算统一剔除集合竞价(开盘、收盘)及非交易时段数据。
  • 灵活运行: 支持单日计算、历史区间批量计算、断点续传及特定因子指定计算。

因子覆盖范围

项目实现的因子主要参考海通金工高频系列研报(如海通19/25/46/47/49/52/57/58/59/60/66/69/70/72/85等)。

主要因子分类实现于 haitong_hf_factors/factors/ 目录下:

  • 收益分布特征: 包含日内收益率的已实现方差、偏度、峰度等 (price_based.py, return_distribution.py)。
  • 成交量分布: 包含尾盘成交占比等 (volume_distribution.py)。
  • 单笔成交特征: 单笔成交金额、大小单划分 (trade_size.py)。
  • 大单资金流: 基于大单的主动买入/卖出行为 (big_order.py)。
  • 盘口委托: 委托挂单分析、买卖单不平衡 (order_book.py)。
  • 开盘行为: 开盘时段的买入意愿 (opening_session.py)。

环境依赖

  • Python 3.8+
  • Polars (核心数据处理库)
  • NumPy
  • PyArrow (Parquet 文件读写支持)

项目结构

haitong_hf_factors/
├── __init__.py
├── main.py              # 主程序入口,提供命令行接口
├── config.py            # 全局配置(路径、参数、时间段定义)
├── data_loader.py       # 数据加载模块,统一处理不同数据源
├── preprocessor.py      # 数据预处理(时间过滤、异常值清洗)
├── aggregator.py        # 因子聚合模块,汇总各子模块结果
├── batch_processor.py   # 批处理流程控制与断点续传逻辑
├── run_real_data.py     # 生产环境运行辅助脚本
├── factors/             # 因子计算核心逻辑包
│   ├── base.py          # 因子基类
│   ├── big_order.py     # 大单因子
│   ├── opening_session.py # 开盘因子
│   ├── order_book.py    # 盘口因子
│   ├── price_based.py   # 价格基础因子
│   ├── return_distribution.py # 收益分布因子
│   ├── trade_size.py    # 成交规模因子
│   └── volume_distribution.py # 成交量分布因子
└── tests/               # 单元测试

使用方法

项目提供了一个统一的命令行入口 haitong_hf_factors

1. 运行示例

在项目根目录下,使用 python -m 方式运行:

计算单日所有因子:

python -m haitong_hf_factors --date 20260101

批量计算指定日期范围:

python -m haitong_hf_factors --start-date 20260101 --end-date 20260131

仅计算特定因子(使用逗号分隔因子名):

python -m haitong_hf_factors --date 20260101 --factors RSKEW,VOLUME_RATIO

指定输出目录并强制重新计算(覆盖已有文件):

python -m haitong_hf_factors --date 20260130 --output-dir /path/to/output --force

开启断点续传(跳过已存在的输出文件):

python -m haitong_hf_factors --start-date 20260101 --end-date 20260131 --resume

2. 配置说明

关键配置项位于 haitong_hf_factors/config.py 中,支持但不限于以下配置:

  • 数据路径: 输入数据源的根目录。
  • 时间参数: 连续竞价时间段定义的起始与结束点(如 MARKET_CLOSE 定义为 14:57:00)。
  • 并行参数: 多进程计算时的并发数。

注意事项

  1. 时间口径:

    • 因子计算仅使用 连续竞价时段(09:30-11:30, 13:00-14:57)。
    • 严格剔除开盘集合竞价(09:15-09:25)和收盘集合竞价(14:57-15:00)。
    • 下午收盘时间点统一截断至 14:57:00.000
  2. 数据要求:

    • 输入数据格式建议为 Parquet。
    • 需包含标准的交易所逐笔/快照字段(如 Time, Price, Volume 等)。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages