注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

换了个简短的查询减少网络流量  

2016-05-10 09:19:26|  分类: 股票 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
因为在不断的查询交易过程中所要的信息就是价格,其他信息涨跌停价只要初始化的时候查一次就行。
之前用的是http://qt.gtimg.cn/q=sh000001,sz002100,sh601010
这种查询每个股票代码都有好多信息,这在AutoTrade.py中如果查询的股票太多。
每5秒就是大量流量,影响网络。

用以下的查询可以减少,网络流量。
http://qt.gtimg.cn/q=s_sh000001,s_sz002100,s_sh601010
响应:
v_s_sh000001="1~上证指数~000001~2832.11~-81.14~-2.79~180378330~18870569~~";
v_s_sz002100="51~天康生物~002100~8.71~-0.29~-3.22~58571~5133~~83.91";
v_s_sh601010="1~文峰股份~601010~5.24~-0.24~-4.38~121844~6471~~96.84";

响应为:
名称    代码    当前    涨跌值  涨跌幅  总量    总额 。。。

更新过的AutoTrade_v0_8_2.py改用的就是这种方法。
# 请求一次然后找出响应里的股票进行交易
def Trading():
global req,stkset,money,a0,d

d = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

r = repr(random.random())
try:
f = urllib.request.urlopen('http://qt.gtimg.cn/r='+r+'&q=s_sh000001,'+req)
except urllib.error.URLError as err:
print('[-] 查询出错: ', err)
return
t = f.read()
t = t.decode('gb2312')
f.close()

# 名称, 代码, 当前, 涨跌值, 涨跌幅, 总量, 总额
s = t.split('~')
if len(s) < 8: return
i, n = 0, len(s)
while i < n:
if s[i] == '000001':
a0 = float(s[i+1])  #更新上证指数
i = i + 1
continue
for stk in stkset:
if stk['state'] == 1 and s[i] == stk['code'][2:]:
stk['price'] = float(s[i+1])
stk['rate'] = float(s[i+3])
AutoTrade(stk)
GoodPrint()
break
i = i + 1

【更新】还是先撕行再撕波浪号为好
# 请求一次然后找出响应里的股票进行交易
def Trading():
global req,stkset,money,a0,d

d = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

r = repr(random.random())
try:
f = urllib.request.urlopen('http://qt.gtimg.cn/r='+r+'&q=s_sh000001,'+req)
except urllib.error.URLError as err:
print('[-] 查询出错: ', err)
return
t = f.read()
t = t.decode('gb2312')
f.close()
s = t.split('\n')
# 名称, 代码, 当前, 涨跌值, 涨跌幅, 总量, 总额
for e in s:
if len(e) > 15:
if e[4:12] == 'sh000001':
ee = e.split('~')
if len(ee) < 8: continue
a0 = float(ee[3])  #更新上证指数
continue
for stk in stkset:
if stk['state'] == 1 and e[4:12] == stk['code']:
ee = e.split('~')
if len(ee) < 8: continue
stk['price'] = float(ee[3])
stk['rate'] = float(ee[5])
AutoTrade(stk)
GoodPrint()
break
  评论这张
 
阅读(17)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017