Giter Club home page Giter Club logo

alphainspect's Introduction

AlphaInspect

仿alphalens的单因子分析工具

安装

pip install -i https://pypi.org/simple --upgrade alphainspect  # 官方源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade alphainspect  # 国内镜像源

使用

  1. 准备数据。运行data/prepare_data.py
    1. date, asset。必需的两个字段
    2. factor因子值。放在因子发生时刻
    3. forward return远期收益率。计算收益率后需要回移到开始位置。为何是shift(-n)收益率,而不是shift(n)因子呢?
      1. 多期收期率。如果移动因子,会导致一个因子就要移动多次
      2. 因子一般成百上千,全移动要的工作量非常大,而收期率则少很多
    4. 推荐大家使用expr_codegenpolars_ta等项目
  2. 运行examples/demo1.py示例弹出简易图表
  3. 运行examples/demo2.py示例弹出完整图表
  4. 运行examples/demo3.py示例多进程并行输出HTML网页报表
  5. 运行examples/demo4.py示例事件图表

部分图示

2x2 3x2 ic returns cum_returns spread turnover events

累计收益的计算方法

参考 cum_returns.md

alphainspectalphalens的不同

  1. 不自动计算forward_returns
    1. alphalensperiods=(1, 5, 10),然后内部计算持有1、5、10期数的收益率
    2. 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开盘出场
  2. 不做去极值、标准化、行业中性化等操作
    1. alphalens的各参数要弄懂还是很麻烦的,初学者如绩效达不到要求就得深入研究源代码找原因
    2. alphainspect用户在外可以一次性全计算好,如F1_ORG, F1_ZS, F1_NEUT,然后在分别传不同因子进行比较即可
  3. 资金分配只用等权
    1. alphalens有因子加权、多空等设置
    2. alphainspect只提供等权一种计算方法,实现简单
  4. 收益率计算方法不同
    1. alphalens多期简单收益率几何平均成1期,然后+1累乘
    2. alphainspect由用户提供1期简单收益率,然后根据要求持有或调仓,得到新的权益,循环迭代下去。更精确

alphainspectalphalens的相同

  1. 数据组织方式相同。都是长表,都是因子不移动,收益率计算,然后后移到与因子产生时间对齐
  2. 累计收益计算模式类似。每期产生因子,持有时长超过一期,都是将资金分成多份分别入场
  3. 不考虑滑点和手续费。单因子是用来合成多因子的,因手续费和滑点而错过部分单因子就可惜了,应当在因子合成后的回测阶段才考虑手续费

二次开发

git --clone https://github.com/wukan1986/alphainspect.git
cd alphainspect
pip install -e .

alphainspect's People

Contributors

wukan1986 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.