内容发布更新时间 : 2024/12/23 2:38:53星期一 下面是文章的全部内容请认真阅读。
详细设计说明书
这种插入排序方法完全符合了撮合算法中价格优先、时间优先的要求,而且效率也是比较高的。
在集合竞价前和连续竞价后进行的插入排序都是这样进行的,而在集合竞价撮合之后,对两队列的重新排列,我们首先使用了memset函数将前面已全部成交的t个元素清空,然后将t到N(原总非空元素个数)前移t位。
如下列代码所示:
for (int p=0; *t < *N; p++,*t++)
{ }
QueueStruct temp; temp=Queue[*t]; Queue[*t]=Queue[p]; Queue[p]=temp;
5.2.4 撮合算法的运行机制
在交易所正常运行时,一天内分为开市、开盘、休市、复开、收市等5个步骤。
开市:每天上午9:15开市。这时候,股民可以通过券商向交易所递单。同一只股票的买卖单开始分别进入这只股票的买卖队列中,但并不进行撮合。该过程一直持续到9:25。
开盘:每天上午9:30正式开盘。9:25-9:30为盘前处理,这段时间也就是集合竞价撮合算法运行的时间。9:25,买卖两队列开市不再接收新的单子。新的单子这时都放在缓冲区中,直到两队列运行完整个集合竞价算法后开市重新进单时,再依序将单子从缓存区取出读入买卖队列进行连续竞价的撮合。买卖队列于9:25开始集合竞价,运算完毕,得出开盘价等所有统计数据并发布行情以及发送完所有回报之后,重新接收单子进入该日正常交易中,使用连续竞价算法进行撮合。
详细设计说明书
休市:每天上午11:00休市。此时,所有的券商不再接受买卖单子,也不再给交易所递单。交易所将此前已经收到的所有单子撮合之后处于休息阶段。并进行各种当日前市盘点。
复开:每天下午13:30复开。此时,券商开市接收用户的递单,并将其送交交易所。交易所重新开市进入连续竞价撮合
收市:每天下午15:00收市。此时交易所不再接受任何单子,准时进行最后一笔单子的撮合之后,关闭撮合线程。将最后得到的收盘价等数据统计发送完之后,当天的所有工作全部结束。
如图3.2.5所示。
9:25开市9:30开盘11:00休市13:30复开15:00收市开市开盘休市复开收市 图3.2.5
详细设计说明书
5.3 数据库设计
数据库服务器为SQL SERVER 2005 EXPRESS
股票信息表
记录了股票的当前信息
用户信息表
第 1 页
详细设计说明书
交易订单表
其中userid和stockid是外键
关系图如下
第 2 页
详细设计说明书
第 3 页