主题:第一步:pipinstallpandas-datareader第二步:importpandas.io.dataasweb改为importpandas_datareader.dataasweb第三步:第四步:px=web.DataReader('GS','yahoo')改为px=web.DataReader('F-F_Research_Data_factors','famafrench')参考网址:1、、、、、后来了解到没有上面这么麻烦(这里面说的很全)Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Pythonpandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandasDataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python2.x和Python3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。Tushare从发布到现在,已经帮助很多用户在数据方面降低了工作压力,同时也得到很多用户的反馈,Tushare将一如既往的用免费和开源的形式分享出来,希望对有需求的人带来一些帮助。如果您觉得Tushare好用并有所收获,请通过微博、微信或者网站博客的方式分享出去,让更多的人了解和使用它,使它能在大家的使用过程中逐步得到改进和提升。Tushare还在不断的完善和优化,后期将逐步增加港股、期货、外汇和基金方面的数据,所以,您的支持和肯定才是Tushare坚持下去的动力。2016年新年第一贴,大年夜搞这个只能说明春晚实在是有点无聊。在之前的blog里写了一个最简单的例子:现在试一下简单的分析,即设定一个策略:以20日线为标准,当前股价低于20日线的时候就卖出,高于20日线的时候就买入。然后计算一下这个策略的效果。主要用TuShare里的get_hist_data这个接口,用于获取到目前为止3年的历史数据。主要的用法参照如下:获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析,如果需要全部历史数据,请调用下一个接口get_h_data()。参数说明:code:股票代码,即6位数字代码,或者指数代码(sh=上证指数sz=深圳成指hs300=沪深300指数sz50=上证50zxb=中小板cyb=创业板)start:开始日期,格式YYYY-MM-DDend:结束日期,格式YYYY-MM-DDktype:数据类型,D=日k线W=周M=月5=5分钟15=15分钟30=30分钟60=60分钟,默认为Dretry_count:当网络异常后重试次数,默认为3pause:重试时停顿秒数,默认为0返回值说明:date:日期open:开盘价high:最高价close:收盘价low:最低价volume:成交量price_change:价格变动p_change:涨跌幅ma5:5日均价ma10:10日均价ma20:20日均价v_ma5:5日均量v_ma10:10日均量v_ma20:20日均量turnover:换手率[注:指数无此项]那我们只要比较v_ma20和close这两个值就可以了。OK,写了一个很简单的程序:#!/usr/bin/python#coding:UTF-8Thisscriptparsestockinfoimporttushareastsdefparse(code_list):'''''processstock'''is_buy=0buy_val=[]buy_date=[]sell_val=[]sell_date=[]df=ts.get_hist_data(STOCK)ma20=df[u'ma20']close=df[u'close']rate=1.0idx=len(ma20)whileidx0:idx-=1close_val=close[idx]ma20_val=ma20[idx]ifclose_valma20_val:ifis_buy==0:is_buy=1buy_val.append(close_val)buy_date.append(close.keys()[idx])elifclose_valma20_val:ifis_buy==1:is_buy=0sell_val.append(close_val)sell_date.append(close.keys()[idx])print(stocknumber:%s%STOCK)print(buycount:%d%len(buy_val))print(sellcount:%d%len(sell_val))foriinrange(len(sell_val)):rate=rate*(sell_val[i]*(1-0.002)/buy_val[i])print(buydate:%s,buyprice:%.2f%(buy_date[i],buy_val[i]))print(selldate:%s,sellprice:%.2f%(sell_date[i],sell_val[i]))print(rate:%.2f%rate)if__name__=='__main__':STOCK='300286'##浦发银行parse(STOCK)