注册掘金软件,获取密钥

安装 gm

pip install gm

安装 TaLib

pip install talib

windows 64位 下载参考链接

Talib金融工具库

history_n()

用于获取若干段的时间序列内容

参数 描述
df=True 获取一个pandas类型的返回值
from gm.api import *
import numpy as np
import talibset_token("xxxxxxxxxxxxxxxxxxxxxxxxx")
# 399006 创业版
data = history_n(symbol="SZSE.399006",frequency="1d",count=100,end_time="2017-12-31",fields="close",fill_missing="last",adjust=ADJUST_PREV,df=True)


转numpy格式

close = np.asarray(data["close"].values)

talib.MA() 计算滑动平均值

参数 描述
timeperiod 可以计算相应的滑动平均周期

np.nan_to_sum() 将nan型改成零

ma3 = np.nan_to_num(ma3)
print(ma3)

MA5均值

from gm.api import *
import numpy as np
import talibset_token("xxxxxxxxxxxxxxxxxxxxxx")data = history_n(symbol="SZSE.399006",frequency="1d",count=100,end_time="2017-12-31",fields="close",fill_missing="last",adjust=ADJUST_PREV,df=True)
close = np.asarray(data["close"].values)
ma5 = talib.MA(close,timeperiod=5)
print(ma5)

talib.EMA() 指数平均数

EMA 指数平均数指标,也叫 EXPMA 指标,是一种趋向类指标,是以指数式递减加权的移动平均
E M A = α × P r i c e N + ( 1 − α ) × P r i c e ( N − 1 ) EMA=\alpha\times Price_N + (1-\alpha)\times Price_{(N-1)} EMA=α×PriceN​+(1−α)×Price(N−1)​
α \alpha α平滑指数
α = 2 ( N + 1 ) \alpha=\frac{2}{(N+1)} α=(N+1)2​

from gm.api import *
import numpy as np
import talibset_token("xxxxxxxxxxxxxxxxxxx")data = history_n(symbol="SZSE.399006",frequency="1d",count=100,end_time="2017-12-31",fields="close",fill_missing="last",adjust=ADJUST_PREV,df=True)
close = np.asarray(data["close"].values)
ema = talib.EMA(close,timeperiod=12)   # 默认时间30
ema = np.nan_to_num(ema)
print(ema)

  1. EXPMA一般以观察12日和50日二条均线为主;
  2. 12日指数平均线向上交叉50日指数平均线时,买进;
  3. 12日指数平均线向下交叉50日指数平均线时,卖出;

talib.MACD() 指数平滑移动平均线

用于对股票趋势的分析
MACD的意义和双移动平均线基本相同,即由快、慢均线的离散、聚合表征当前的多空状态和股价可能的发展变化趋势

  1. 当MACD从正数转向负数时,是卖的信号
  2. 当MACD从负数转向正数时,是买的信号
  3. 当MACD以大角度变化时,表示快的移动平均线和慢的移动平均线的差距非常迅速地拉开,代表一个市场大趋势

MACD默认值12、26、9为
快速移动平均值(一般选12日)与慢速移动平均值(一般选26日)
以这个数值作为测量两者(快速与慢速线)间的“差离值”的依据。所谓“差离值”(DIF),即12日EMA数值减去26日EMA值。

  1. 在持续的涨势中,12日EMA在26日EMA之上,其间的正差离值( + D I F +DIF +DIF)会越来越大
  2. 在持续的跌势中,负差离值( − D I F -DIF −DIF)会越来越大
  3. 正或负差异值要缩小到一定的程度,才真正时行情反转的信号

MACD的反转信号界定为“差离值”的9日移动平均值(9日EMA)

from gm.api import *
import numpy as np
import talibset_token("xxxxxxxxxxxxxxxxxxxx")data = history_n(symbol="SZSE.399006",frequency="1d",count=100,end_time="2017-12-31",fields="close",fill_missing="last",adjust=ADJUST_PREV,df=True)
close = np.asarray(data["close"].values)macd, signal, hist = talib.MACD(close,fastperiod=12, slowperiod=26, signalperiod=9)
macd = np.nan_to_num(macd)
print(macd)


用如上数据绘图:

import matplotlib.pyplot as pltplt.plot(macd,'r')
plt.savefig("macd.png")
plt.show()

np.diff() MACD斜率

MACD值在单位时间内变化情况的大小

np.diff(a, n=1, axis=-1)

处理相邻数间的差值大小

from gm.api import *
import numpy as np
import talibset_token("xxxxxxxxxxxxxxxxxxxxxxxxxxx")data = history_n(symbol="SZSE.399006",frequency="1d",count=100,end_time="2017-12-31",fields="close",fill_missing="last",adjust=ADJUST_PREV,df=True)
close = np.asarray(data["close"].values)macd, signal, hist = talib.MACD(close,fastperiod=12, slowperiod=26, signalperiod=9)
macd = np.nan_to_num(macd)macd_gradient = np.diff(macd)
print(macd_gradient)

talib.AD() 累积派发线AD 与 talib.ADX() 平均趋向指数ADX

AD(累积派发线)是一种平衡交易量指标,以当日得收盘价来估算成交流量,用于估计一段时间内该证券累积得资金流量
AD为资金趋势函数

  1. 向上得AD表示买方占优势
  2. 向下得AD表示卖方占优势
  3. AD与价格的背离可视为买卖信号,即底背离考虑买入,顶背离考虑卖出

通常与ADX一起使用,利用多空趋向的变化差离与总和判定平均趋势,ADX数值不能显示趋势的发展方向。
如果趋势存在,ADX可以衡量趋势的强度

from gm.api import *
import numpy as np
import talibset_token("xxxxxxxxxxxxxxxxxxxxxxxxxxxx")# 002310 东方园林
data = history_n(symbol="SZSE.002310",frequency="1d",count=100,end_time="2017-12-31",fields="high,low,close,open,volume",fill_missing="last",adjust=ADJUST_PREV,df=True)close = np.asarray(data["close"].values)
open = np.asarray(data["open"].values)
high = np.asarray(data["high"].values)
low = np.asarray(data["low"].values)
volume = np.asarray(data["volume"].values).astype(np.double)adx = talib.ADX(high,low,close)
adx = np.nan_to_num(adx)
adx = adx/np.max(adx)ad = talib.AD(high,low,close,volume)
ad = np.nan_to_num(ad)
ad = ad/np.max(ad)

ADX数值

AD数值

import matplotlib.pyplot as pltplt.plot(ad,"r",adx,"b")
plt.savefig("ad_adx.png")
plt.show()

talib.BBANDS() 布林森线

  1. 布林森指标用来判断股票未来走势以及波动
  2. 布林线指标(即BOLL)指标,其英文全称是Bollinger Bands。布林线由约翰~布林先生创造,其利用统计原理求出股价的标准差以及信赖区间,从而确定股价的波动范围及未来走势,利用波带显示股价的安全高低价位,因而也被称为布林带。
  3. 其上下范围不固定,随股价的滚动而变化。布林指标和麦克(指标)一样属于路径指标,股价波动在上限和下限的区间之内,这条带状区的宽窄随着股价波动幅度的大小而变化,股价涨跌幅度加大时,带状区变宽,涨跌幅度狭小盘整时,带状区则变窄。
from gm.api import *
import numpy as np
import talibset_token("61c4ec11af460c782950cd5ed41faacd5ac560f9")data = history_n(symbol="SZSE.002129",frequency="3600s",count=100,end_time="2017-12-31",fields="high,low,close,open,volume",fill_missing="last",adjust=ADJUST_PREV,df=True)close = np.asarray(data["close"].values)
open = np.asarray(data["open"].values)
high = np.asarray(data["high"].values)
low = np.asarray(data["low"].values)
volume = np.asarray(data["volume"].values).astype(np.double)upperband,middleband,lowerband = talib.BBANDS(close)




TaLib金融工具库相关推荐

  1. 006 金融工具库funcat安装教程及异常处理

    funcat库集合了同花顺.通达信等的常用公式,安装后可以直接使用公式制定策略. funcat常用公式可参考github说明:GitHub - cedricporter/funcat: Funcat ...

  2. Backtrader官方中文文档:集成TA-Lib指标库参考

    本文档参考backtrader官方文档,是官方文档的完整中文翻译,可作为backtrader中文教程.backtrader中文参考手册.backtrader中文开发手册.backtrader入门资料使 ...

  3. 很燃基于掘金量化平台的《Python化易战新书介

    原 很燃!基于掘金量化平台的<Python量化交易实战>新书简介 内容简介: 在目前不断变化.蓬勃发展的中国资本市场,量化投资作为新兴的投资方法,引来越来越多的关注,使用量化投资技术的证券 ...

  4. 很燃于掘量平的Pyhn化易战新书简介

    原 很燃!基于掘金量化平台的<Python量化交易实战>新书简介 内容简介: 在目前不断变化.蓬勃发展的中国资本市场,量化投资作为新兴的投资方法,引来越来越多的关注,使用量化投资技术的证券 ...

  5. python量化交易实战 王晓华pdf_Python量化交易实战

    章 走进量化投资 1.1 量化投资的诞生背景 1.2 量化投资的特点 1.3 量化投资的应用 1.4 量化投资在我国股市的发展前景 1.5 小结 第2章 Python的安装与使用 2.1 Python ...

  6. 股票、期货、数字货币技术指标库TA-Lib

    股票.期货.数字货币技术指标库TA-Lib 1. 安装 2. 使用 2.1 导入库 [2.2 函数列表(字母顺序排列)](https://ta-lib.org/function.html) 2.3 按 ...

  7. python可视化库matplotlib_环境搭建 | Python 数据可视化库 Matplotlib 快速入门之一-阿里云开发者社区...

    数据挖掘基础环境安装与使用 [学习目标] 完成数据挖掘基础阶段的所有环境安装 应用jupyter notebook完成代码编写运行 库的安装 学习目标 目标 搭建好数据挖掘基础阶段的环境 应用 无 整 ...

  8. 用talib列举某股票历史数据中2只乌鸦形态出现时间

    使用pystock,不需要编写python代码. 该功能用到的模块中,talib的安装较为特殊.我参考了这篇:学习记录654@搞定python安装TA-Lib第三方库_教练 我想学编程的博客-CSDN ...

  9. 【Java】基于TA-Lib技术分析指标研究

    [Java]SFC融媒体项目基于TA-Lib技术分析指标研究 [Java]SFC融媒体项目基于TA-Lib技术分析指标研究 0. 前言 1. TA-Lib介绍 2. TA-Lib数据准备 2.1 指标 ...

最新文章

  1. 六、CPU优化(6)DMV与计数器
  2. 清华计算机与科学系考研,清华计算机科学与技术系考研怎么复习
  3. Android:理想的框架开发母板——高焕堂
  4. python 字典处理_python 字典的处理
  5. SpringBoot集成Beetl模板引擎之入门案例
  6. js-cookie 无法设置cookie_php操作 cookie
  7. java:数字转string 报空指针_超干货详解:kotlin(4) java转kotlin潜规则
  8. vue——缓存路由组件
  9. MapBar和MapInfo中的比例尺[更新:MapBar比例尺是正确的]
  10. 用DotNetOpenAuth实现基于OAuth 2.0的web api授权 (一)Getting Start
  11. oracle客户端登录失败,Win7系统配置Oracle客户端连接失败的解决方法
  12. Access、Trunk、Hybrid三种端口收发规则以及tagged端口和untagged端口的区别
  13. PSP2000下实现完美截屏
  14. 小旭追女神-三国乱世(裸的单点线段树更新)
  15. Python实现最近邻nearest、双线性bilinear、双三次bicubic插值
  16. 打开IDEA遇到:The license has been cancelled
  17. 【神操作】网络分线器短路导致公司网络瘫痪
  18. Linux入门第三天——linux命令(二)
  19. 第十三章:项目相关方管理 - (13.1 识别相关方)
  20. 【异步电路碎碎念1】 —— 到底什么是异步电路

热门文章

  1. 番外1索尔港的一分钟——《地与光》
  2. 中国北京TRB Hutong首登全球高级餐厅榜单首位
  3. 信息安全风险管理概述
  4. 「津津乐道播客」#267 津津有味:冬天必须吃羊肉,没有为什么
  5. python检索用人名查电话_利用Python电话本小程序!这波操作你给几分?
  6. 关于如何去寻找自己的另一半和我的爱情观
  7. Latex自定义序号
  8. (23)固定翼架构概述
  9. 鸿蒙OS应用开发之——页面间跳转
  10. SAN交换机Zone配置详解及最佳实践