Python量化分析之EMA指标

EMA指标介绍

EMA(Exponential Moving Average)是指数移动平均值。也叫 EXPMA 指标,它也是一种趋向类指标,指数移动平均值是以指数式递减加权的移动平均。来自百度百科
在股票市场中,EMA是常用的一项技术指标,简单的介绍MA的升级版,在求一段连续交易日的收盘价的均价趋势,可以很好的表示。通常使用EMA(N)来表示N日的指数移动平均值,其计算公式如下:
EMA计算公式
Xn为当日收盘价,对于它的介绍,不做过多的阐述,有很多文章都进行了很详细的介绍,感兴趣的小伙伴可以自行查阅。今天主要是应用Python在本地实现这一指标技术。

Pandas.DataFrame.ewm()

在使用程序实现EMA指标之前,先给小伙伴简单介绍pandas库的ewm方法,先来看看官方文档给的方法:
DataFrame.ewm(self, com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, axis=0)
其中span、halflife、alpha这三个参数只选一个,我选的是span(其它两个感兴趣的可以去看官方文档。之所以选择span,是因为经过一系列代入化简之后,它就相当于上面EMA公式中的N.其它参数也不介绍了,等有时间的话在专门写一篇来介绍这个方法(我现在也不是很懂哈哈哈

Python本地EMA指标计算

在国内有需要的量化平台有现成的EMA函数可调用,简直不要太方便,但是大黄偏偏喜欢自己研究。在使用之前确保已经完成pandas库的安装:
在上文中,有讲过EMA指标可以直接使用ewm方法实现,其实就很简单了,在本地实现首先你得有数据,数据我推荐使用tusharepro,可以直接注册登陆,完善信息就可以获取积分进行简单的操作。以下是获取日线行情的获取示例:

import tushare as ts
token = '你的token,注册见于个人中心'
ts.set_token(token)
pro = ts.pro_api()
df = pro.daily(ts_code='000001.SZ', end_date='20200701')  # 获取平安银行到2020年7月1日前的日线行情

更详细的使用方法见官网开发文档。
到此我们获取了平安银行的日线交易信息,现在尝试求平安银行2020年7月1日的12日EMA,即EMA12.直接上代码:

df_close_40 = df[close].head(40).sort_index(ascending=False)  # 获取7月1日及前39个交易日的收盘价
ema_12 = df_close_40.ewm(span=12, min_periods=0, adjust=False, ignore_na=False).mean()[39]

这样便完成了对EMA指标的计算,计算出来的值与一些量化平台的值有0.01左右的差距,对于N日的计算所需要的数据都是不确定的,感兴趣的可以研究。其实也没啥难度,不过我倒是整了几天才把它弄明白,在公式上卡了 好几天。
第一次在CSDN上记录自己的学习过程,需要各位大佬多多指教!
刚刚入门量化分析,对很多知识不太明白,如有错误,请指出,谢谢!

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值