python使用用Wind接口获取全部A股历史交易数据.docx
- 文档编号:8713953
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:5
- 大小:15.25KB
python使用用Wind接口获取全部A股历史交易数据.docx
《python使用用Wind接口获取全部A股历史交易数据.docx》由会员分享,可在线阅读,更多相关《python使用用Wind接口获取全部A股历史交易数据.docx(5页珍藏版)》请在冰豆网上搜索。
python使用用Wind接口获取全部A股历史交易数据
python使用用Wind接口获取全部A股历史交易数据
果然是中文编码的问题。
搞定了,新鲜出炉一个小脚本。
谢谢各位大神的解答。
"""
@Author:
wenrongli
@Date:
2014-11-18
@Version:
V1.0
"""
#!
/user/python
#-*-coding:
gb2312-*-
importos
importsys
importgetopt
fromWindPyimport*
fromdatetimeimport*
classLoadHisInfo:
def__init__(self):
self.OutputDir=r'E:
'
self.StockCodeList=[]
defStartWind(self):
w.start()
defLoadStockList(self):
res=w.wset("SectorConstituent","date=;sector=全部A股")
ifres.ErrorCode!
=0:
print('Error['+str(res.ErrorCode)+'][loadstockcodelistfail]\n')
sys.exit()
foriinrange(0,len(res.Data[0])):
forkinrange(0,len(res.Fields)):
if(res.Fields[k]=='date'):
date=res.Data[k][i]
if(res.Fields[k]=="wind_code"):
code=res.Data[k][i]
if(res.Fields[k]=="sec_name"):
name=res.Data[k][i]
self.StockCodeList.append(code)
defLoadHisInfo(self):
forcodeinself.StockCodeList:
outputPath=self.OutputDir+code+r'.txt'
data=w.wsd(code,"open,high,low,close","19900101","",showblank=0)
ifdata.ErrorCode!
=0:
print('Error['+str(data.ErrorCode)+'][loadhistoryinfofail]\n')
sys.exit()
fOutputObj=open(outputPath.encode('gbk'),'a')
foriinrange(0,len(data.Data[0])):
date=str(data.Times[i])
forkinrange(0,len(data.Fields)):
if(data.Fields[k]=="OPEN"):
openPrice=data.Data[k][i]
if(data.Fields[k]=="LOW"):
lowPrice=data.Data[k][i]
if(data.Fields[k]=="HIGH"):
highPrice=data.Data[k][i]
if(data.Fields[k]=="CLOSE"):
closePrice=data.Data[k][i]
if(openPrice==0)or(lowPrice==0)or(highPrice==0)or(closePrice==0):
continue
result=date[0:
10]+","+str(openPrice)+","+str(highPrice)+","+str(lowPrice)+","+str(closePrice)+"\n"
fOutputObj.write(result)
fOutputObj.close()
defRun(self):
self.StartWind()
self.LoadStockList()
self.LoadHisInfo()if__name__=='__main__':
loadInfoObj=LoadHisInfo()
iflen(sys.argv)<3:
print("pythonLoadWindInfo.py-ooutPutDir")
sys.exit()
opts,args=getopt.getopt(sys.argv[1:
],"o:
")
forop,valueinopts:
ifop=="-o":
loadInfoObj.OutputDir=value
else:
print("pythonLoadWindInfo.py-ooutPutDir")
sys.exit()
loadInfoObj.Run()
---------------------------------------------------------------------------------------------------------------------
本来想获取A股股票代码列表,通过文档例子,返回了错误码-103,没找到这个错误码的说明,w.wset("SectorConstituent",u"date=20130608;sector=全部A股"),现在只能通过同花顺导出股票代码列表,然后通过配置文件的形式来拉数据,哪位大神知道怎么使用这个接口的还请赐教,不胜感激~~
这里分享一个python获取A股历史交易数据的例子。
#!
/user/python
#-*-coding:
utf-8-*-
importmath
importos
importsys
importgetopt
fromWindPyimport*
fromdecimalimport*
fromdatetimeimport*
WorkSpace='E:
\\WorkSpace'
data'\\data'
config'\\config\\StockConfig.txt'
url=''
fConfigObj=open(config,"r")
count=0
forlineinfConfigObj.readlines():
iflen(line)<8:
continue
code=line[2:
8]
codeName=line[2:
8]+"."+line[0:
2]
outputPath=r'E:
/WorkSpace/data/'+code+r'.txt'
w.start()
data=w.wsd(codeName,"open,high,low,close","19900101","",showblank=0)
ifdata.ErrorCode!
=0:
print('errorcode:
'+str(data.ErrorCode)+'\n')
sys.exit()
fOutputObj=open(outputPath.encode('gbk'),'a')foriinrange(0,len(data.Data[0])):
date=str(data.Times[i])
forkinrange(0,len(data.Fields)):
if(data.Fields[k]=="OPEN"):
openPrice=data.Data[k][i]
if(data.Fields[k]=="LOW"):
lowPrice=data.Data[k][i]
if(data.Fields[k]=="HIGH"):
highPrice=data.Data[k][i]
if(data.Fields[k]=="CLOSE"):
closePrice=data.Data[k][i]
if(openPrice==0)or(lowPrice==0)or(highPrice==0)or(closePrice==0):
continue
result=date[0:
10]+","+str(openPrice)+","+str(highPrice)+","+str(lowPrice)+","+str(closePrice)+"\n"
fOutputObj.write(result)
fOutputObj.close()fConfigObj.close()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- python 使用 Wind 接口 获取 全部 历史 交易 数据