财务技术分析指标库。用于https://github.com/tulipcharts/tulipindicators的python绑定

tulip的Python项目详细描述


Build StatusBuild status

郁金香

用于Tulip Indicators

的python绑定

tulipy需要numpy,因为所有的输入和输出都是numpy数组(dtype=np.float64)。

安装

您可以通过pip install tulipy安装。 如果您的系统没有可用的控制盘,则需要pip install Cython numpy从源发行版构建。 当在Windows上从源建立时,您需要安装微软VisualC++构建工具。

用法

importnumpyasnpimporttulipyasti
ti.TI_VERSION
'0.8.4'
DATA=np.array([81.59,81.06,82.87,83,83.61,83.15,82.84,83.99,84.55,84.36,85.53,86.54,86.89,87.77,87.29])

有关指示器的信息作为属性公开:

defprint_info(indicator):print("Type:",indicator.type)print("Full Name:",indicator.full_name)print("Inputs:",indicator.inputs)print("Options:",indicator.options)print("Outputs:",indicator.outputs)
print_info(ti.sqrt)
Type: simple
Full Name: Vector Square Root
Inputs: ['real']
Options: []
Outputs: ['sqrt']

直接返回单个输出。返回多个输出使用的指标 按outputs属性指示的顺序排列的元组。

ti.sqrt(DATA)
array([ 9.03271831,  9.00333272,  9.10329611,  9.11043358,  9.14385039,
        9.11866218,  9.1016482 ,  9.16460583,  9.19510739,  9.18477   ,
        9.24824308,  9.30268778,  9.32148057,  9.36856446,  9.34291175])
print_info(ti.sma)
Type: overlay
Full Name: Simple Moving Average
Inputs: ['real']
Options: ['period']
Outputs: ['sma']
ti.sma(DATA,period=5)
array([ 82.426,  82.738,  83.094,  83.318,  83.628,  83.778,  84.254,
        84.994,  85.574,  86.218,  86.804])

无效选项将引发InvalidOptionError

try:ti.sma(DATA,period=-5)exceptti.InvalidOptionError:print("Invalid Option!")
Invalid Option!
print_info(ti.bbands)
Type: overlay
Full Name: Bollinger Bands
Inputs: ['real']
Options: ['period', 'stddev']
Outputs: ['bbands_lower', 'bbands_middle', 'bbands_upper']
ti.bbands(DATA,period=5,stddev=2)
(array([ 80.53004219,  80.98714192,  82.53334324,  82.47198345,
         82.41775044,  82.43520292,  82.51133078,  83.14261781,
         83.53648779,  83.8703237 ,  85.28887096]),
 array([ 82.426,  82.738,  83.094,  83.318,  83.628,  83.778,  84.254,
         84.994,  85.574,  86.218,  86.804]),
 array([ 84.32195781,  84.48885808,  83.65465676,  84.16401655,
         84.83824956,  85.12079708,  85.99666922,  86.84538219,
         87.61151221,  88.5656763 ,  88.31912904]))

如果提供了不同大小的输入,则它们将右对齐并从左侧修剪:

DATA2=np.array([83.15,82.84,83.99,84.55,84.36])
# 'high' trimmed to DATA[-5:] == array([ 85.53,  86.54,  86.89,  87.77,  87.29])ti.aroonosc(high=DATA,low=DATA2,period=2)
array([  50.,  100.,   50.])

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Eclipse中使用多个调用在一行上打印java   javajackson序列化问题。只有同一实体的第一个对象可以很好地序列化   Java中Deflate函数的等价充气   使用customlitview的java Android actionbar搜索   java“<T>T get()”是什么意思?(它有用吗?)   目标c使用CommonCrypto使用AES256加密,使用OpenSSL或Java解密   java在运行时更新资源文件   fileinputstream在java中访问并将数据写入现有文件   带集群的java Android Mapbox我希望每个功能都有不同的标记图像   java JDK8>JDK10:PKIX路径生成失败:SunCertPathBuilderException:找不到请求目标的有效证书路径   java使用Hk2生成具有指定构造函数参数的实例   为什么这个系统。出来Java中的println()打印到控制台?   java目录和文件名连接不起作用   使用mockito和通配符绘图的java