wukan1986 / ta_cn

**版技术指标

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

COUNT 很慢

AimLuo opened this issue · comments

ta_cn 版本

测试环境

用 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倍。股票数越多,差别越明显