写在前面
1 个股:作为量化投资的用户来说,个股K线一定只能使用复权数据来分析,比如说前复权。不然股票一旦分红,派发,不复权数据就会严重失真。
2 指数:指数可以理解成没有复权数据(分红按自然下跌处理,参考张居营《慢慢变富》);中证500在两个交易所代码不同,数据相同。
分时数据
方法1:http://img1.money.126.net/data/[沪深拼音]/time/today/[股票代码].json
返回结果:当日分时图数据;JSON数据;分时图获取数据依次是count节点数量、symbol股票代码、name股票名称、data数据,其中数据依次是小时分钟时间、价格、均价、成交量。
注意,沪深拼音为简写hs,以此可以推断出其他市场也可以获取,具体请自行判断研究。
例如,http://img1.money.126.net/data/hs/time/today/1399001.json,返回深证成指当日分时图数据。
方法2:http://img1.money.126.net/data/hs/time/4days/[股票代码].json
返回结果:获取4天分时数据;和上述分时图相似,但数据是连续4天的数据,不包括当天的数据。
腾讯
股票日行情接口
http://sqt.gtimg.cn/q=sh600519
返回
v_sh600519="1~贵州茅台~600519~456.86~452.55~454.00~56259~27176~29084~456.80~4~456.68~8~456.67~1~456.62~4~456.61~1~456.81~11~456.87~2~456.89~1~456.90~1~456.97~1~14:59:59/456.80/6/M/274055/28944|14:59:59/456.80/3/B/137040/28937|14:59:53/456.69/7/S/319760/28928|14:59:50/456.81/17/S/776642/28925|14:59:47/456.89/5/B/228435/28920|14:59:44/456.81/8/S/365448/28916~20170719150557~4.31~0.95~463.62~452.80~456.80/56259/2574934655~56259~257493~0.45~31.97~~463.62~452.80~2.39~5739.08~5739.08~7.26~497.81~407.30~2.03";
含义
/**
* 股票接口
*
* http://sqt.gtimg.cn/utf8/q=股票代码01,股票代码02&offset=1,2,3,4,31,32,33,38
* offset返回结果字段的索引号
* 返回结果样例:v_sh600887="1
* 2 ~伊利股份 股票名称
* 3 ~600887 股票代码
* 4 ~16.32 最新报价
* 5 ~16.31 昨收
* 6 ~16.31 今开
* 7 ~180204 成交量(手)。除以100后单位为:万股
* 8 ~94954 外盘
* 9 ~85250 内盘
* 10 ~16.31 五档盘口:买01:元
* 11 ~33 五档盘口:买01:手
* 12 ~16.30 五档盘口:买02:元
* 13 ~912 五档盘口:买02:手
* 14 ~16.29 五档盘口:买03:元
* 15 ~264 五档盘口:买03:手
* 16 ~16.28 五档盘口:买04:元
* 17 ~591 五档盘口:买04:手
* 18 ~16.27 五档盘口:买05:元
* 19 ~194 五档盘口:买05:手
* 20 ~16.32 五档盘口:卖01:元
* 21 ~793 五档盘口:卖01:手
* 22 ~16.33 五档盘口:卖02:元
* 23 ~1976 五档盘口:卖02:手
* 24 ~16.34 五档盘口:卖03:元
* 25 ~662 五档盘口:卖03:手
* 26 ~16.35 五档盘口:卖04:元
* 27 ~1217 五档盘口:卖04:手
* 28 ~16.36 五档盘口:卖05:元
* 29 ~461 五档盘口:卖05:手
* 30 ~15:00:02/16.32/63/B/102774/13108|14:59:56/16.32/60/B/97890/13103|14:59:47/16.32/98/B/159893/13095|14:59:47/16.32/148/B/241481/13092|14:59:41/16.32/162/B/264330/13087|14:59:37/16.32/139/B/226781/13084
* 31 ~20160622150541 时间
* 32 ~0.01 涨跌额(单位:元)
* 33 ~0.06 涨跌幅 %
* 34 ~16.42 今日最高
* 35 ~16.16 今日最低
* 36 ~16.32/180141/293078740
* 37 ~180204 成交量(手)。除以100后单位为:万股
* 38 ~29318 成交额(单位:万元)
* 39 ~0.30 换手率 %
* 40 ~20.27 市盈率
* 41 ~
* 42 ~16.42
* 43 ~16.16
* 44 ~1.59 振幅 %
* 45 ~984.65 流通市值(单位:亿元)
* 46 ~989.78 总市值(单位:亿元)
* 47 ~4.59 市净率
* 48 ~17.94
* 49 ~14.68
* 50 ~";
*
* @author ZhengWei(HY)
* @createDate 2016-06-22
* @version v1.0
*/
/**
* 参数Offset,返回结果字段
* 数组二维的第0下标: 股票接口offset参数值
* 数组二维的第1下标: 股票接口offset参数值的注释说明
* 数组二维的第2下标: 股票接口返回结果集对应Java属性名称
*/
public static final String [][] $StockResults = {{"31" ,"时间" ,"time"}
,{"2" ,"股票名称" ,"stockName"}
,{"3" ,"股票代码" ,"stockCode"}
,{"5" ,"昨收" ,"yesterdayClosePrice"}
,{"6" ,"今开" ,"todayOpenPrice"}
,{"4" ,"最新报价" ,"newPrice"}
,{"34" ,"今日最高" ,"maxPrice"}
,{"35" ,"今日最低" ,"minPrice"}
,{"32" ,"涨跌额" ,"upDownPrice"}
,{"33" ,"涨跌幅" ,"upDownRange"}
,{"37" ,"成交量" ,"bargainSum"}
,{"38" ,"成交额" ,"bargainSize"}
,{"39" ,"换手率" ,"turnoverRate"}
,{"44" ,"振幅" ,"swingRate"}
,{"8" ,"外盘" ,"outSize"}
,{"9" ,"内盘" ,"inSize"}
,{"40" ,"市盈率" ,"priceEarningRatio"}
,{"47" ,"市净率" ,"priceBookValueRatio"}};
######代码含义[以~分割字符串,下标从0开始]###### 0: 未知 1: 股票名字 2: 股票代码 3: 当前价格 4: 昨收 5: 今开 6: 成交量(手) 7: 外盘 8: 内盘 9: 买一 10: 买一量(手) 11-18: 买二 买五 19: 卖一 20: 卖一量 21-28: 卖二 卖五 29: 最近逐笔成交 30: 时间 31: 涨跌 32: 涨跌% 33: 最高 34: 最低 35: 价格/成交量(手)/成交额 36: 成交量(手) 37: 成交额(万) 38: 换手率 39: 市盈率 40: 41: 最高 42: 最低 43: 振幅 44: 流通市值 45: 总市值 46: 市净率 47: 涨停价 48: 跌停价
新浪
个股行情完整网页地址:https://finance.sina.com.cn/realstock/company/sh600000/nc.shtml 结果如下
[复权]:qianfuquan-前复权;houfuquan-后复权。
返回结果:股票日期的股价JSON数据。
例如,http://finance.sina.com.cn/realstock/company/sz002095/qianfuquan.js 获取sz002095的所有前复权收盘价,而且只返回前复权价格信息,没有其他信息。
返回结果简化之后:
1 实际上返回的是一个长字符串,包括换行符,下图的格式是本人认为整理为了好看得到的;
2 从下图可以看出,返回的前复权价格把上市第一天价格作为1.0000;
3 数据之间的关系:上市第一天收盘价14.21元 返回1.00000;最新价2019-07-21收盘价22.46元 返回1.577841
14.21/1.0000 = 22.42/1.577841 实际上最新收盘价 2019-07-21收盘价22.46元, 22.42距离实际收盘价22.46还差。04元,不知道咋回事。
[
{
total:3063,
data:
{
_2019_07_19:"1.577841",
_2019_07_18:"1.575734",
_2019_07_17:"1.628422",
.................
_2006_12_18:"0.955414",
_2006_12_15:"1.000000"
}
}
]
/* Iq66n6UtIL64s.......qyKQ== */
注意,无法获取未复权的数据。
注意,需要对返回数据进行处理才能使用,新浪会在末尾加入注释语句,打乱日期数据,key值需要自行加入双引号,否则无法解析JSON。
注意,由于新浪的周线和月线数据,是以股票日线所有数据直接计算得到的,所以无法直接通过API获取周线和月线数据,需要自行处理。
接口3
返回结果:获取5、10、30、60分钟JSON数据;day日期、open开盘价、high最高价、low最低价、close收盘价、volume成交量;向前复权的数据。
注意,最多只能获取最近的1023个数据节点。
接口5
http://market.finance.sina.com.cn/downxls.php?date=[日期]&symbol=[市场][股票代码]
返回数据:XLS文件;股票历史成交明细。
- 接口6:http://market.finance.sina.com.cn/pricehis.php?symbol=[市场][股票代码]&startdate=[开始日期]&enddate=[结束日期]
返回数据:HTML文本;指定日期范围内的股票分价表。
网易财经
优点:速度快;JSON容易处理。
方法4:http://img1.money.126.net/data/[沪深拼音]/[是否复权]/[周期]/times/[股票代码].json
返回结果:获取日线所有时间节点和收盘价。
其中,[是否复权],不复权为kline,复权为klinederc。
其中,[周期],day为日数据,week周数据,month月数据。
例如,http://img1.money.126.net/data/hs/kline/day/times/1399001.json,获取深证成指所有时间节点数据。
例如,获取所有日线不复权数据,删减了绝大部分数据后只留下了结构信息(内容为UTF-8格式):
{
"closes": [
988.05,
983.11,
978.27,
968.57,
963.73
],
"symbol": "399001",
"times": [
"19910403",
"19910404",
"19910405",
"19910408",
"20190704"
],
"name": "深证成指"
}
方法6:获取实时detail数据
http://quotes.money.163.com/service/chddata.html?code=[股票代码]&start=[开始日期]&end=[结束日期]&fields=[自定义列]
其中,自定义列可定义
TCLOSE收盘价 ;
HIGH最高价;
LOW最低价;
TOPEN开盘价;
LCLOSE前收盘价;
CHG涨跌额;
PCHG涨跌幅;
TURNOVER换手率;
VOTURNOVER成交量;
VATURNOVER成交金额;
TCAP总市值;
MCAP流通市值
这些值。
获取0601857从2007-11-05到2015-06-18区间的数据。