基于EasyXT构建的完整101因子分析平台,提供从因子计算、分析、回测到策略构建的一站式量化研究解决方案。
- 🎯 完整因子库:实现 WorldQuant Alpha101 全部101个因子 + Alpha191扩展因子
- 📊 可视化工作流:拖拽式界面,零代码构建量化策略
- 🚀 高性能计算:基于pandas向量化计算,支持大规模数据
- 📈 完整分析工具:IC分析、分层回测、绩效评估
- 🔌 EasyXT集成:无缝对接EasyXT数据接口
在使用本平台前,您需要准备股票数据。
为什么推荐Tushare?
- ✅ 数据质量高,覆盖A股、港股、美股
- ✅ 免费版120次/天,足够学习使用
- ✅ API文档完善,调用简单
- ✅ 社区活跃,问题容易解决
- ✅ 通过本链接注册可获得额外积分
注册步骤:
- 点击上方链接注册
- 完善个人信息
- 获取API Token
- 开始调用API下载数据
快速示例:
import tushare as ts
ts.set_token('your_token')
pro = ts.pro_api()
df = pro.daily(ts_code='000001.SZ', start_date='20230101', end_date='20231231')其他数据源:
- QMT/MiniQMT - 本地行情软件
- AKShare - 免费开源数据库
- Baostock - 免费历史数据
💡 提示: 更多数据获取方法请查看 疑难问题解答
cd c:\Users\Administrator\Desktop\EasyXT\101因子\101因子分析平台
python 启动增强版.py或手动启动:
streamlit run src/workflow/ui_enhanced.py --server.port=8510 --server.address=127.0.0.1from src.factor_engine.calculator import FactorCalculator
# 初始化计算器
calculator = FactorCalculator()
# 加载数据
symbols = ['000001.SZ', '000002.SZ', '600000.SH']
calculator.load_data(symbols, '2023-01-01', '2023-12-31')
# 计算因子
factor = calculator.calculate_single_factor(data, 'alpha078')101因子分析平台/
├── src/ # 源代码
│ ├── easyxt_adapter/ # EasyXT数据适配器
│ ├── factor_engine/ # 因子计算引擎
│ │ ├── alpha101.py # ✅ Alpha101因子(101个)
│ │ ├── alpha191.py # ✅ Alpha191因子(90个)
│ │ └── calculator.py # 统一计算接口
│ ├── workflow/ # 可视化工作流
│ │ ├── ui_enhanced.py # ✅ 增强版UI
│ │ └── engine.py # 工作流引擎
│ └── analysis/ # 分析模块
├── config/ # 配置文件
├── README.md # 本文件
├── USER_GUIDE.md # 📖 详细使用指南
├── IMPLEMENTATION_GUIDE.md # 🔧 实现细节文档
└── requirements.txt # 依赖包
- ✅ 已完整实现全部101个因子
- 基于WorldQuant Alpha101公式
- 支持自定义参数调整
- ✅ 已实现90个扩展因子
- 包含动量、反转、波动率等类型
总计:191个Alpha因子
- 支持191个Alpha因子计算
- 40+基础操作符(ts_sum, sma, stddev等)
- 自动数据预处理和清洗
- 拖拽式策略构建
- 实时结果展示
- 支持保存/加载工作流
- IC/IR分析
- 分层回测
- 绩效评估(夏普比率、最大回撤等)
- 自动数据格式转换
- 实时行情支持
- 历史数据回测
from src.factor_engine.calculator import FactorCalculator
calculator = FactorCalculator()
# 加载数据
data = calculator.load_data(
symbols=['000001.SZ', '600000.SH'],
start_date='2023-01-01',
end_date='2023-12-31'
)
# 计算单个因子
factor = calculator.calculate_single_factor(data, 'alpha001')
# 计算多个因子
factors = calculator.calculate_factors(['alpha001', 'alpha002', 'alpha078'])from src.workflow.engine import WorkflowEngine
# 创建工作流引擎
engine = WorkflowEngine()
# 添加节点
engine.add_data_node(symbols=['000001.SZ'], start='2023-01-01', end='2023-12-31')
engine.add_factor_node('alpha078')
engine.add_ic_analysis_node(periods=1)
# 执行工作流
results = engine.execute()-
USER_GUIDE.md - 详细使用指南
- 界面操作说明
- 节点配置方法
-
TROUBLESHOOTING.md - 疑难问题解答 ⭐
- 数据获取(含Tushare注册链接)
- 安装配置
- 运行问题
- 性能优化
-
IMPLEMENTATION_GUIDE.md - 技术实现文档
- 架构设计说明
- 扩展开发指南
- API参考文档
在 src/factor_engine/alpha101.py 中添加:
def alpha_custom(self) -> pd.DataFrame:
"""
自定义因子
公式:...
"""
# 使用基础操作符
close = self.data['close']
volume = self.data['volume']
# 计算因子值
factor = self.rank(close / self.delay(close, 5))
return factor参考 src/workflow/nodes/ 中的节点实现:
from src.workflow.nodes.base_node import BaseNode
class CustomNode(BaseNode):
def execute(self, data):
# 实现自定义逻辑
return result- 数据处理: pandas, numpy
- 科学计算: scipy
- 可视化: matplotlib, seaborn, plotly
- UI框架: streamlit
- 配置管理: yaml, json
- 数据质量:确保输入数据无过多缺失值
- 内存管理:大数据集注意内存使用
- 因子选择:建议先进行IC分析筛选有效因子
- 参数调优:根据实际情况调整回测参数
- 使用缓存机制避免重复计算
- 批量计算因子提高效率
- 合理设置数据时间范围
- 定期清理临时文件
- ✅ 完整实现Alpha101全部101个因子
- ✅ 新增Alpha191扩展因子(90个)
- ✅ 修复因子计算器支持alpha001-alpha191
- ✅ 优化UI界面,新增增强版工作流
- ✅ 清理临时文件,项目结构优化
- 初始版本发布
- 实现基础工作流功能
- 支持因子计算和分析
欢迎提交 Issue 和 Pull Request!
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
欢迎加入QQ交流群:1018087929(或扫码加入)
- 微信公众号: 王者quant
- 微信号: www_ptqmt_com
- GitHub: [项目地址]
MIT License
🎉 祝您因子研究顺利!
