某知名门户网站财经频道的行情系统,采用了自行开发的分布式K-V NoSQL引擎,支持http和websocket协议,支持高并发、短延时的行情展示能力。
注意,本文公布的所有行情接口仅限于个人兴趣研究之目的,任何人不得对接口实施恶意攻击或商业性用途,商业盈利性应用本文行情接口应取得SINA公司书面许可!
股票实时行情
比如,获取浦发银行的实时行情接口:
http://hq.sinajs.cn/list=sh600000
返回的数据如下所示:
var hq_str_sh600000="浦发银行,12.410,12.400,12.320,12.440,12.300,12.310,12.320,10510620,129782439.000,455459,12.310,905484,12.300,267200,12.290,538300,12.280,142200,12.270,8900,12.320,21240,12.330,27800,12.340,49400,12.350,65436,12.360,2017-06-20,10:23:39,00";
各个字段的含义:
var 代码 =“证券简称,今日开盘价,昨日收盘价,最近成交价,最高成交价,最低成交价,买入价,卖出价,成交数量,成交金额,买数量一,买价位一,买数量二,买价位二,买数量三 ,买价位三,买数量四,买价位四,买数量五,买价位五,卖数量一,卖价位一,卖数量二,卖价位二,卖数量三,卖价位三,卖数量四,卖价位四,卖数量五,卖价位五,行情日期,行情时间,停牌状态”
根据自己实际经验发现:停牌状态为"03"时就是股票停牌了,为"00"表示正常
如果嫌上面的接口返回字段太多,可以使用简版接口:
http://hq.sinajs.cn/list=s_sh600000
在股票代码前面加上"s_"即可;
返回的数据如下:
var hq_str_s_sh600000="浦发银行,12.320,-0.080,-0.65,106460,13145";
各个字段的含义:
var 代码=“证券简称,最新价,涨跌额,涨跌幅,成交量,成交额”
此外,该接口还支持两个可选的参数:func 和 format,例如:
http://hq.sinajs.cn/format=js&func=callback();&list=sh600000
其中,
(1) format参数有两个取值:js和text,且js是默认的格式;
(2) func参数是供给前端回调使用,原样输出;
websocket 接口
如果程序要实时刷新股票行情数据,代码里面需要轮询HTTP接口,但每次请求的时候,HTTP Header占了大部分流量,真正的有效数据其实很小,为了更高效的刷新行情,本文提及的部分接口也提供了WS协议,可以由服务器主动推送每次更新后的数据。
ws://hq.sinajs.cn/wskt?list=s_sh000001
websocket接口实测每次打开接口 只持续更新数据1分多钟,并不是一直更新数据,需要注意。
未完待续。。。
网友评论