factor performance visualization
Project description
AlphaInspect
仿alphalens
的单因子分析工具
安装
pip install -i https://pypi.org/simple --upgrade alphainspect # 官方源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade alphainspect # 国内镜像源
使用
- 准备数据。运行
data/prepare_data.py
- date, asset。必需的两个字段
- factor因子值。放在因子发生时刻
- forward return远期收益率。计算收益率后需要回移到开始位置。为何是shift(-n)收益率,而不是shift(n)因子呢?
- 多期收期率。如果移动因子,会导致一个因子就要移动多次
- 因子一般成百上千,全移动要的工作量非常大,而收期率则少很多
- 推荐大家使用
expr_codegen
和polars_ta
等项目
- 运行
examples/demo1.py
示例弹出简易图表 - 运行
examples/demo2.py
示例弹出完整图表 - 运行
examples/demo3.py
示例输出HTML网页报表
累计收益的算法
如何计算持有1期、5期的收益率呢?5期收益难道忽略中间4期的因子信号吗?不同的起始入场点会得到不同的累计收益怎么处理?
多方参考后的处理方法是:将资金平均分成5份,每天入场1份,每份都是持有5天后再调仓,然后得到每份的累计收益区线。将5条曲线合并成最终的累计收益曲线
alphainspect
与alphalens
的不同
- 不自动计算
forward_returns
。alphalens
设periods=(1, 5, 10)
,然后内部计算持有1、5、10期数的收益率alphainspect
由用户外部生成,用户可以比较同因子,不同交易方式产生的差异。例如:RETURN_OC_1
: T+1开盘入场,T+1收盘出场RETURN_CC_1
: T+0开盘入场,T+1收盘出场RETURN_OO_1
: T+1开盘入场,T+2开盘出场RETURN_OO_5
: T+1开盘入场,T+6开盘出场
- 不做去极值、标准化、行业中性化等操作
alphalens
的各参数要弄懂还是很麻烦的,初学者如绩效达不到要求就得深入研究源代码找原因alphainspect
用户在外可以一次性全计算好,如F1_ORG, F1_ZS, F1_NEUT
,然后在分别传不同因子进行比较即可
- 资金分配只用等权
alphalens
有因子加权、多空等设置alphainspect
只提供等权一种计算方法,实现简单
- 收益率计算方法不同
alphalens
多期简单收益率几何平均成1期,然后+1累乘alphainspect
由用户提供1期简单收益率,然后+1累乘,更精确
alphainspect
与alphalens
的相同
- 数据组织方式相同。都是长表,都是因子不移动,收益率计算,然后后移到与因子产生时间对齐
- 累计收益计算模式相同。每期产生因子,持有时长超过一期,都是将资金分成多份分别入场
- 不考虑滑点和手续费。单因子是用来合成多因子的,因手续费和滑点而错过部分单因子就可惜了,应当在因子合成后的回测阶段才考虑手续费
二次开发
git --clone https://github.com/wukan1986/alphainspect.git
cd alphainspect
pip install -e .
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
alphainspect-0.1.1.tar.gz
(14.0 kB
view hashes)
Built Distribution
Close
Hashes for alphainspect-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ef62b46409bfb52d18fabcda1518f5fc9831ecfbe37f212297cd32d3a4b5d0a |
|
MD5 | ecebdbf78a12355c26156cb849288383 |
|
BLAKE2b-256 | e3e216d87b769ab248500da7d9b3352e5253c1145c3d09f9014f2fcc685490bb |