前面介绍了数据研究平台的安装,这片介绍如何用现成的库以及工具获取和导出数据。大部分的人物可在IDLE里完成。
因为历史数据量庞大,如果只在IDLE里查看,尽量不要获取太大范围的数据,获取速度由宽带速度决定,另一方面界面大小有限,数据量庞大,根本无法达到可视化的效果,更不用说分析出可用结果。
如下代码:
ipmort tushare as ts
ts.get_hist_data('600839')#获取四川长虹历史数据
第一行导入tushare包,然后获取四川长虹的历史数据,结果如下。
以上包含开盘价,收盘价,等等熟知的基本数据。
以上为统计的5日,10日等等均价,均量。
12年到15年的换手率,结果过多,中间很多结果省略。以上全为在LDLE里进行操作以及浏览,下面介绍如何导出数据到excel文件,sql数据库。
还是一段简短的代码。
>>> dm=ts.get_hist_data('000875')
>>> dm.to_excel('d:/data/new.xls',startrow=2,startcol=5)
上面已经导入tushare包,所以此处不再导入,直接将获取的数据存入名为dm的对象,第二行利用to_excel方法将数据写入new.xls文件,后面两个参数为写入的起始行和列。当然大不分时刻不需要偏移,所以去掉后两个参数,写入完毕后打开文件查看
同上,写入scv,hdf5,json都是同样的方法。具体还要看自己的数据处理平台可以处理的格式,很多量化高手可以在excel里进行回测,如果感兴趣可以学习vba这门比较古老的语言,操作excel很强大。
几乎所有软件都离不开数据库,为了更便的自动写入和读取数据,大部分时候我们将数据存入数据库里,本次演示将数据读入mysql,当然也支持其他大部分关系数据库和菲关系数据库。这一切都依赖于pandas对大部分数据库的支持。
此处演示存入tick数据到数据库,tick翻译为滴答的钟声,一瞬间,我们可以大概推测到它的意义,即股票每个时刻的交易详情,很多手机炒股软件,比如新浪财经,鑫财通,同花顺等都能实时看到股票交易的详细成交细节,时间,价格,成家量,当然也不是绝对实时,特别是移动客户端,会有延迟,如果对时间要求比较严格的交易者,不建议在手机上操作。
操作之前,要求系统已经安装好Mysql数据库,以及sqlalchemy,后者是一个python下的sql工具包以及关系对象映射器。当然在此处我们只用到了他的create_engine部分。
代码:
from sqlalchemy import create_engine
import tushare as ts
df = ts.get_tick_data('600848', date='2014-12-22')
engine = create_engine('mysql://root:654321@127.0.0.1/my_db?charset=utf8')
df.to_sql('tick_data',engine)
解读:从sqlalchemy导入create_engine,导入tushare,获取600848这支股票在2014年12月22这一天的交易tick,存入df对象,然后我们先用mysql-front创建一个叫my_db的数据库
然后在create_engine方法里连接到此数据库,最后一行用to_sql方法写入tick_data到没有my_db里。
写入完毕后打开mysql-front
后两张图可看出有1700多笔交易,成交的时间,价格,买盘还是卖盘可以再type里看出,因为数据量太大,成交的时间类型都以缺省的memo显示,当然如果想查看可以把鼠标放上去即可显示。好了本篇展示的获取以及读入数据到本地已经完成。