当前位置: 首页 > Python, Stock > 正文

在python3下使用pandas计算MACD的源代码

以前在excel里使用表格计算过MACD,上周,花了一天时间查看pandas的帮助和网上其他人的源码,在python3下,自己写了一个计算MACD的源代码。股票数据调用tushare的数据。源码里有详细的注释,可以帮助大家了解如何使用python下的pandas方便快捷计算MACD。

在python3下运行,输入股票代码,比如600642。可以计算所有的股票macd。

——————————————————————————————————–

“””

创建于2017年9月15日 15:11:32

作者:eyeglasses

网站:fx-margin.com

“””

import pandas as pd

import tushare as ts

#定义一个函数get_a_share

def get_a_share(code):

#使用tushare的get_k_data调用A股股票数据

data = ts.get_k_data(code)

#删除列code

data = data.drop(‘code’,axis = 1)

#返回修改后的股票数据

return data

#定义函数,获取macd,导入数据,初始化三个参数

def get_macd_data(data,short=0,long=0,mid=0):

if short==0:

short=12

if long==0:

long=26

if mid==0:

mid=9

#计算短期的ema,使用pandas的ewm得到指数加权的方法,mean方法指定数据用于平均

data[‘sema’]=pd.Series(data[‘close’]).ewm(span=short).mean()

#计算长期的ema,方式同上

data[‘lema’]=pd.Series(data[‘close’]).ewm(span=long).mean()

#填充为na的数据

data.fillna(0,inplace=True)

#计算dif,加入新列data_dif

data[‘data_dif’]=data[‘sema’]-data[‘lema’]

#计算dea

data[‘data_dea’]=pd.Series(data[‘data_dif’]).ewm(span=mid).mean()

#计算macd

data[‘data_macd’]=2*(data[‘data_dif’]-data[‘data_dea’])

#填充为na的数据

data.fillna(0,inplace=True)

#返回data的三个新列

return data[[‘date’,’data_dif’,’data_dea’,’data_macd’]]

#请输入A股股票代码

code = str(input(‘输入A股股票代码:’))

data = get_a_share(code)

macd = get_macd_data(data)

macd

作者:eyeglasses
链接:https://www.jianshu.com/p/69d5ff78a3e0
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文固定链接: http://t.yjsec.com/index.php/2018/03/30/513/ | 下一站

该日志由 admin 于2018年03月30日发表在 Python, Stock 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 在python3下使用pandas计算MACD的源代码 | 下一站

在python3下使用pandas计算MACD的源代码:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter