python量化交易 – 查看个股的技术指标(MACD、EMA)等

python语言 workingTime 1346℃ 0评论

这里我们以沪深市场为例,主要讨论MACD指标的查看和图表展示,其它技术指标雷同。

python包准备

  • tushare
  • pyecharts
  • talib

使用talib获取MACD指标

对于玩沪深的小伙伴们,先别着急安装talib,耐心往下看…有深坑

talib资料

  • github地址:安装说明和简单使用文档看这里
  • talib-API:详细的使用,和全部的技术指标使用方式在这里,但是需要翻墙

获取个股MACD指标代码如下:关于token的获取,点这里注册

import tushare as ts
import talib

token = ''
api = ts.pro_api(token)
#   获取603693股票日线数据
df = api.daily(ts_code='603693.SH')
#   获取收盘数据,翻转顺序
close = df["close"].values[::-1]
#   获取MACD指标,默认fastperiod=12, slowperiod=26, signalperiod=9
df["t_diff"], df["t_dea"], df["t_macd"] = talib.MACD(close, fastperiod=3, slowperiod=6, signalperiod=3)
print(df)

怀着美好的心情,点击了运行按钮,当我看到结果的那一刹那….我艹,这是什么??

不光输出了这么多个NaN,并且有结果的数据也和同花顺等主流股票软件的结果相差非常的远,然后我就去问googlebaidu,为什么会这样?
还真让我找到了一篇文章:深度教学帖——SMA与EMA:talib与中国股票行情软件的差异
,看来大家都反映talib很是坑啊。

正确的沪深MACD指标获取方式

我们需要使用tushare最新版源码包中的工具方法,代码如下

macd = ts.util.formula.MACD(df["close"][::-1], 3, 6, 3)
df["DIFF"], df["DEA"], df["MACD"] = macd["DIFF"], macd["DEA"], macd["MACD"]

对照同花顺数据,完全没问题。

图表数据展示MACD指标

代码如下:

bar = Bar("MACD")
bar.add("MACD", df["trade_date"].values,
        df["MACD"].values, tooltip_trigger="axis", is_datazoom_show=True)
line = Line()
line.add("DIF", df["trade_date"].values,
         df["DIFF"].values, tooltip_trigger="axis")
line.add("DEA", df["trade_date"].values,
         df["DEA"].values, tooltip_trigger="axis")
overlap = Overlap()
overlap.add(bar)
overlap.add(line)
overlap.render()

源码

import tushare as ts
import talib
from pyecharts import Bar, Line, Overlap
token = ''
api = ts.pro_api(token)

df = api.daily(ts_code='603693.SH')
close = df["close"].values[::-1]
macd = ts.util.formula.MACD(
    df["close"][::-1], 3, 6, 3)
df["DIFF"], df["DEA"], df["MACD"] = macd["DIFF"], macd["DEA"], macd["MACD"]
# df["t_diff"], df["t_dea"], df["t_macd"] = talib.MACD(close, fastperiod=3, slowperiod=6, signalperiod=3)
print(df[:12])

bar = Bar("MACD")
bar.add("MACD", df["trade_date"].values,
        df["MACD"].values, tooltip_trigger="axis", is_datazoom_show=True)
line = Line()
line.add("DIF", df["trade_date"].values,
         df["DIFF"].values, tooltip_trigger="axis")
line.add("DEA", df["trade_date"].values,
         df["DEA"].values, tooltip_trigger="axis")
overlap = Overlap()
overlap.add(bar)
overlap.add(line)
overlap.render()

转载请注明:R&M » python量化交易 – 查看个股的技术指标(MACD、EMA)等

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

联系我:rm@rmworking.com