polars expressions
Project description
polars_ta
基于polars
的算子库。实现量化投研中常用的技术指标、数据处理等函数。对于不易翻译成Expr
的库(如:TA-Lib
)也提供了函数式调用的封装
安装
在线安装
pip install -i https://pypi.org/simple --upgrade polars_ta # 官方源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade polars_ta # 国内镜像源
二次开发
git clone --depth=1 https://github.com/wukan1986/polars_ta.git
cd polars_ta
pip install -e .
设计原则
- 调用方法由
成员函数
换成独立函数
。输入输出使用Expr
,避免使用Series
talib
的函数名与参数与原版TA-Lib
完全一致- 优先实现
wq
公式,它仿WorldQuant Alpha
公式,与官网尽量保持一致。如果部分功能实现在此更合适将放在此处 - 其次实现
ta
公式,它相当于TA-Lib
的polars
风格的版本。优先从wq
中导入更名 - 最后实现
tdx
公式,它也是优先从wq
和ta
中导入
指标区别
请参考compare.md
TA-Lib封装的演化
Expr.map_batches
可以实现调用第三方库,如TA-Lib, bottleneck
。但因为对输入与输出格式有要求,所以还需要用函数对第三方API封装一下。- 输入输出都只能是一列,如要支持多列需转换成
pl.Struct
。事后pl.Struct
要拆分需使用unnest
- 输出必须是
pl.Series
- 输入输出都只能是一列,如要支持多列需转换成
- 参数多,代码长。开始使用
register_expr_namespace
来简化代码- 实现代码helper.py
- 使用演示demo_ta1.py
- 优点:使用简单
- 不足:
成员函数调用模式
不便于输入到遗传算法中进行因子挖掘 - 不足:
__getattribute__
动态方法调用非常灵活,但失去了IDE
智能提示
- 前缀表达式。将所有的成员函数都转换成公式
- 实现代码wrapper.py
- 使用演示demo_ta2.py
- 优点:可以输入到遗传算法
- 不足:
__getattribute__
动态方法调用非常灵活,但失去了IDE
智能提示
- 代码自动生成。
- 实现代码codegen_talib.py
- 生成结果__init__.py
- 使用演示demo_ta3.py
- 优点:即可以输入到遗传算法,
IDE
还有智能提示
参考
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
polars_ta-0.1.3.tar.gz
(31.3 kB
view hashes)
Built Distribution
polars_ta-0.1.3-py3-none-any.whl
(39.8 kB
view hashes)
Close
Hashes for polars_ta-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 682dbf1584eaaef8c0d8dc2c5614cb6805b7d1a4ac8da3eb2ddf716b3afc9f8b |
|
MD5 | 4f9e5e5018dcb6965a2abbec8b026a77 |
|
BLAKE2b-256 | b79248b75ac229caf255fa383cb6b82555a20c92daa4956be017254fab66d5a3 |