作者:邢不行
原文链接:
http://bbs.pinggu.org/thread-3631776-1-1.html
(本文已获作者授权转载,如需转载请与原作者联系)
【量化小讲堂-python & pandas技巧系列】使用python计算各类移动平均线
计算移动平均线是最常见的需求,下面这段代码将完成以下三件事情: 1. 从csv格式的文件中导入股票数据,数据例图如下:
2.计算各类移动平均线,包括简单简单算术移动平均线MA、指数平滑移动平均线EMA; 3.将计算好的数据输出到csv文件中。 代码应该复制下来就能运行了,关于从哪里可以得到代码中使用的数据,后面会讲,下面贴上代码: # -*- 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://yucezhe.com/product?name=trading-data),其中包含了所有股票、从上市日起的全部交易数据。