经常需要数据时,难以寻找,或者收集困难,利用开放数据接口,实现股票数据快速收集与下载,可以下载股票、财务、基础数据等,股票金融工具。
强大组合:Python + PySide2
PySide2已经很强大了,完全可以比拟PyQT5,更别说LGPL协议
支持模糊匹配,能够快速增加需要的股票,也就是说输入“0”能匹配所有股票!
多项参数选择,方便定制,源码调整方便,下载迅速!
基础组件就不用说了,说几个难点和关键点
最重要的就是设计,简单的分为UI设计和逻辑设计,UI借助工具Qt Designer实现,逻辑设计就要动脑筋了
self.completerlist=(' '+self.AstockL['symbol']+' '+self.AstockL['name']).values.tolist()
self.AstockLts_show_dict=dict(zip(self.AstockL['ts_code'].values.tolist(),self.completerlist))
print(self.AstockLts_show_dict,len(self.AstockLts_show_dict))
self.completer_stockfilter = QCompleter(self.completerlist)
self.completer_stockfilter.setFilterMode(Qt.MatchContains)
self.completer_stockfilter.setCompletionMode(QCompleter.PopupCompletion)
self.lineEdit_stockfilter.setCompleter(self.completer_stockfilter)
异常处理不好会导致软件卡死,因此要对各种意外情况进行异常处理,保持软件的正常运行
def __query(self,api_name='pro_bar',**kwargs):#获取数据
for _ in range(2):
try:
self.result=[]
pd = self.pro.query(api_name=api_name,**kwargs)
self.querycount = self.querycount + 1
time.sleep(1)
self.querystatus=True
except:
time.sleep(2)
if getBeijinTime()==-1:
self.statusBar.showMessage(' 网络异常!')
self.querystatus=False
else:
self.result = df
return df
大概先就这样