COUNT 很慢
AimLuo opened this issue · comments
ta_cn 版本
- 0.5.0
- 通过 pip install ta_cn -i https://mirrors.aliyun.com/pypi/simple --upgrade 安装
- from ta_cn.tdx import COUNT
测试环境
用 conda 创建虚拟环境
- CentOS Linux release 7.9.2009 (Core)
- conda 4.12.0
- Python 3.10.6
- Flask 2.2.2
- gunicorn 20.1.0
测试数据
每支股票 340 条数据
测试策略
F1=COUNT(L==LLV(L,60),10)>=1;
XH=F1;
测试方式
遍历执行上面策略大概4000次(类比四千只股)
运行结果
使用 mytt 的 count 执行了 3.326728343963623s
使用 from ta_cn.tdx import COUNT 的 count 执行了 8.872456312179565s
请问,你的使用方法是如何的?
是4000次循环吗?如果你的数据是二维表,index是时间,columns是股票代码。不用循环,应当是很快就能计算出结果的。
本库的机制主要是利用支持二维的库直接计算大量股票,如果用for来做,那就4000次与C++层发生调用,而二维库只发生一次调用底层。
请问,你的使用方法是如何的?
是4000次循环吗?如果你的数据是二维表,index是时间,columns是股票代码。不用循环,应当是很快就能计算出结果的。
是4000次 循环
本库的机制主要是利用支持二维的库直接计算大量股票,如果用for来做,那就4000次与C++层发生调用,而二维库只发生一次调用底层。
那看起来是我调用方式有问题。我的index 是时间 columns 是 open close low hight 这些。
你可以参考一下长表与宽表的相关说明。
以alpha191那个示例为例,宽表比长表快约25倍。股票数越多,差别越明显