我之前一直用SAS、MATLAB。最近用Python,发现python的pandas包简直是分析金融数据做量化研究的神器。准备写个系列帖子“量化小讲堂”,希望通过实际的列子,让大家知道如何使用python & pandas进行金融数据处理,希望能对大家有帮助。帖子主要面向入门学习者,大神请轻拍。
计算移动平均线是最常见的需求,下面这段代码将完成以下三件事情:
- 从csv格式的文件中导入股票数据
- 计算各类移动平均线,包括简单简单算术移动平均线MA、指数平滑移动平均线EMA;
- 将计算好的数据输出到csv文件中。
代码应该复制下来就能运行了,关于从哪里可以得到代码中使用的数据,后面会讲,下面贴上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
@author: yaozihao @contact: QQ:906961433 email:[email protected]
import pandas as pd
stock_data = pd.read_csv('stock data/sh600000.csv', parse_dates=[1])
stock_data.sort('date', inplace=True)
ma_list = [5, 20, 60]
for ma in ma_list: stock_data['MA_' + str(ma)] = pd.rolling_mean(stock_data['close'], ma)
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)
stock_data.to_csv('sh600000_ma_ema.csv', index=False)
|
代码输出的数据截图如下:
可以到这里下载程序中用到的股票数据:网址 ,其中包含了所有股票、从上市日起的全部交易数据。