如何用python获取股票数据

Python017

如何用python获取股票数据,第1张

在Python的QSTK中,是通过s_datapath变量,定义相应股票数据所在的文件夹。一般可以通过QSDATA这个环境变量来设置对应的数据文件夹。具体的股票数据来源,例如沪深、港股等市场,你可以使用免费的WDZ程序输出相应日线、5分钟数据到s_datapath变量所指定的文件夹中。然后可使用Python的QSTK中,qstkutil.DataAccess进行数据访问。

提取日期数据基本语法

from WindPy import w

w.start()

当出现.ErrorCode==-103说明没连接上,要start一下

w.wsd(security, fields, startDate = None, endDate= None , options = None)

opion 可选(period, 日期类型, 货币类型,前后复权)

提取财务数据基本语法

w.wss(security, fields, options = None)

提取板块日序列基本语法

w.wses(sectorCode, fields, startDate = None, endDate = None, options = None)

提取板块日截面数据基本语法

w.wsee(sectorCode, fields, options=None)

提取宏观数据基本语法

w.edb(codes, startDate =None, endDate =None, options=None)

1.日期序列基本语法

ts.get_hist_data(stock,start,end)

注意:1.stock不能是集合,只能单个股票 2.需要带上.sz或.sh 3.没有field,只能取出数据后再切除.

2.pro用法

pro.daily(code, start, end, fields)

tushare引用语句

弊端也很明显,一方面不能stock集合输入,一次只能调取一个股票对应数据,另一方面tushare虽是免费试用,但有权限限制。

基本语法

wb.get_data_yahoo(code, start, end)

wb.DataReader(code, 'yahoo', start, end)

没法添加fields, 虽能集合适用,但出来的索引挺奇怪的

推荐使用定义函数或用for循环批量获取数据

总体感觉wind api最舒服,但需要账号,mac也不能直接调用wind api。还是推荐tushare的pro用法。

小白学习中,请指教=v=

股票池用python构建的方法是:使用第三方平台,目前可以使用的是聚宽,对比一下聚宽、优矿、大宽网(已经倒闭了),都大同小异,选哪个都一样。

虽然这些平台都大同小异,但是代码可不能简单复制粘贴,因为底层函数库是不一样的,有可能在别的平台根本用不了某个函数,并且简单复制到自己电脑中的python的话百分之百用不了。

代码的思路是,每个月底进行调仓,选出市值最小的股票交易,去掉ST/*ST/停牌/涨停的股票,然后选择最小市值的10只,基准是创业板综指,看看结果。

python构建数据获取方法是:

这里使用为了接下来的操作需要将一定历史范围的股票数据下载下来,这里下载起始时间为20160101,截至时间为运行代码的时间范围的历史日线数据。

这里以tushare为例, tushare获取历史数据有两种方式。

第一种是以迭代历史交易日的方式获取所有历史数据,假设获取三年的历史数据,一年一般220个交易日左右,那么3年需要请求660多次左右,如果以这种方式的话,就下载数据的时间只需要1分钟多点的样子。

第二种是以迭代所有股票代码的方式获取所有历史数据,股票数量有大概3800多个,需要请求3800多次,但是在积分有限的情况下一分钟最多请求500次,也就意味着仅下载数据的时间至少需要大概8分钟时间。

理论上,你获取的历史范围超过17.3年,那么使用第一种方式才比第二种方式快。