回 帖 发 新 帖 刷新版面

主题:求懂得股票编程高手

编看盘行情软件


盘行情软件要求

所要求编的软件是采集沪深300成分股,并按沪深300官方的计算方法进行沪深300指数计算。
软件实时采集到获得的数据,不通有延时掉包等情况。
沪深300成本股,一个季度将会调整一次,所编软件要容许用户手工删减和编辑单个成分股样本。

沪深300指数计算方式: 
沪深300指数以“点”为单位,精确到小数点后3位。
基日与基期
 
沪深300指数以2004年12月31日为基日,基点为1000点,以基日300只成份股的调整市值为基期。

指数计算公式
 
沪深300指数采用派许加权综合价格指数公式进行计算,计算公式如下:

其中,调整市值 = ∑(股价×调整股本数),基期亦称为除数。

指数计算中的调整股本数系根据分级靠档的方法对成份股股本进行调整而获得。要计算调整股本数,需要确定自由流通量和分级靠档两个因素。
当样本股名单、股本结构发生变化或样本股的调整市值出现非交易因素的变动时,采用"除数修正法"修正原除数,以保证指数的连续性。具体内容见第5节“指数修正”。

指数的实时计算

沪深300指数实时计算,成份股实时成交价格来自上海证券交易所与深圳证券交易所交易系统。

具体做法是,在每一交易日集合竞价结束后,用集合竞价产生的股票开盘价(无成交者取前一交易日收盘价)计算开盘指数,以后每500毫秒钟重新计算一次指数,直至收盘。其中各成份股的计算价位(X)根据以下原则确定:

若当日没有成交,则 X = 前日收盘价
若当日有成交,则 X = 最新成交价。

 沪深300指数采用派许加权综合价格指数公式进行计算,计算公式如下:
报告期指数=报告期成份股的调整市值/基期×1000
    其中,调整市值 = ∑(股价×调整股本数),基期亦称为除数。
    指数计算实例:假定选择三个股票作为样本股计算指数,以基日股票总调整市值为基值,基点指数为1000点。下表为基日和第一日股本情况及收盘价:
股票    总股本    自由流通股本    自由流通比例    加权比例    调整股本    基日    第一日
                        收盘价(元)    调整市值(元)    收盘价(元)    调整市值(元)
A    100,000    9,000    9%    9%    9,000    5    45,000    5.1    45,900
B    8,000    3,500    44%    50%    4,000    9    36,000    9.05    36,200
C    5,000    4,100    82%    100%    5,000    20    100,000    19    95,000
总调整市值    181,000    177,100
        
第一日指数=177100/181000×1000=978.45 




沪深300成分股列表及权重信息:

见附表(另附)

以上了解了沪深300指数的最基本的计算方法,在编制软件时就按以上的计算方法编制公式和各个表项




看上表,建立一个数据库,各个表项按上表制定,C栏和D栏手工输入,然后后面各项依据手工输入的结果生成。
另外,一共建立300只样本股,这个样本股也要容许删除和增加的操作。
样本股是300只,以后不确定将增加哪一只,当输入新的样本股时,要自动对这个样本股的行情进行行情扫描。

G栏根据F栏的计算结果进行判断,判断标准按下面的表格
沪深300指数的分级靠档方法如下表所示:

自由流通
比例    ≤0.1    0.1-0.2    0.2-0.3    0.3-0.4    0.4-0.5    0.5-0.6    0.6-0.7    0.7-0.8    >0.8
加权    取F值    0.2    0.3    0.4    0.5    0.6    0.7    0.8    1

G栏按上表判断并输入相应的值,当流通比例小于等于0.1时,G栏就取F栏的流通比例数值。
在实盘面中,每天股价是不断的变动的,上面已经提到过每天的开盘价的计算方法。
具体做法是,在每一交易日集合竞价结束后,用集合竞价产生的股票开盘价(无成交者取前一交易日收盘价)计算开盘指数,以后每500毫秒钟重新计算一次指数,直至收盘。其中各成份股的计算价位(X)根据以下原则确定:

若当日没有成交,则 X = 前日收盘价
若当日有成交,则 X = 最新成交价。
取得开盘价以的后,再以每500MS扫描一次行情信息库,自动填入所取得的这一时间点内的价格,并计算

具体的指数计算则是以市值之和 / 指数基数X1000,假设指数基数为50000000.00,哪么将每500MS计算一次的市值之和/5000000.00X1000,得出的数值就是想要的结果了。
沪深300是以2004年12月31日的总市值为基数市值,这个基数是固定值。(现在的基值是举例)


到这一步,整个指数的计算方法和要求已经出来了。
下面要做的就是对取得的行情数据进行扫描并自动以500MS一次的频率输入数据库并自动计算,然后将所计算的结果以图表的形式表达出来,图表为一分钟K线图。

一分钟K线内,进行120次运算,并实时的将运算结果在K线上表达出来。

看下图,在分钟的K线内部,随着每500MS的运算结果,实时的表达出价格变化,比如下图,第一幅开盘是1004.08,第一个500MS计算出的是998.28,就如图一所示:


图一                             图二                          图二                         图四
一分钟K的过程中,有着与行情数值不同而形成的不同的K线变化,一分钟结束时,以这一分钟的第一笔成交为开盘价,这一分钟内的最高价格绘出上影线,最低价绘出下影线,以一分钟的最后一笔成交为收盘价,如果收盘价大于开盘价,就是红K,如果低于开盘价就是兰K,颜色设定都按上图,绘图都是实体K线。

对于按分秒的计算,扫描时间和计算时间500MS不变,但是开盘价和收盘价的时间不以本地计算机时间为准,而是以接受到的行情时为准,接受到的行情信息上都有当前成交时间信息,以这个时间的每分钟的第一笔为开盘价,每分钟最后一笔成交为收盘价。

如下表,在扫描行情信息时,成交信息前都有时间,以这个时间为一分钟线的开盘和收盘价时间。
2010-09-16 09:45:52    2920.00     2920.00     2926.80     2917.20 


所要表达的结果都在上面说明了,而在这里,需要外部工具支持,外部行情工具取得行情实时录入,所要编的这个数据库和看盘工具就是要不断的扫描行情信息并录入最新价,计算指数。

外部工具有两种,第一种是免费的,是一种二进制文件格式,从这个文件中取得行情并录入
另一种是TXT格式的,首选第一种方式,这两种工具都打包在压缩包里。
第一种工具可以找原作者请教,程序员他会提供帮助,不要说是帮人编指数,只说你自己想借助这个工具编一套看盘工具。


下面就讲对看盘界面的要求





窗体能自由缩放,最大支持2560*1200的分辨率
软件窗口为全黑色背影,顶上有标题栏,鼠标可拖动位置,右上角有关闭,最小化到图标以及最大化按钮
图表中有时间和数值标尺

在当前窗口中,上箭头放大K线,下箭头缩小K线



五、当生成最新的K线时,已经生成的K线自动向左移,最右边留空两根K线位
六、对已经生成的K线,保留前一天的K线数据,在打开软件后,自动调入前一天的一分钟K线,新的一天的K线在前一天K线后顺延
七、K线为图上所示的实体K线
八、支持局域网和互联网,建立终端以及客户端,客户端从终端实时获取测算结果

回复列表 (共2个回复)

沙发

股本和权重等数据已经编制成功,只需要程序设定好公式计算即可。

板凳

能够编程的高手请联系Q441080

我来回复

您尚未登录,请登录后再回复。点此登录或注册