本文阐述网络环境下上证股票指数实时和历史数据接入、图形展示和分组统计,为进一步进行量化交易分析奠定基础
摘要:上海证券交易所股票上市交易20多年,已经积累了大量历史数据。随着网络技术的发展,人们获取交易信息的途径非常广泛,特别是大数据时代来临,大量金融数据、地理数据、天气数据等被有关部门和公司实时或定期在网上发布。特别是股票数据极为丰富、规范,新浪、雅虎、腾讯等公司都有免费的股票数据接口供使用和二次开发。近3000家上市公司、20多年的数据累计,良好的股票数据接口,统计和数据挖掘技术的推广,都为实现量化交易提供了基础条件和环境。
1、量化交易
量化交易(Quantitative Trading)是指借助现代统计学和数学的方法,利用计算机技术来进行交易的证券投资方式。量化交易从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,用数量模型验证及固化这些规律和策略,然后严格执行已固化的策略来指导投资,以求获得可以持续的、稳定且高于平均收益的超额回报。
量化交易起源于上世纪七十年代的股票市场,之后迅速发展和普及,尤其是在期货交易市场,程序化逐渐成为主流。有数据显示,国外成熟市场期货程序化交易已占据总交易量的70%-80%,而国内则刚刚起步。手工交易中交易者的情绪波动等弊端越来越成为盈利的障碍,而程序化交易天然而成的精准性、100%执行率则为它的盈利带来了优势。
量化交易的优势:
- 严格的纪律性
量化交易有着严格的纪律性,这样做可以克服人性的弱点,如贪婪、恐惧、侥幸心理,也可以克服认知偏差。一个好的投资方法应该是一个“透明的盒子”。我们的每一个决策都是有理有据的,特别是有数据支持的。如果有人质问我,某年某月某一天,你为什么购买某支股票的话,我会打开量化交易系统,系统会显示出当时被选择的这只股票与其他的股票相比在成长面上、估值上、资金上、买卖时机上的综合评价情况,而且这个评价是非常全面的,比普通投资者拍脑袋或者简单看某一个指标买卖更具有说服力。
- 完备的系统性
完备的系统性具体表现为“三多”。首先表现在多层次,包括在大类资产配置、行业选择、精选个股三个层次上我们都有模型;其次是多角度,量化交易的核心投资思想包括宏观周期、市场结构、估值、成长、盈利质量、分析师盈利预测、市场情绪等多个角度;再者就是多数据,就是海量数据的处理。人脑处理信息的能力是有限的,当一个资本市场只有100只股票,这对定性投资基金经理是有优势的,他可以深刻分析这100家公司。但在一个很大的资本市场,比如有成千上万只股票的时候,强大的定量化交易的信息处理能力能反映它的优势,能捕捉更多的投资机会,拓展更大的投资机会。
- 妥善运用套利的思想
量化交易正是在找估值洼地,通过全面、系统性的扫描捕捉错误定价、错误估值带来的机会。定性投资大部分时间在琢磨哪一个企业是伟大的企业,那个股票是可以翻倍的股票;与定性投资不同,量化交易大部分精力花在分析哪里是估值洼地,哪一个品种被低估了,买入低估的,卖出高估的。
- 靠概率取胜
这表现为两个方面,一是定量投资不断的从历史中挖掘有望在未来重复的历史规律并且加以利用。二是在股票实际操作过程中,运用概率分析,提高买卖成功的概率和仓位控制。
注:摘自MBA智库百科
2、股票数据接口
(1)新浪股票实时行情数据接口网址
http://hq.sinajs.cn/list=sh600653
编码sh600653表示上交所申华控股,运行这一网址返回该股实时行情如下:
var hq_str_sh600653="申华控股,4.370,4.380,4.380,4.400,4.350,4.380,4.390,12572968,55042589.000,485815,4.380,292063,4.370,588414,4.360,1037600,4.350,310100,4.340,426521,4.390,1331772,4.400,1028400,4.410,344300,4.420,319700,4.430,2016-11-11,13:34:34,00";
运行
http://hq.sinajs.cn/list=sz000021,
返回深交所深科技实时行情如下:
var hq_str_sz000021="深科技,10.660,10.660,10.630,10.680,10.560,10.620,10.630,7744799,82144321.570,23000,10.620,95500,10.610,59900,10.600,23700,10.590,44200,10.580,50400,10.630,86100,10.640,82737,10.650,60261,10.660,49300,10.670,2016-11-11,13:41:27,00";
这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,对于网页前台程序员来说,这就是定义好的JavaScript字符变量。按数据循序,以大秦铁路为例,具体含义为,
- 0:”大秦铁路”,股票名字;
- 1:”27.55″,今日开盘价;
- 2:”27.25″,昨日收盘价;
- 3:”26.91″,当前价格;
- 4:”27.55″,今日最高价;
- 5:”26.20″,今日最低价;
- 6:”26.91″,竞买价,即“买一”报价;
- 7:”26.92″,竞卖价,即“卖一”报价;
- 8:”22114263″,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;
- 9:”589824680″,成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万;
- 10:”4695″,“买一”申请4695股,即47手;
- 11:”26.91″,“买一”报价;
- 12:”57590″,“买二”
- 13:”26.90″,“买二”
- 14:”14700″,“买三”
- 15:”26.89″,“买三”
- 16:”14300″,“买四”
- 17:”26.88″,“买四”
- 18:”15100″,“买五”
- 19:”26.87″,“买五”
- 20:”3100″,“卖一”申报3100股,即31手;
- 21:”26.92″,“卖一”报价
- (22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”
- 30:”2008-01-11″,日期;
- 31:”15:05:32″,时间;
注:大秦铁路目前实时价格已经变化
如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL:
http://hq.sinajs.cn/list=sh600000,sh600004
查询大盘指数,比如查询上证综合指数(000001),
http://hq.sinajs.cn/list=sh000001
返回数据为,
var hq_str_sh000001="上证指数,3169.4007,3171.2820,3196.0436,3202.7401,3166.0696,0,0,310854579,343773951274,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2016-11-11,15:01:03,00";
另外,腾讯的实时股票接口,
http://qt.gtimg.cn/r=0.8409869808238q=s_sz000559,s_sz000913,s_sz002048,s_sz002085,s_sz002126,s_sz002284,s_sz002434,s_sz002472,s_sz002488
(2)雅虎和腾讯股票历史数据接口
- 深市数据链接:http://table.finance.yahoo.com/table.csv?s=000001.sz
- 上市数据链接:http://table.finance.yahoo.com/table.csv?s=600000.ss
上证股票是股票代码后面加上.ss,深证股票是股票代码后面加上.sz上证综指代码:000001.ss,深证成指代码:399001.sz,沪深300代码:000300.ss。要查找哪个股票交易所的数据,就按照上面的格式以此类推。把链接后面的代码换成你要查询的股票,就可以下载该股全部历史数据EXCEL文档。
腾讯各年历史数据接口,
http://data.gtimg.cn/flashdata/hushen/daily/90/sh000001.js
注:链接地址中90指90年历史数据(注意2000年为00、2000年为01,以此类推)
打开网址,数据如下,
- daily_data_90="\n\
- 901219 113.10 113.10 113.10 113.10 2650\n\
- 901220 113.10 113.50 113.50 112.85 1990\n\
- 901221 113.50 113.50 113.50 113.40 1190\n\
- 901224 113.50 114.00 114.00 113.30 8070\n\
- 901225 114.00 114.10 114.20 114.00 2780\n\
- 901226 114.40 114.30 114.40 114.20 310\n\
- 901227 114.30 114.25 114.30 114.10 6110\n\
- 901228 114.30 114.40 114.40 114.20 4840\n\
- 901231 114.70 114.70 114.80 114.60 2400\n\
腾讯每周和每月股票历史数据接口,
- http://data.gtimg.cn/flashdata/hushen/weekly/sh000001.js
- http://data.gtimg.cn/flashdata/hushen/monthly/sh000001.js
更多股票和期货数据接口可在网上轻易查到,有了这些开放的数据接口,运用一些编程技术(如PHP、ASP、JAVA、JavaScript等),使得我们每次打开网页即可获得实时交易信息和全部历史数据。
(3)上海和深圳证交所股票代码表
- 上海:http://www.wstock.net/wstock/market/shcode1.htm
- 深圳:http://www.wstock.net/wstock/market/szcode1.htm
3、上海证券综合指数基本信息
上海证券综合指数,简称上证指数或上证综指。其样本股是全部在上海证券交易所上市的股票,包括A股和B股,反映了上海证券交易所上市股票价格的变动情况,自1991年7月15日起正式发布。
目前我国国内最重要的股票指数是上海证券综合指数、深证成份股指数、沪深300指数、大数据100和创业板指数。
- 深证成份股指数:
- 从深圳证券交易所挂牌上市的所有股票中抽取具有市场代表性的40家上市公司的股票为样本,以流通股本为权数,以加权平均法计算,以1994年7月20日为基日,基日指数定为1000点的股价指数。
-
- 沪深300指数:
- 由上海证券交易所和深圳证券交易所联合编制的沪深300指数于2005年4月8日正式发布。沪深300指数是由上海和深圳证券市场中选取300只A股作为样本编制而成的成份股指数。沪深300指数样本覆盖了沪深市场六成左右的市值,具有良好的市场代表性。
-
- 大数据100:
- 该指数将南方基金的专业股票研究优势与互联网“大数据”结合,在南方基金量化投资研究平台的基础上,通过新浪财经“大数据”定性和定量分析,找出股票热度预期、成长预期、估值提升预期与股价表现的同步关系,精选出具有超额收益预期的股票,建构、编制并发布策略指数。在当前的投资指数体系中,大数据100指数丰富和完善了指数体系,为市场提供新的投资工具,并有助于满足投资者多样化的投资需求。
-
- 创业板指数:
- 为了更全面地反映创业板市场情况,向投资者提供更多的可交易的指数产品和金融衍生工具的标的物,推进指数基金产品以及丰富证券市场产品品种,深圳证券交易所于2010年6月1日起正式编制和发布创业板指数。其特点是,指数选样以样本股的“流通市值市场占比”和“成交金额市场占比”两个指标为主要依据,体现深市流通市值比例高、成交活跃等特点;指数样本股调整每季度进行一次,以反映创业板市场快速成长的特点。
(1)实时行情(包括其它主要指数)
注:数据来源腾讯网。开盘交易时间可点击刷新获得即时行情信息
(2)行情趋势图
注:数据来源新浪财经。下面可以选择不同股票指数类别和图形类别观察行情趋势
指数类别上海综合指数深证成份股指数创业板指数沪深300指数大数据100
图形类别日K线图周K线图月K线图分时走势图
(3)上海综合指数历史数据( - )
注:数据来源腾讯网。从1990年12月19日至,上海综合指数共有收盘数据条。可查看不同时间段数据和行情趋势图
(4)K线图
(4)移动平均线图
4、上海证券综合指数量化分析
时间: -
注:2016年1月29日上证指数收盘价为2652.85,为年度年度低点
(1)收盘价涨跌基本情况统计
交易天数 | 增长速度 | ||
上涨天数 | 下跌天数 | ||
涨跌点数 | 日均增幅 |
注:可重新设置时间段观察涨跌统计分析。例如,1990年12月20日 - 2016年11月11日,交易天数为6160天,增长速度2702.3%,日均增幅0.4387%。
(2)涨跌分组统计
分组上限(%)
注:分组上限值和分组数可以修改,不同的分组可能会反映出不同的分布规律。
将起始日期2016-01-29改为1990-12-20,则可统计出上证指数从开始到现在不同涨跌幅度所占比重,分组统计结果如下,
下限 | 上限 | 次数 | 比重 |
---|---|---|---|
-100 | -5 | 120 | 0.0195 |
-5 | -3 | 129 | 0.0372 |
-3 | -1 | 1015 | 0.1648 |
-1 | -0.5 | 674 | 0.105 |
-0.5 | -0.25 | 386 | 0.0627 |
-0.25 | 0 | 514 | 0.0835 |
0 | 0.25 | 672 | 0.1091 |
0.25 | 0.5 | 446 | 0.0724 |
0.5 | 1 | 674 | 0.1094 |
1 | 3 | 1117 | 0.1814 |
3 | 5 | 220 | 0.0357 |
5 | 100 | 119 | 0.0193 |
合计 | 6159 | 1 |
注:通过上面图表可以发现,上证指数上涨和下跌过程中,涨跌幅1-3%比重排名1、2位,并且涨跌比重分组成双峰分布。这对实际交易有什么启示,在统计结果中您还发现了什么可以有利股市实战的线索?
至此,本文阐述了网络环境下上证股票指数实时和历史数据接入、展示和分组统计,为进一步进行动态量化分析奠定了基础。这种方法同样适用于深证成份股指数和创业板指数,以及个别股票分析和展示。大数据时代统计分析和数据挖掘的突出特点就是首先自动抓取、解析和接入网上丰富的数据源,然后分析、挖掘和展示计算结果。这样,根据不同数据源可以开发出有特色的数据分析产品,这种数据产品的质量和价值取决于数据规律发现、挖掘的深度和精度。总之,对数据所涉及知识的理解、统计分析和数据挖掘方法的掌握、计算机网络编程及数据处理和展示技术是“撰写”这种大数据时代特有的“实时报告和文章(RRRPs,Real Rime Reports and Papers)”的基础。