量化小讲堂吧 关注:139贴子:271
  • 3回复贴,共1

【量化小讲堂-python&pandas技巧系列】计算各类移动平均线

只看楼主收藏回复

引言:
本系列帖子“量化小讲堂”,通过实际的案例让大家知道如何使用Python、pandas进行金融数据处理。帖子主要面向来自金融领域的入门学习者,大神请轻拍。希望能对大家有帮助。
之前的系列文章目录以及未来内容安排请见:http://tieba.baidu.com/p/4415191107
可在帖子后面回复问题、后续希望讲的内容,或者加入量化交流Q群:461470781,在群中直接提问。
注:文章中用到的数据可在此下载http://yucezhe.com/product/home,这里可以下载到所有股票、从上市日起的交易数据、财务数据、分钟数据、逐笔数据等。


计算移动平均线是最常见的需求,下面这段代码将完成以下三件事情
1. 从csv格式的文件中导入股票数据,数据例图如下


2.计算各类移动平均线,包括简单简单算术移动平均线MA、指数平滑移动平均线EMA
3.将计算好的数据输出到csv文件中


代码应该复制下来就能运行了,代码中使用的数据来自http://www.yucezhe.com,下面贴上代码
-----------------------------------------------------------
# -*- coding: utf-8 -*-
"""
@author: yucezhe
@contact: QQ:2089973054 email:xjc@yucezhe.com
"""
import pandas as pd

# ========== 从原始csv文件中导入股票数据,以浦发银行sh600000为例

# 导入数据 - 注意:这里请填写数据文件在您电脑中的路径
stock_data = pd.read_csv('stock data/sh600000.csv', parse_dates=[1])

# 将数据按照交易日期从远到近排序
stock_data.sort('date', inplace=True)


# ========== 计算移动平均线

# 分别计算5日、20日、60日的移动平均线
ma_list = [5, 20, 60]

# 计算简单算术移动平均线MA - 注意:stock_data['close']为股票每天的收盘价
for ma in ma_list:
stock_data['MA_' + str(ma)] = pd.rolling_mean(stock_data['close'], ma)

# 计算指数平滑移动平均线EMA
for ma in ma_list:
stock_data['EMA_' + str(ma)] = pd.ewma(stock_data['close'], span=ma)

# 将数据按照交易日期从近到远排序
stock_data.sort('date', ascending=False, inplace=True)

# ========== 将算好的数据输出到csv文件 - 注意:这里请填写输出文件在您电脑中的路径
stock_data.to_csv('sh600000_ma_ema.csv', index=False)


代码输出的数据截图如下

代码文件链接:链接: http://pan.baidu.com/s/1o72kK9G 密码: wje4


之后会讲的内容
【量化小讲堂 - python & pandas技巧系列】计算创业板平均市盈率
【量化小讲堂 - python& pandas技巧系列】极简方法将日线数据转为周线、月线或其他周期
【量化小讲堂 - Python & pandas技巧系列】历史数据告诉你:KDJ指标选股有效吗?


广告
谢谢分享


回复
举报|2楼2016-03-26 13:11
    请问楼主,有用R语言实现同样功能的示例吗,谢谢!


    回复
    举报|3楼2016-07-10 14:33
      感谢楼主分享,请教一下,是不是需要计算复权后的MA和EMA呢


      回复
      举报|4楼2016-07-11 02:56