在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
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞