Comments (5)
感谢,不过还不够简练,近期研究后更新
from mytt.
上面的sumbars函数有错误,漏掉了一条语句。
A = np.flipud(A) # 倒转(第一版漏了)
在A为数组的情况下会出错。
现在更正过来了,请用这个正确的版本:
def sumbarsFast(X, A):
# type: (np.ndarray, Optional[np.ndarray, float, int]) -> np.ndarray
"""
通达信SumBars函数的Python实现
SumBars函数将X向前累加,直到大于等于A, 返回这个区间的周期数。例如SUMBARS(VOL, CAPITAL),求完全换手的周期数。
:param X: 数组。被累计的源数据。 源数组中不能有小于0的元素。
:param A: 数组(一组)或者浮点数(一个)或者整数(一个),累加截止的界限数
:return: 数组。各K线分别对应的周期数
"""
if any(X<=0):
raise ValueError('数组X的每个元素都必须大于0!')
X = np.flipud(X) # 倒转
length = len(X)
if isinstance(A * 1.0, float): # 是单值
A = np.repeat(A, length) # 转化为数组
A = np.flipud(A) # 倒转(第一版漏了)
sumbars = np.zeros(length) # 初始化sumbars为0
Sigma = np.insert(np.cumsum(X), 0, 0.0) # 在累加值前面插入一个0.0(元素变多1个,便于引用)
for i in range(length):
k = np.searchsorted(Sigma[i + 1:], A[i] + Sigma[i])
if k < length - i: # 找到
sumbars[length - i - 1] = k + 1
return sumbars.astype(int)
from mytt.
感谢分享,我看两个函数里还有FOR循环 不是完全的向量化实现,请问速度如何?
from mytt.
感谢分享,我看两个函数里还有FOR循环 不是完全的向量化实现,请问速度如何?
是的,我的水平无法消灭这个循环,但速度还是很快的了。20W条记录,大概是784ms。
from mytt.
感谢分享,我看两个函数里还有FOR循环 不是完全的向量化实现,请问速度如何?
是的,我的水平无法消灭这个循环,但速度还是很快的了。20W条记录,大概是784ms。
OK, 这个速度是相当快的~ 比我想象中快多了
from mytt.
Related Issues (20)
- 好哥哥,可以告诉我OBV函数怎么使用吗?
- 求CR指标,谢谢 HOT 1
- 求BACKSET函数,谢谢
- 怎么引用通达信的dll
- 请提供一个支持序列作为变量的REF函数. HOT 1
- 求通达信TFILTER函数
- 价格为小数时,MyTT计算指标精度丢失 HOT 1
- 缺乏SIN ASIN COS ACOS TAN ATAN 等三角函数相关的函数 HOT 4
- 股票的历史数据是哪里来的啊,用的啥数据计算的呀
- 指标值为空值和inf值,请问这种情况是正常的吗,该如何解决呢
- HHV和LLV的第二个参数如果是序列应该怎么实现? HOT 1
- RSI指标计算
- 为什么KDJ计算结果和 官方不一致呢,哪里没设置对 HOT 2
- 请问作者有sar指标吗
- BOLL 指标与主流行情软件如东方财富,算出来的不一样 HOT 1
- 求STDDEV函数
- 希望ref函数中参数n支持序列值 HOT 5
- Redeclared 'HHV' defined above without usage
- 通达信FSL指标,这个超难了,那位大神实现下
- 价格小于1时会报错pandas的rolling “window must be an integer”
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mytt.