




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 摘 要 随着中国改革开放的深入,经济持续发展,经济活动日益丰富,参与股票投资的人也越来越多,各类炒股软件正越来越多地走进千家万户。江西财经大学作为一所以财经类学科为主的综合性大学,在其一年一度的校学术节上开展股票模拟业务,不仅符合专业发展的需要,也能更好的吸引广大师生的目光。 本文描述了一个适合于开展现场即时活动的股票模拟系统。系统分为管理控制模块,股票模拟模块和开卡充值模块三部分,管理控制模块用来控制整个股票模拟活动的流程,设置各流程的持续时间,并负责数据的计算和最后客户各类数据的汇总折算;股票 模拟模块提供客户集合竞价和连续竞价中的委托买入,委托卖出,撤单等业务的操作;开卡充值模块则在客户提供必要的个人信息后,为其提供一个账号作为参与活动所有业务的身份凭证,并为客户提供充值操作。 【关键词】 股票模拟 管理控制 竞价 II Abstract Along with the development and the reform of economic policy, the stock market of China is developing into a higher level. Large numbers of investor turns to invest their money in stock and all kinds of stock software has been developed under the circumstance. As a university that major in finance and economics subjects, JiangXi University of Finance & Economics launched a stock simulation program on its exhibition that holds annually in school. Not only meet the demand of the professional development, it also can wider the view of teachers and students. This essay described a stock simulating software that suited for an instant activity. The stock simulating software has the ability to accomplish three ranges of functions in three modules: Manage & Control, Stock simulation and Account & Deposit. Manage & Control module is used to control the process of the stock imitation activity, set the time about how long each process will last and be responsible for calculating all kinds of data of customers; The stock simulation module provides all basic operation of stocks to the customer; Account & Deposit provides an account number as a certification in participating the activity, this module also provides an operation that customer can fill their accounts when money is not enough. 【 Key Words】 Stock simulation ; Manage & Control; Compete for price III 目 录 1 绪论 1.1 引言 . 1 1.2 股票模拟系统开发背景概述 .1 1.3 开发股票模拟系统的意义 .1 1.4 开发股票模拟系统的目标 .2 2 系统分析 2.1 系统的可行性分析 .3 2.2 用户需求分析 .3 2.3 系统业务流程分析 .4 2.3.1 竞价管理业务流程分析 .5 2.3.2 股票模拟业务流程分析 .6 2.3.3 开卡充值业务流程分析 .8 2.4 数据流分析 .9 3 系统设计 3.1 系统功能模块设计 .11 3.1.1 股票模拟模块设计 .11 3.1.2 开卡充值模块设计 .12 3.1.3 管理控制模块设计 .12 3.2 E-R 图设计 .12 3.3 数据库表格设计 .13 4 系统实现 4.1 系统股票模拟模块的实现 .17 4.1.1 集合竞价功能的实现 .18 4.1.2 委托买入功能的实现 .18 4.1.3 委托卖出功能的实现 .19 4.1.4 撤单操作功能的实现 .19 4.1.5 K 线图功能的实现 .20 4.2 系统管理控制模块的实现 .22 4.3 系统开卡充值模块的实现 .23 5 总结 IV 参考文献 .26江西财经大学普通本科毕业论文 1 1 绪论 1.1 引言 在如今高速发展的经济社会,股市投资已成为一种人们愿意承担其风险的理财手段,而股票自然而然也成了人人关心的热门话题。 在这个大趋势下,各类与股票有关的产业发展迅速,前景看好。同样,以模拟股票业务为主的相关软件在最近几年也有了相当大的发展。比如网上流行的大智慧炒股软件,为客户完全在网络上实现股票投资成为可能。它的模拟炒股软件以其全真的模拟环境为初入股场的新手提供了一个很好的学习和锻炼的机会,且投资者不必象真正的股票投资那样需要担心风险。 但是,目前网络上发布的一 些股票模拟软件都是进行全真,即时性的模拟,股票信息都是通过因特网发送的真实大盘数据。这种模拟有操作周期长,不可指定参与人群范围和操作自由度受限制等缺点。 1.2 股票模拟系统开发背景概述 财经类学科 是 江西财经大学的主要学科之一,其地位举足轻重,相关的经济类学术活动也在江西财经大学得到蓬勃发展。华融银行作为江西财经大学最具影响力之一的,以模拟银行业务和股票业务为主的活动品牌,深受广大同学好评。但因历届华融银行的所有业务都由人工来操作,一项简单的业务操作都需要由大量业务人员来登记、传送、计算、统计和记录数据 。因此,效率不高已成为华融银行进一步发展的瓶颈。为了解决上述问题,使所有业务都能由计算机完成,金融学院特委托本人设计股票模拟系统,由其提出系统具体要实现的功能,来帮助其完成股票模拟业务由手工操作向计算机操作的重大转型。 1.3 开发股票模拟系统的意义 与股票模拟的人工操作相比,计算机操作显然可以节省大量的时间和人力资源,而这正是即时性学术活动最稀缺的两要素。时间大量节约下来,活动能接纳的客户就可增多,活动规模就可明显扩大;人力资源将大量节约下来,对活动的相当投入可大幅度减少,这也就增加了活动的可持续发展。 本人设计的系统功能需求都由客户方面提供。不同于网上发布的一些股票模拟系统,该系统以简洁,实用为主,所有的业务和操作都只针对一只股票,并将这只股票从开始发行到最后收盘的整个周期缩短为两天(也就是学江西财经大学普通本科毕业论文 2 术活动持续的天数)。参与对象为能到达活动地点的所有人群。活动一举办完就可立刻公布所有参与者的最后结算业绩,并对业绩优秀者给予奖励。象这样适合进行现场股票模拟的类似公开免费软件在国内还是不可见的,随着中国大力发展经济建设,相信此类股票模拟软件的发展前景也越加广阔。 1.4 开发股票模拟系统的目标 本人设计 的股票模拟系统其最主要目标就是对股票的基本业务进行模拟,并保证最后的活动顺利完成。本文的整个设计思想也是围绕着这个主题而进行的。本系统主要想达到以下几个目的: ( 1) 系统功能的实现,将股票的集合竞价,开盘,连续竞价,收盘过程和委托买入,委托卖出,撤单操作等一系列股票的基本业务流程和操作在计算机上实现,并为以后功能的完善和扩展提供方便。 ( 2) 系统的可用性、可靠性、简洁性、保密性等方面要得到保证。可用性是每个系统都具备的,由于系统要用在即时性的活动中,可靠性要求自然要相当高,不但要保证活动中尽量不出现大的问题 ,而且即使出现了问题,也要求系统有很好的可延续性,重新打开系统后系统能继续工作,从而保证活动顺利的进行下去,而不至于中断后不可恢复。由于是受金融学院委托,其知识产权已经归金融学院所有,因此软件的开发进度要有很好的保密性。 ( 3) 数据的一致性,由于系统采用 C/S 结构开发,多人可以在不同电脑上同时进行操作,这就需要及时对自己的数据进行验证比较、刷新,以避免别人操作自己已经提取了的数据,导致自己的数据失真。 ( 4) 模块的独立性和统一性,由于系统采用 C/S 结构开发,因此系统的股票模拟模块是可以任意的打开和关闭的, 这就要求该模块有很强的独立性;由于股票模拟系统只是华融银行系统中的一块,其他还包括存贷,保险系统。因此最后的结算统计还要顾及到非股票类的其他系统,这就要求系统间的统一性。 江西财经大学普通本科毕业论文 3 2 系统分析 2.1 系统的可行性分析 开发任何软件都要受到时间、资源、物力、人力等诸多方面的限制,因此在开发一个系统之前对系统进行可行性分析是很有必要的。系统人员需要对所要设计的系统进行初步调查、对调查和研究结果做个可行性分析的结论,来作为系统是否可开发的依据。可行性分析是系统开发过程中的基础,它包括经济可行性、技术的可行 性、组织管理可行性和社会可行性等。 ( 1) 经济可行性分析:本人结合自己的实际情况,预计该系统的开发时间大概为 1 个半月,测试时间大概为半个月,开发成本大概为人民币 2000元。 ( 2) 技术可行性分析:本人在对系统构架如何实现的问题进行了仔细的分析和考虑后,确定自己的知识能够完成所有设计要求。根据自己对编程语言的熟悉程度及编程语言的特点,本人选择使用 VB 语言和 SQL Server 数据库来进行开发。 ( 3) 组织管理的可行性分析:该系统由本人独立开发,因此并不存在组织管理的问题,只是为自己计划好了一份详细的开发进度表 。 ( 4) 社会的可行性分析:该系统可大幅度提高学校学术节的效率,增强学术节的科技性和趣味性,并且其知识产权已被金融学院买断,因此已具备社会可行性。 2.2 用户需求分析 华融银行系统为一个银行股票类模拟系统,本人所负责的部分主要分为竞价管理 ,股票模拟和开卡充值三个模块。系统的开发是为了完成校学术节的活动,活动分为集合竞价,第一日上下午连续竞价,第二日上下午连续竞价这样几个环节。系统的需求分析是由校金融学院投资方固定下来了的,具体的要求如下: ( 1) 开卡充值部 查询:给 出账 号后可以查询用户的开卡注册信息,包 括姓名、学号、性别、学院名称、开户金额、 账面 余额。显示的信息将在主界面上显示。 开卡:客户需要输入姓名、学号、性别、学院名称、开户金额进行开卡,开卡后客户可以得到一个账号,参加任何业务都需要此账号作为身份凭证。 江西财经大学普通本科毕业论文 4 用户可以选择 5000、 10000、 20000、 25000、 50000 五个类型的开户金额,开户金额只能用在股票类的业务中。 充值:客户给 出账 号后可选择 5000、 10000、 20000、 25000、 50000 五个类型的充值额进行充值,充值的金额只能用在股票类的业务中。 ( 2) 股票部 查询:可 查询指定 账号 的集合竞价信息、历史操作记录和委托记录信息。 集合竞价:这是股票模拟活动的一个环节,在活动第一日上午开盘前的20 分钟为集合竞价环节。此环节客户需提供 账号 、委托价格和委托数量,操作时委托数量需以一手即 100 股为基本单位。当股市开盘时,系统将以价格优先,时间优先的原则(即价高者得,报价相同时先委托者得)自动成交总委托量 62%的委托单,并将可成交委托单中报价最低的价格作为当日的开盘价,此时活动进入连续竞价环节。 委 托买卖:这是连续竞价环节中才有的操作,客户需提供委托报价和委托数量,委托报价限制在当日开盘价 +-10% 的范围内,操作时委托数量需以一手即 100 股为基本单位。委托提交成功后,系统立即按价格优先,时间优先的原则(即价高者得,报价相同时先委托者得),在挂单中一个一个寻找对象,对满足条件的委托单进行成交,对不能成交的委托单进行挂单处理,这里需要注意的是成交价格一定是被寻找后匹配的挂单的价格而不是当时被提交的委托单的报价。 撤单:客户可对自己未成交的委托单进行撤单操作。如果是对委托买入进行撤单,则返还相应的委托金额 ,如果是对委托卖出进行撤单,则返还相应的委托股数。 ( 3) 竞价管理 环节控制:操作员可控制活动各环节的开始时间和持续时间,例如设定第二日上午何时开盘,何时收盘等。 折算:可对客户各类型的所有资产进行折算,包括股票余额、委托单总额、所持股价值、股票外余额、存款折算、贷款折算、分红险折算、保障险折算。所持股价值按最后的收盘价进行折算,并且显示出客户的盈亏情况。 2.3 系统业务流程分析 华融银行要求在竞价管理模块 实现整个股 票模拟活动环节的控制,对数据江西财经大学普通本科毕业论文 5 进行计算,并接收和发送消息;在客户端实现用户股票模拟业务及开卡充值业务,模块间都是相互独立的,只需要保证 竞价管理 模块的开启,股票模拟模块和开卡充值模块都是可以任意的开启或关闭的,对系统的正常运行不会有任何影响。 2.3.1 竞价管理 业务流程分析 竞价管理业务主要 用来 控制整个股票模拟活动的流程 ,包括集合竞价环节和连续竞价环节,并负责最后数据的折算工作,详细介绍如下 : ( 1) 集合竞价环节:此环节内允许股票模拟模块进行集合竞价操作,但股票模拟模块的委托买卖和撤单操作仍被禁止。 ( 2) 连续竞价环节:连续竞价环节包括第一日上下午开盘和第二日上下午开盘。在集合竞价环节结束后,系统转入连续竞价环节。操作员需要设置第一日上午开盘的持续时间。当股市第一日上午开盘时,系统将集合竞价环节最低的成交价格作为当日的开盘价,然后将此开盘价和开盘的命令通知给股票模拟模块。股票模拟模块接收到通知和立即禁止集合竞 价业务操作,并开始允许连续竞价业务操作,包括委托买卖和撤单操作 。在连续竞价环节中,每分钟此模块都将通知股票模拟模块的 K 线图显示更新,每一次的委托买卖和撤单操作完成后,此模块也都将通知股票模拟模块进行一次除 K 线图以外的所有显示的更新。当操作人员设置的持续时间耗尽时,第一日上午的连续竞价环节宣告结束,此时禁止股票模拟模块的所有业务操作。第一日下午和第二日上、下午的连续竞价环节与之前所描述类似,唯一的不同是第一日的开盘价由集合竞价产生,而第二日的开盘价就为第一日的收盘价,即第一日下午最后一刻的成交价。 ( 3) 折算:在活动结束后可查询客户各类相关数据和最后的折算数据,包括股票余额、委托单总额、所持股价值、股票外余额、存款折算、贷款折算、分红险折算、保障险折算,所持股价值按最后的收盘价(第二日下午最后一刻的成交价)进 行折算,并且显示出客户的盈亏情况。并可将所有折算数据放入到一个数据库表中,以方便查看。 此模块的总体业务流程图如图 2-1 所示,其中的操作员即为系统操作人员。 江西财经大学普通本科毕业论文 6 设 置 服 务 器 I P操 作 员登 录连 接 上 数 据 库输 入 数 据 库实 例 名连 接 数 据 库 失 败退 出 系 统新 的 模 拟开 始 集 合 竞 价第 一 日 上 午 开 盘第 一 日 下 午 开 盘第 二 日 下 午 开 盘折 算清空数据库第 二 日 上 午 开 盘 图 2-1 竞价管理 业务流程图 2.3.2 股票模拟业务流程分析 操作员 进入 系统 后,根据客户口述输入用户 账号 查询用户信息,如果 存在 此用户的话,则可 针对此用户进行各种操作,包括集合竞价,委托买卖,撤单操作 。总体业务流程图如图 2-2 所示 。 操 作 员1 . 集 合 竞 价2 . 委 托 买 入3 . 委 托 卖 出4 . 撤 单 操 作查 询 用 户帐 号 不 存 在帐 号 存 在输 入 账 号 图 2-2 股票模拟模块总体业务流程图 股票模拟主要业务描述如下: ( 1) 查询用户:可查询用户的个人信息,集合竞价记录,委托情况记录,操作历史记录。 ( 2) 集合竞价操作:此操作只能在集合竞价环节中进行。操作员根据客户口述输入 账号 、委托价格和委托数量。操作时委托数量需以一手即 100 股为基本单位。当操作成功后,集合竞价信息、操作历史信息和用户个人信息里的 账面 余额都会相应的变化。当股市开盘时,系统将以价格优先,时间优先的原则(即价高者得,报价相同时先委托者得)自动成交总委托量 62%的委托单,并将可成交委 托单中报价最低的价格作为当日的开盘价,此时活动进入连续竞价环节。此项操作的业务流程图如图 2-3 所示 。 江西财经大学普通本科毕业论文 7 操 作 员集 合 竞 价输入信息有误输 入 信 息 正 确持 股 信 息操 作 记 录个 人 信 息输 入 帐 号,价 格 ,数 量插入竞价信息修 改 表 余 额 减 少插入操作记录 图 2-3 集合竞价业务流程图 ( 3) 委托买入操作:这是在连续竞价环节中的操作,操作员根据客户口述输入委托报价和委托数量,委托报价限制在当日开盘价 +-10% 的范围内,操作时委托数量需以一手即 100 股为基本单位。当操作成功后,委托缓冲池、操作历史信息和用户的个人信息里的 账面 余额都会相应的变化 ,系统 立即按价格优先,时间优先的原则自动进行撮合,在未成交的 委托单(挂单)中寻找与其匹配的进行成交,如果寻找不到匹配的委托,则这项委托将不能成交,自身也将变成未成交委托单(挂单)中的一员。此项操作的业务流程图如图2-4 所示 。 录操 作 员集 合 竞 价输入信息有误输 入 信 息 正 确委 托 缓 冲 池操 作 记 录个 人 信 息输 入 委 买,价 格 ,数 量插入委买信息修 改 表 余 额 减 少插入操作记结束通 知 服 务 器 模块 有 委 卖 操 作图 2-4 委托买入业务流程图 ( 4) 委托卖出操作:这是在连续竞价环节中的操作,当客户持有股票时,可将其委托卖出,委托数量不能大于持有股票的数量。操作员根据客户口述输入委托报价和委托数量,委托报价限制在当日开盘价 +-10% 的范围内,操作时委托数量需以一手即 100 股为基本单位。当操作成功后 ,委托缓冲池、操作历史信息和用户持股信息里的可卖股数会相应的变化 ,系统 立即按价格优先,时间优先的原则自动进行撮合,在未成交的委托单中寻找与其匹配的进行成交,如寻找不到匹配的委托,则这项委托将不能成交,自身也将变成未成交委托单中的一员。此项操作的业务流程图如图 2-5 所示 。 江西财经大学普通本科毕业论文 8 结束通 知 服 务 器 模块 有 委 卖 操 作操 作 员委 托 卖 出输入信息有误输 入 信 息 正 确委 托 缓 冲 池操 作 记 录持 股 信 息输 入 委 卖 价格 , 数 量插入委卖信息修 改 表 可 卖 股 数 减 少插入操作记录 图 2-5 委托卖出业务流程图 ( 5) 撤单操作:在连续竞价环节内,对还未成交的委托,客户可以选择撤单来取消委托。当操作成功后,委托记录信息将被删除,同时操作记录信息将增加,如果撤消 的是委托卖出请求,则用户持股信息里的可卖股数会相应增加,如果撤消的是委托买入请求,则用户个人信息里的 账面 余额会相应增加。此项操作的业务流程图如图 2-6 所示 。 操 作 员撤 单 操 作有 委 托 单个 人 信 息操 作 记 录持 股 信 息修 改 表 余 额 增 加修 改 表 可 卖 股 数 增 加委 托 记 录无 委 托 单删 除 委 托 记 录委托单为买时委托单为卖时有 委 托 单 图 2-6 撤单业务流程图 此外,在该模块中还有一项十分重要的操作:显示 K 线图。该项操作具体功能包括:显示每分钟的价格走势线和成交量线、买方报价最高和卖方报价最低的四个价格、股票现价,涨跌、涨跌幅度、今日开盘价,最近一次的成交量、最近四条的成交纪录(包括成交价,买卖主动性和成交时间)以及可以在第 一日和第二日的 K 线图中自由切换。由于所有显示只需按一下按钮就行,操作十分简单,所以这里不再画它的业务流程图。 2.3.3 开卡充值业务流程分析 开卡充值主要业务描述如下: ( 1) 查询:可以查询客户的开卡注册信息,包括姓名、学号、性别、学院名称、开户金额、 账面 余额。 ( 2) 开卡:客户需要输入自己的基本个人信息进行开卡,个人信息包括姓名、学号、性别、学院名称、开户金额。开卡后客户可以得到一个账号,江西财经大学普通本科毕业论文 9 参加任何业务都需要此账号作为身份凭证。操作成功后,个人信息的记录数相应增加。 ( 3) 充值:客户可选择 5000、 10000、 20000、 25000、 50000 五个类型的充值额进行充值,充值的金额只能用在股票类的业务中。操作成功后,个人信息里的 账面 余额项会相应的增加。此项操作的总体业务流程图如图 2-7所示 。 退 出 系 统操 作 员登 陆连接数据库失败连 接 数 据 库 成 功输 入 数 据 库实 例 名开 卡充 值 图 2-7 开卡充值模块总体业务流程图 2.4 数据流分析 在分析了整个系统的功能和数据流走向之后,本人设计了系统详细的数据流图(如图 2-8 所示)。 图中的外部数据为非股票类模块中的数据,包括非股票类充值信息,存贷信息和保险信息。图中 指向数据库的箭头表示 要将记录插入数据库中,图中从数据库方向指出来的箭头表示要从数据库里提取数据。具体功能描述详见下一章中的内容。 江西财经大学普通本科毕业论文 10 开 卡 登 记充 值 登 记委 买 登 记委 卖 登 记撤 单集 合 竞 价 登 记K 线 生 成个 人 信 息委 托 记 录操 作 历 史持 股 记 录集 合 竞 价流 程 控 制K 线 图成 交 记 录委 托 缓 冲统 计 结 果开 卡 信 息充 值 信 息委 买 信 息委 卖 信 息撤 单 命 令集 合 竞 价 信 息查 看 K 线 命 令用 户外 部 数 据折 算生 成 折 算 表首 次 开 盘非 首 次 开 盘操 作 员时 钟生 成 折 算 表 命 令生 成 折 算 命 令首 次 开 盘 命 令非 首 次 开 盘 命 令K 线 显 示折 算 表 显 示时钟刷新时间刷新时间图 2-8 系统数据流图 江西财经大学普通本科毕业论文 11 3 系统设计 3.1 系统功能模块设计 本系统包括股票模拟、开卡充值和 管理控制 三个子系统 ,其功能图如图3-1 所示 。 系 统股票模拟模块开卡充值模块管理控制模块集合竞价操作K线图查看撤单操作委托卖出操作委托买入操作开卡操作充值操作折算操作流程控制操作 图 3-1 系统功能 模块 图 3.1.1 股票模拟模块设计 其中股票模拟模块可进行的操作有集合竞价操作、委托买卖操作 ,撤单操作和查看 K 线图,详细说明如下: ( 1) 集合竞价操作:此操作只能在集合竞价环节中进行。操作员在查看客户 账号 卡后,根据客户口述输入委托价格和委托数量。当操作成功后,记录插入集合竞价和操作历史表,同时 该账 号用户的个人信息表里的 账面 余额会相应的减少。当股市开盘时,系统将以价格优先,时间优先的原则自动成交总委托量 62%的委托单,并将最低的成交价格作为当日的开盘价。 ( 2) 查看 K 线图:显示每分钟的价格走势线和成交量线、买方报价最高和卖方报价最低的四个价格、股票现价,涨跌、涨跌幅度、今日开盘价,最近一次的成交量、 最近四条的成交纪录(包括成交价,买卖主动性和成交时间)以及可以在第一日和第二日的 K 线图中自由切换。 ( 3) 撤单操作:在连续竞价环节内,对还未成交的委托,客户可以选择撤单来取消委托。操作员在查看客户 账号 卡后,根据客户口述取消委托。当操作成功后,委托记录表里的此条委托记录将被删除,同时操作记录插入操江西财经大学普通本科毕业论文 12 作历史表,如果撤消的是委托卖出请求,则持股信息表里的可卖股数会相应增加,如果撤消的是委托买入请求,则个人信息表里的 账面 余额会相应增加。 ( 4) 委托卖出操作:这是在连续竞价环节中的操作,当客户持有股票时,可将其委托卖出 ,委托数量不能大于持有股票的数量。操作员在查看客户 账号 卡后,根据客户口述输入委托价格和委托数量,委托报价限制在当日开盘价 +-10% 的范围内。当操作成功后,记录插入委托缓冲池和操作历史表,同时 该账 号用户的持股信息表里的可卖股数会相应的减少。数据插入数据库之后,将立即通知 管理控制 模块。委托买入操作与委托卖出操作类似,不同的是用户的个人信息表里的 账面 余额会相应的减少而不是持股信息表里的可卖股数。 3.1.2 开卡充值模块设计 开卡充值模块可进行的操作有开卡操作和充值操作,详细说明如下: ( 1) 开卡:操作员在客 户登记之后,根据客户的口述输入他们的基本个人信息进行开卡,个人信息包括姓名、学号、性别、学院名称、开户金额。开卡后客户可以得到一个账号,参加任何业务都需要此账号作为身份凭证。操作成功后,信息将插入个人信息表。 ( 2) 充值:客户可选择 5000、 10000、 20000、 25000、 50000 五个类型的充值额进行充值,充值的金额只能用在股票类的业务中。操作员在查看客户 账号 卡后,根据客户口述输入充值金额,操作成功后,个人信息表中的 账面 余额项会相应的增加。 3.1.3 管理控制 模块设计 管理控制 模块可控制整个活 动的环节,还可进行折算操作。折算操作就是在活动结束后客户可要求操作员查询自己的各类相关数据和最后的折算数据,包括股票余额、委托单总额、所持股价值、股票外余额、存款折算、贷款折算、分红险折算、保障险折算。所持股价值按最后的收盘价进行折算,操作员还可显示出客户的盈亏情况,并可将所有折算数据放入到一个数据库表中,以方便查看。 3.2 E-R 图设计 本人在分析了该系统的功能并结合各个实体之间的关系后,画出了总体的 E R 图(如图 3-2 所示),其下一层的 E-R 图可以查看附录。 江西财经大学普通本科毕业论文 13 用 户委 托 缓 冲 池持 股 信 息集 合 竞 价 信 息操 作 历 史 记 录委 托 信 息成 交 记 录 K 线 图竞 价持 股拥 有委 托转 化转 化生 成1n1n111111n11 图 3-2 系统总体 E-R 图 3.3 数据库表格设计 ( 1) 描述方法说明 数据类型: datetime 时间类型 nvarchar 自动多字符型 float 浮点型 bigint 长整型 money 货币型 char 字符型 出现次数 : 1:表示出现并且不多次重复使用 N:表示多次重复使用。 频率 : 高 :表示需要多次使用 低 :表示使用次数较少 ( 2) 数据库表格的具体设计 数据库一共包含 11 张表: personinfo(个人信息)、 authorize(委托记录)、history(操作历史记录)、 possess(持股信息)、 compete(集合竞价记录)、 flag(流程控制)、 kmap(第一日 K 线图)、 kmap2(第二日 K 线图)、 kmaptemp(成交情况记录)、 tempq(委托缓冲池)、 resulttable(统计结果记录)。 在这里除 resulttable(统计结果记录)外,其具体设计如下: 江西财经大学普通本科毕业论文 14 表 3.1 personinfo(个人信息表) 名称 数据类型 约束 出现次数 使 用者 何时使用 频率 账号 nvarchar 主键 N 用户 需要使用时 高 学号 nvarchar N 同上 同上 高 姓名 nvarchar N 同上 同上 高 学院 nvarchar N 同上 同上 高 性别 nvarchar N 同上 同上 高 开户金额 bigint N 同上 同上 高 账面 金额 bigint N 同上 同上 高 说明:此表记录在客户注册时被插入。学生需用学生证来进行注册,且不能重复注册。活动中有足够多的印有不同号码的卡片,每注册一个客户时操作员都将一张 卡片上的号码 作为 该客户的账号,并将这张卡片给客户,因为之后的一系列活动客户都需要用此卡片来作为身份凭证,其余表中的账号同义。表中的开户金额为客户开户时充入的金额,账面余额为客户可自由支配的金额。 表 3.2 possess(持股信息表) 名称 数据类型 约束 出现次数 使用者 何时使用 频率 账号 nvarchar N 用户 同上 高 股数 bigint N 同上 同上 高 可卖股数 bigint N 同上 同上 高 说明:此表记录在客户注册时被插入,但插入时股数和可卖股数均初始化为 0,在之后 的买卖成交中,其值会相应改变。表中股数为客户的持股数量,可卖股数为客户可以卖出的股票数量。 表 3.3 compete(集合竞价记录表) 名称 数据类型 约束 出现次数 使用者 何时使用 频率 账号 nvarchar N 用户 同上 高 时间 datetime N 同上 同上 高 报价 float N 同上 同上 高 股数 bigint N 同上 同上 高 总额 bigint N 同上 同上 高 说明:此表记录在客户进行集合竞价业务操作时被插入。表中的时间为该项记录被插入的时间,由系统自 动赋值当前时间。报价和股数由客户提供,江西财经大学普通本科毕业论文 15 总额由系统自动赋值,总额 =报价 *股数。 表 authorize(委托记录表) ,history(操作历史记录表) ,tempq(委托缓冲池)的结构都一样,其设计如下 : 表 3.4 authorize(委托记录表) 名称 数据类型 约束 出现次数 使用者 何时使用 频率 账号 nvarchar N 用户 同上 高 时间 datetime N 同上 同上 高 交易类型 nvarchar N 同上 同上 高 买入价格 float N 同上 同上 高 卖出价格 float N 同上 同上 高 股数 bigint N 同上 同上 高 总额 bigint N 同上 同上 高 说明: 客户进行委托买卖业务操作时,记录将会插入到 tempq(委托缓冲池)中。然后系统会将 tempq 表中的记录与 authorize 表中的记录进行撮合看是否能成交,能成交的话,两表中的记录相互抵消;对 tempq 表中不能成交的记录,系统将其自动转移到 authorize(委托记录表)中,也就是说tempq 表几乎时时处在被清空的临界状态。此外,集合竞价中 compete 表里不能成交的委托单也将由系统 自动插入 authorize 表,在此表中的委托单都被视为“挂单”。 history(操作历史记录表)中的记录在每次客户进行集合竞价买入,委托买卖和撤单时都被插入;另外,每当委托被成交后,相关的成交记录也将被插入到此表中,因此可以说客户委托的任何变动都可以在history 表中找到。 表 3.5 flag(流程控制表) 名称 数据类型 约束 出现次数 使用者 何时使用 频率 开盘价 float N 操作员 一直存在 高 竞价 int N 同上 同上 高 开盘 int N 同上 同上 高 收盘 int N 同上 同上 高 再开 int N 同上 同上 高 闭盘 int N 同上 同上 高 收盘价 int N 同上 同上 高 次日开盘 int N 同上 同上 高 次日收盘 int N 同上 同上 高 江西财经大学普通本科毕业论文 16 次日再开 int N 同上 同上 高 次日闭盘 int N 同上 同上 高 闭盘价 float N 同上 同上 高 IP nvarchar N 同上 同上 高 说明:表中键的顺序和活动的各项环节的顺序是一致的,在集合竞价结束时,表中的开盘价被插入,于是活动进入连续竞价环节 。表中的 开盘、收盘、再开、闭盘、次日开盘、次日收盘、次日再开、次日闭盘分别代表第一日和第二日的上下午连续竞价环节,它们用 1 来标志活动正处在此环节, 0则表示活动不处在此环节,因此它们中最多只可能有一个键被标志为 1。表中的收盘价为第一日的收盘价,闭盘价为第二日的收盘价。表中的 IP 表示 管理控制 模块所在电脑的 IP 地址,其它客户机可以提取此地址来和 管理控制 模块 程序相连接。 表 kmap(第一日 K 线图表)、 kmap2(第二日 K 线图表)的结构都一样,其设计如下 : 表 3.6 kmap( K 线图表) 名称 数据类型 约束 出 现次数 使用者 何时使用 频率 现价 float N 计算机 每分钟 高 成交量 bigint N 同上 同上 高 时间 datetime N 同上 同上 高 说明:此表中的记录在连续竞价环节每分钟被插入一次。表中的现价为插入前最后一次成交记录中的成交价格,成交量为该成交记录中的成交量,时间为该记录被插入时的系统当前时间。 kmap 中的记录都是第一日连续竞价时被插入的, kmap2 中的记录都是第二日连续竞价时被插入的。 表 3.7 kmaptemp( 成交记录表 ) 名称 数据类型 约束 出现次数 使用者 何时使用 频率 现价 float N 计算机 有成交发生 高 成交量 bigint N 同上 同上 高 主动性 char 1 同上 同上 低 时间 datetime N 同上 同上 高 说明:此表中的记录在连续竞价环节中每次发生成交时被插入。表中的现价为此次成交的成交价格,成交量为此次成交的成交量,主动性为在挂单中寻找可匹配委托单的委托记录 ,时间为此记录被插入时的系统当前时间。 江西财经大学普通本科毕业论文 17 4 系统实现 系统实现包括系统股票模拟模块的实现、系统 管理控制 模块的实现和系统开卡充值模块的实现。下 面将分别从这三个部分来进行详细说明。 4.1 系统股票模拟模块的实现 在进入系统后首先要求弹出登入界面 , 由于该系统采用 C/S 结构,数据库可能并不在本机上,因此用户在进入系统前要输入数据库实例名来连接数据库,如果连接成功则进入操作主界面,否则系统自动退出。在成功连接数据库后,该模块主界面的一些数据库控件将自动绑定。功能界面如图 4-1 所示 。 图 4-1 股票模拟模块登 入 界面 顺利登入之后便进入主界面。此部分主要有以下功能得以实现: 1、进入主界面(如图 4-2 所示)时此模块会自动检查是否能和 管理控制 模块 进行通 信,同时从数据库 flag 表中提取数据来判断目前活动正处于哪个环节当中,并做出相应的处理,进行相应的约束。 2 、操作员经客户口述输入 账号 后选择查询,主界面将数据库personinfo,possess, compete, history, authorize 表中提取数据来显示 该账 号用户的个人信息,持股信息,集合竞价信息,操作记录信息和委托记录信息,而且系统将 该账 号定为当前操作针对 账号 ,即之后进行委托买卖和撤单操作都不需再输入 账号 ,所有操作都是针对此 账号 进行的操作,并且在被通知进行显示更新时,也是更新此 账号 的信息。 3、当此模块接收到来自于 管理控制 模块 的命令时,会根据命令完成相应的操作。会接收到的命令包括 : 刷新主界面中的显示; 刷新 K 线图界面中的 K 线图显示; 刷新 K 线图界面中除 K 线图外的所有显示; 通知开盘,收盘的命令; 通知新的模拟; 通知允许集合竞价。 江西财经大学普通本科毕业论文 18 图 4-2 股票模拟模块主界面图 4.1.1 集合竞价功能的实现 此部分主要有以下功能得以实现:系统会先判断 该账 号的合法性再对输入的委托价格进行判断看其是否符合系统指定的约束条件。委托价格输入合法,则根据 该账 号用户 personinfo 表中的 账 面 余额显示出最多可委托数量,并允许输入委托数量,输入委托数量后判断是否超过可委托数量,输入合法的情况下,操作成功后此模块会将相关数据插入表 compete 和表 history,还将更新表 personinfo 中用户的 账面 余额,功能界面如图 4-3 所示 。 图 4-3 集合竞价操作界面 4.1.2 委托买入功能的实现 此部分主要有以下功能得以实现:首先此项操作针对的 账号 是由主界面产生的当前操作针对 账号 。 此功能模块中系统会先判断输入的委托价格的合法性,在合法的情况下 则根据 该账 号用户 personinfo 表中的 账面 余额显 示出江西财经大学普通本科毕业论文 19 最多可委托数量,并允许输入委托数量,输入委托数量后判断是否超过可委托数量,在输入合法的情况下,操作成功后此模块会将相关信息将插入表tempq,插入表 history,更新表 personinfo 的用户 账户 余额,最后通知 管理控制 模块 有委托买入申请。功能界面如图 4-4 所示 。 图 4-4 委托买入操作界面 4.1.3 委托卖出功能的实现 委托卖出界面和相公约束功能类似上图,唯一的区别是它显示的可委托数量是数据库表 possess 里 该账 号记录中的可卖股数项。操作成功后此模块会将相关信息将插入表 tempq,插入表 history,更新表 possess 的可卖股数,最后通知 管理控制 模块 有委托卖出申请。 4.1.4 撤单操作功能的实现 此部分主要有以下功能得以实现:功能界面(如图 4-5 所示)将从 authorize表里列出 该账 号用户所有未成交的委托记录,用户可选择其中一条进行撤单操作,系统将把所选择的记录从 authorize 表里删除,当委托记录的类型是买入时,更新表 personinfo 的 账面 余额,当委托记录的类型是卖出时,更新表possess 的可卖股数,且都要插入表 history,最后通知 管理控制 模块, 管理控制 模块收到通知后 再转而通知此模块更新显示 K 线图里的挂单项。 图 4-5 撤单操作界面 江西财经大学普通本科毕业论文 20 4.1.5 K 线图功能的实现 K 线图的显示在系统中是比较复杂的一块,代码也比较多,因此这里只列出部分主要代码,其余主要代码见附录, K 线图界面如图 4-6 所示 。 图 4-6 K 线图界面 此部分主要有以下功能得以实现: 1、打开窗体后,该模块画出界面上主要线框的布局及根据 flag 表中的当天开盘价显示出左边的价格。 2、根据表 flag 里的数据判断今天是活动的第一天还是第二天,是第一天的话根据表 kmap 里的值 画出 K 线,是第二天的话根据表 kmap2 里的值画出K 线,画线函数代码如下: 首先定义显示 K 线要用到的一些系数变量, 再按时间顺序在 kmap2 表里查询 K 线 记录,当无任何 K 线记录时退出函数。当有记录时,根据表里的记录一个一个的 描点,分别显示出价格线和成交量线,其中后一个点与前一个点的坐标差为 40 Dim randomY, rr2 , xishu1 Set rs = ExeSQL(select * from kmap2 order by 时间 ) If rs.EOF Then Exit Sub xishu1 = Format(4785 / (Iprize2 * 0.1), #0.#) Dim Fromi= 1580, rr = 4785 As Double rs.MoveFirst Do Until rs.EOF If rs!成交量 = 0 Then 江西财经大学普通本科毕业论文 21 KmapForm.Pic1.Line (Fromi, rr)-(Fromi - 40, rr), QBColor(15) KmapForm.Pic1.Line (Fromi, 9600)-(Fromi, 9580), QBColor(14) Else randomY = rr rr = 4785 - Fix(xishu1 * (rs!现价 - Iprize2) KmapForm.Pic1.Line (Fromi, rr)-(Fromi - 40, randomY), QBColor(15) rr2 = 9560 - 462 * (rs!成交量 / 20000) KmapForm.Pic1.Line (Fromi, 9600)-(Fromi, rr2), QBColor(14) End If Fromi = Fromi + 40 rs.MoveNext Loop 3、根据 authorize 表里的记录,以买方委托价格越高,委托时间越早越有优势的原则,以卖方委托价格越低,委托时间越早越有优势的原则,显示出买卖双方报价最有优势的四个委托价格和委托总量(如 4.8 图右上角),其中显示买方前四位报价的函数代码如下: 从委托表里按时间获取所有委托买入请求 sql = select * from authorize where 交易类型 =委托买入 order by 买入价格 desc,时间 MainForm.rsbuy.RecordSource = sql 逐 条 判断表中的记录,当下一个委托的买入价格和前一个相同时,将委托量累加 起来;不相同时,显示前一个委托的委托价格和委托量的总累加值,并重新开始累加。 当选出了四个报价后或已经没有记录时,退出循环 Do Until MainForm.rsbuy.Recordset.EOF If i = 4 Then Exit Do If f1 = False Then /当是第一次循环时 TempP = MainForm.rsbuy.Recordset!买入价格 TempN = TempN + MainForm.rsbuy.Recordset!股数 100 f1 = True : GoTo p1 End If If TempP = MainForm.rsbuy.Recordset!买入价格 Then TempN = TempN + MainForm.rsbuy.Recordset!股数 100 Else KmapForm.buym(i) = TempP KmapForm.buyn(i) = TempN TempP = MainForm.rsbuy.Recordset!买入价格 TempN = MainForm.rsbuy.Recordset!股数 100 i = i + 1 End If p1: MainForm.rsbuy.Recordset.MoveNext Loop 江西财经大学普通本科毕业论文 22 4、根据表 kmaptemp 中的记录显示出最新的四条成交信息 ,如图 4-8 右下角所示。 5、获取表 kmaptemp 中最新的一条成交记录中的成交价格作为现价并显示出来,并根据开盘价格计算出涨跌,幅度等信息并显示,如图 4-8 右中所示(代码见附录)。 6、“视图切换”能清除显示出来的 K 线图,再通过调用不同的画线函数重新画出 K 线图,达到切换第一日与第二日的 K 线图的效果(代码见附录) 。 4.2 系统 管理控制 模块的实现 系统管理控制模块 的实现将按操作流程进行功能说明,主要代码见附录,功能界面如图 4-7 所示 。 图 4-7 管理控制 模块 主界面 此部分主要有以下功能得以实现: 1、设置主机 IP:提交的 IP 地址将保存到 flag 数据库表中,其他客户端将从数据库中提取此 IP 地址,并用它来连接 管理控制 模块 。 2、新的模拟:系统将把所有客户表都清空,并设置流程控制表 flag 为初始状态。 3、开始集合:设置流程控制表 flag 中竞价项的值为 1,来标志活动处于集合竞价环节,并发出信息通知客户机,允许其提 供集合竞价操作。 4、开盘:输入连续竞价持续时间后,点击“开盘”按钮,系统将首先统计出所有集合竞价委托的总量,然后按照价格优先,时间优先的原则(即价高者得,报价相同时先委托者得)自动成交总委托量 62%的委托单,并将江西财经大学普通本科毕业论文 23 可成交委托单中报价最低的价格作为当日的开盘价,插入到 flag 表中的开盘价项中去。此时模块还将设置流程控制表 flag 开盘项的值为 1 来标志活动处于第一日上午开盘环节并通知客户端,此期间 管理控制 模块 一直监听客户端,并根据客户端的请求完成相应的操作。当接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 喀什大学《工程事故分析与处理》2023-2024学年第二学期期末试卷
- 供配电设计主接线答辩
- 2024年万能杆件项目投资申请报告代可行性研究报告
- 设计工作方案实施纲要
- 钓金鱼比赛活动方案
- 产品设计CMF分析图表
- 给大家看的设计书
- 2025年陕西西安航空城建设发展(集团)有限公司招聘笔试参考题库含答案解析
- 2025年湖北武汉市市政建设科研有限公司招聘笔试参考题库附带答案详解
- 2025年内蒙古伊利实业集团股份有限公司招聘笔试参考题库附带答案详解
- 年产万吨的氯乙烯合成工段的工艺设计
- 2024年湖北省中考历史试卷附答案
- 民法典之合同篇课件
- 2024年福建省莆田市初中八年级教学质量检测生物试卷
- 医疗器械仓库管理课件
- 2024年03月甘肃省文化和旅游厅直属事业单位2024年公开招考11名人员笔试参考题库附带答案详解
- 2024江苏省烟草专卖局(公司)系统员工招聘笔试参考题库含答案解析
- 小升初语文阅读理解练习100篇
- MOOC 大学公共体育-华南理工大学 中国大学慕课答案
- 培训班免责声明样本
- 24春国家开放大学《地域文化(本)》形考任务1-4参考答案
评论
0/150
提交评论