![軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)(例).doc_第1頁(yè)](http://file.renrendoc.com/FileRoot1/2019-11/15/8a830e94-067c-4068-88bd-abd160b2acf2/8a830e94-067c-4068-88bd-abd160b2acf21.gif)
![軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)(例).doc_第2頁(yè)](http://file.renrendoc.com/FileRoot1/2019-11/15/8a830e94-067c-4068-88bd-abd160b2acf2/8a830e94-067c-4068-88bd-abd160b2acf22.gif)
![軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)(例).doc_第3頁(yè)](http://file.renrendoc.com/FileRoot1/2019-11/15/8a830e94-067c-4068-88bd-abd160b2acf2/8a830e94-067c-4068-88bd-abd160b2acf23.gif)
![軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)(例).doc_第4頁(yè)](http://file.renrendoc.com/FileRoot1/2019-11/15/8a830e94-067c-4068-88bd-abd160b2acf2/8a830e94-067c-4068-88bd-abd160b2acf24.gif)
![軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)(例).doc_第5頁(yè)](http://file.renrendoc.com/FileRoot1/2019-11/15/8a830e94-067c-4068-88bd-abd160b2acf2/8a830e94-067c-4068-88bd-abd160b2acf25.gif)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
案卷號(hào)00001日期軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)(例) 作 者: 完成日期: 簽 收 人: 簽收日期: 修改情況記錄:版本號(hào)修改批準(zhǔn)人修改人安裝日期簽收人 目錄 1 引言11.1 編寫(xiě)目的11.2 范圍11.3 定義11.4 參考資料12 總體設(shè)計(jì)12.1 需求規(guī)定12.2 運(yùn)行環(huán)境22.3 基本設(shè)計(jì)概念和處理流程22.4 結(jié)構(gòu)22.5 功能需求與程序的關(guān)系22.6 人工處理過(guò)程22.7 尚未解決的問(wèn)題33 接口設(shè)計(jì)33.1 用戶接口33.2 外部接口33.3 內(nèi)部接口34 運(yùn)行設(shè)計(jì)34.1 運(yùn)行模塊組合34.2 運(yùn)行控制34.3 運(yùn)行時(shí)間45 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)45.1 邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn)45.2 物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)45.3 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系46 系統(tǒng)出錯(cuò)處理設(shè)計(jì)56.1 出錯(cuò)信息56.2 補(bǔ)救措施56.3 系統(tǒng)維護(hù)設(shè)計(jì)51 引言1.1 編寫(xiě)目的隨著證券交易電子化程度的不斷提高,券商對(duì)于各種業(yè)務(wù)提出了新的要求,為了滿足券商的發(fā)展需求,更好的為客戶提供服務(wù),現(xiàn)結(jié)合原有各版本的證券交易軟件的優(yōu)點(diǎn)和特點(diǎn),開(kāi)發(fā)一套采用Client/Server結(jié)構(gòu)的證券交易軟件管理系統(tǒng)(SQL版)。本系統(tǒng)從底層予以優(yōu)化,使整個(gè)系統(tǒng)的運(yùn)行速度得到較大提高,通過(guò)重新優(yōu)化數(shù)據(jù)庫(kù)內(nèi)部結(jié)構(gòu),使系統(tǒng)的可擴(kuò)充性得到極大提高。本說(shuō)明書(shū)給出SQL版證券交易系統(tǒng)的設(shè)計(jì)說(shuō)明,包括最終實(shí)現(xiàn)的軟件必須滿足的功能、性能、接口和用戶界面、附屬工具程序的功能以及設(shè)計(jì)約束等。目的在于: 為編碼人員提供依據(jù); 為修改、維護(hù)提供條件; 項(xiàng)目負(fù)責(zé)人將按計(jì)劃書(shū)的要求布置和控制開(kāi)發(fā)工作全過(guò)程; 項(xiàng)目質(zhì)量保證組將按此計(jì)劃書(shū)做階段性和總結(jié)性的質(zhì)量驗(yàn)證和確認(rèn)。本說(shuō)明書(shū)的預(yù)期讀者包括: 項(xiàng)目開(kāi)發(fā)人員,特別是編碼人員; 軟件維護(hù)人員; 技術(shù)管理人員; 執(zhí)行軟件質(zhì)量保證計(jì)劃的專門(mén)人員; 參與本項(xiàng)目開(kāi)發(fā)進(jìn)程各階段驗(yàn)證、確認(rèn)以及負(fù)責(zé)為最后項(xiàng)目驗(yàn)收、鑒定提供相應(yīng)報(bào)告的有關(guān)人員。 合作各方有關(guān)部門(mén)的復(fù)雜人;項(xiàng)目負(fù)責(zé)人和全體參加人員。1.2 范圍說(shuō)明:a 待開(kāi)發(fā)的軟件系統(tǒng)的名稱:模擬股票交易系統(tǒng)b 列出本項(xiàng)目的任務(wù)提出者、開(kāi)發(fā)者、用戶以及將運(yùn)行該項(xiàng)軟件的單位。 1.3 定義 列出本文件中用到的專門(mén)術(shù)語(yǔ)的定義和縮寫(xiě)詞的原詞組。 本報(bào)告用到的術(shù)語(yǔ)符合國(guó)家標(biāo)準(zhǔn)軟件工程術(shù)語(yǔ)(GB/T11475-1995)。1.4 參考資料列出要用到的參考資料,如:a 本項(xiàng)目的經(jīng)核準(zhǔn)的計(jì)劃任務(wù)書(shū)或合同、上級(jí)機(jī)關(guān)的批文;b 屬于本項(xiàng)目的其他已發(fā)表的文件;c 本文件中各處引用的文件、資料,包括所要用到的軟件開(kāi)發(fā)標(biāo)準(zhǔn)。列出這些文件的標(biāo)題、文件編號(hào)、發(fā)表日期和出版單位,說(shuō)明能夠得到這些文件資料的來(lái)源。2 總體設(shè)計(jì)2.1 需求規(guī)定說(shuō)明對(duì)本系統(tǒng)的主要的輸入輸出項(xiàng)目、處理的功能性能要求,詳細(xì)的說(shuō)明可參見(jiàn)需求分析說(shuō)明書(shū)。2.2 運(yùn)行環(huán)境簡(jiǎn)要地說(shuō)明對(duì)本系統(tǒng)的運(yùn)行環(huán)境(包括硬件環(huán)境和支持環(huán)境)的規(guī)定,詳細(xì)說(shuō)明參見(jiàn)需求分析說(shuō)明書(shū)。 數(shù)據(jù)庫(kù)服務(wù)器奔騰Pro內(nèi)存128MB以上硬盤(pán)9GB100M 網(wǎng)卡 應(yīng)用服務(wù)器奔騰Pro內(nèi)存64MB以上硬盤(pán)4GB100M 網(wǎng)卡 網(wǎng)絡(luò)配置100M / 10M 工作站(柜臺(tái))P100以上內(nèi)存8MB以上硬盤(pán)1G以上100M/10M網(wǎng)卡 軟件 操作系統(tǒng)Windows NT 4.0以上 數(shù)據(jù)庫(kù)管理系統(tǒng)SQL Server 2005 相關(guān)軟件工具Windows NT Workstation/Windows NT serverWindows 2000 Professional/ Server開(kāi)發(fā)工具 平臺(tái):Windows95/98、Windows NT、Windows 2000 開(kāi)發(fā)工具:visual stidio 2005 sp1,C#.Net 測(cè)試環(huán)境Windows31、Windows95/98、Windows NT、Windows 20002.3 基本設(shè)計(jì)概念和處理流程說(shuō)明本系統(tǒng)的基本設(shè)計(jì)概念和處理流程,盡量使用圖表的形式。營(yíng)業(yè)部系統(tǒng)一共有四個(gè)對(duì)象,即客戶、員工、市場(chǎng)和銀行,市場(chǎng)的概念是交易所的細(xì)化,比如上海證券交易所的股和股就是兩個(gè)市場(chǎng),有了市場(chǎng)的概念我們就可以把交易所這個(gè)概念細(xì)化,并使同一個(gè)市場(chǎng)的共性更突出。銀行則通過(guò)銀證轉(zhuǎn)賬業(yè)務(wù)介入,并成為營(yíng)業(yè)部系統(tǒng)不可或缺的組成部分。上述四個(gè)對(duì)象通過(guò)一些業(yè)務(wù)流程進(jìn)行相互操作從而形成整個(gè)交易活動(dòng)。因此整個(gè)系統(tǒng)模型可以表述為圖2-1設(shè)計(jì)時(shí)需要將營(yíng)業(yè)部系統(tǒng)所使用的各種信息分為描述四個(gè)對(duì)象的信息和描述業(yè)務(wù)流程的信息。由于四個(gè)對(duì)象相對(duì)而言是一種穩(wěn)定型信息,而業(yè)務(wù)流程則較易變化,且營(yíng)業(yè)部之間差異很大,因此應(yīng)將四個(gè)對(duì)象盡量定型,而將各種業(yè)務(wù)流程盡可能做成組件,以便營(yíng)業(yè)部可根據(jù)實(shí)際需求組裝成適合自己的系統(tǒng)。根據(jù)以上思想,在設(shè)計(jì)對(duì)象模型時(shí)應(yīng)充分考慮到可擴(kuò)展性,盡量做到抽象化、參數(shù)化,從而使對(duì)象需求變化時(shí)不致影響系統(tǒng)結(jié)構(gòu)。 圖 2.12.4 結(jié)構(gòu)用一覽表及框圖的形式說(shuō)明本系統(tǒng)的系統(tǒng)元素(各層模塊、子程序、公用程序等)的劃分,扼要說(shuō)明每個(gè)系統(tǒng)元素的標(biāo)識(shí)符和功能,分層次地給出各元素之間的控制與被控制關(guān)系。本系統(tǒng)采用c/s模式的3層結(jié)構(gòu)按照不同會(huì)話來(lái)劃分的話可以分為3大系統(tǒng)模塊局域網(wǎng)數(shù)據(jù)庫(kù)柜臺(tái)管理查詢管理報(bào)表管理資金管理數(shù)據(jù)轉(zhuǎn)換銀證轉(zhuǎn)賬委托服務(wù)日終管理系統(tǒng)管理系統(tǒng)監(jiān)控接口處理子系統(tǒng)系統(tǒng)維護(hù)子系統(tǒng)圖2-2 交易系統(tǒng)體系結(jié)構(gòu)客戶端登陸模塊:最關(guān)鍵的交易系統(tǒng)模塊結(jié)構(gòu)圖如下:股票信息發(fā)布經(jīng)過(guò)修改我認(rèn)為每次由客戶端每5秒去查詢一次服務(wù)器更新信息不可取,因?yàn)檫@會(huì)加重服務(wù)端和客戶端的負(fù)擔(dān),特別是服務(wù)器端的運(yùn)算。修改后實(shí)現(xiàn)變更為:用戶一開(kāi)始登陸后獲得一次服務(wù)器的全部股票當(dāng)前信息。而服務(wù)器端每次發(fā)生交易后,給每一個(gè)在線用戶發(fā)送當(dāng)前交易需要更新的股票信息,這樣就減輕了客戶機(jī)和服務(wù)端的信息2.5 功能需求與程序的關(guān)系(該關(guān)系由需求分析報(bào)告編寫(xiě)者根據(jù)結(jié)構(gòu)圖說(shuō)明)本條用一張如下的矩陣圖說(shuō)明各項(xiàng)功能需求的實(shí)現(xiàn)同各塊程序的分配關(guān)系:獲取并發(fā)送用戶請(qǐng)求繪制分時(shí)圖MD5加密解密發(fā)送用戶交易請(qǐng)求接受并識(shí)別用戶請(qǐng)求調(diào)用數(shù)據(jù)層查詢撮合交易服務(wù)器返回客戶端信息用戶登陸查看用戶持倉(cāng)實(shí)時(shí)指數(shù)交易委托取消交易2.6 人工處理過(guò)程說(shuō)明在本軟件系統(tǒng)的工作過(guò)程中不得不包含的人工處理過(guò)程(如果有的話)。沒(méi)有完成股票管理的模塊設(shè)計(jì),所以股票必須從數(shù)據(jù)庫(kù)后臺(tái)添加如果有新股發(fā)行,還必須添加有關(guān)股票的交易隊(duì)列2.7 尚未解決的問(wèn)題說(shuō)明在概要設(shè)計(jì)過(guò)程中尚未解決而設(shè)計(jì)者認(rèn)為在系統(tǒng)完成之前必須解決的各個(gè)問(wèn)題。3 接口設(shè)計(jì)3.1 用戶接口說(shuō)明將向用戶提供的命令和它們的語(yǔ)法結(jié)構(gòu),以及軟件的回答信息。向用戶提供簡(jiǎn)單易用的UI,以及幫助文檔??蛻舳藢⑻峁┮韵鹿δ苁紫葟棾鲇脩舻顷懣颍┯脩糨斎胗脩裘兔艽a菜單項(xiàng)提供個(gè)股查詢和分時(shí)圖按鈕菜單欄下是選項(xiàng)卡,提供股票實(shí)時(shí)信息和個(gè)股分時(shí)圖欄 提供用戶交易界面和交易按鈕以及查看用戶盈虧按鍵3.2 外部接口說(shuō)明本系統(tǒng)同外界的所有接口的安排包括軟件與硬件之間的接口、本系統(tǒng)與各支持軟件之間的接口關(guān)系。采用基于正確公開(kāi)標(biāo)準(zhǔn)的部件和技術(shù)以確保最大限度的協(xié)作能力以及與第三方系統(tǒng)與部件集成的簡(jiǎn)便性。這類標(biāo)準(zhǔn)包括但不限于以下幾種: 網(wǎng)絡(luò)協(xié)議與標(biāo)準(zhǔn) (TCP/IP, HTTP, SSL, etc) 語(yǔ)言(SQL, C#.net, etc.) 數(shù)據(jù)庫(kù)連接性(ADO。net)3.3 內(nèi)部接口說(shuō)明本系統(tǒng)之內(nèi)的各個(gè)系統(tǒng)元素之間的接口的安排。邏輯層和數(shù)據(jù)訪問(wèn)層通過(guò)以經(jīng)的stockDataModel接口,來(lái)限定訪問(wèn)stockData類型的數(shù)據(jù)客戶端通過(guò)調(diào)用buyStock(stockData)和sellStock(stockData)來(lái)訪問(wèn)邏輯層,在這個(gè)函數(shù)中包含了訪問(wèn)邏輯層的接口dealTransaction(stockData) 通過(guò)AdoFactory訪問(wèn)不同的數(shù)據(jù)庫(kù)客戶端登陸協(xié)議D(二字節(jié))+(客戶名字長(zhǎng)度)(4字節(jié))+(客戶名字)+(客戶密碼長(zhǎng)度)(4字節(jié))+(客戶密碼);客戶買(mǎi)賣(mài)協(xié)議B(二字節(jié))+(股票ID)(4字節(jié))+(股票數(shù)量)(4字節(jié))S(二字節(jié))+(股票ID)(4字節(jié))+(股票數(shù)量)(4字節(jié))查詢交易信息并返回給客戶端C(二字節(jié))具體有拆包解包的類using System;using System.Collections.Generic;using System.Text;namespace ProjectCenterTradingSys public class Protocal private byte messagebuffer; private byte messagelength; public byte messagebag; /該函數(shù)是將字符串轉(zhuǎn)換為字節(jié)數(shù)組 public byte StringtoByte(string stringInfo) messagebuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(stringInfo); return messagebuffer; /該函數(shù)將整型轉(zhuǎn)換為個(gè)字節(jié) public byte InttoByte(int number) messagelength=BitConverter.GetBytes(number); return messagelength; /將浮點(diǎn)型轉(zhuǎn)換為個(gè)字節(jié) public byte DoubletoByte(double price) byte pricebyte = BitConverter.GetBytes(price); return pricebyte; /合并一個(gè)字符串(字節(jié)數(shù)組)和他的長(zhǎng)度作為一個(gè)包 public byte Combinarray(byte messle, byte messinfo) messagebag=new bytemessle.Length+messinfo.Length; int index; for (index = 0; index messle.Length; index+) messagebagindex = messagelengthindex; for (int index1 = 0; index1 newlist.price,利用插入排序?qū)ewlist插入到買(mǎi)隊(duì)列BuyQueue中,轉(zhuǎn)1; 3.) if SellQueue0.countnewlist.count,newlist完全撮合,SellQueue0.countSellQueue0.countnewlist.count,轉(zhuǎn)2;4.) if SellQueue0.count=newlist.count,SellQueue0撮合,并將SellQueue0從SellQueue隊(duì)列中刪除,newlist.count=newlist.count-SellQueue0.count,轉(zhuǎn)2; 5.) 取買(mǎi)單隊(duì)列頭BuyQueue0,if BuyQueue0.pricenewlist.count,newlist完全撮合,BuyQueue0.countBuyQueue0.countnewlist.count,轉(zhuǎn)1;7.) if BuyQueue0.count=newlist.count,BuyQueue0撮合, 并將BuyQueue0從BuyQueue隊(duì)列中刪除, newlist.count=newlist.count-BuyQueue0.count,轉(zhuǎn)5; 如下面流程圖5.2.2所示: 圖.2 集合競(jìng)價(jià)集合競(jìng)價(jià)是指對(duì)所有有效委托進(jìn)行集中處理,深、滬兩市的集合競(jìng)價(jià)時(shí)間為交易日上午9:15至9:25。集合競(jìng)價(jià)原則: 凡是高于開(kāi)盤(pán)價(jià)的買(mǎi)單一定成交; 凡是低于開(kāi)盤(pán)價(jià)的賣(mài)單一定成交; 凡是高于開(kāi)盤(pán)價(jià)的賣(mài)單一定不成交; 凡是低于開(kāi)盤(pán)價(jià)的買(mǎi)單一定不成交;集合競(jìng)價(jià)分四步完成: 第一步:確定有效委托在有漲跌幅限制的情況下,有效委托是這樣確定的: 根據(jù)該只證券上一交易日收盤(pán)價(jià)以及確定的漲跌幅度來(lái)計(jì)算當(dāng)日的最高限價(jià)、 最低限價(jià)。有效價(jià)格范圍就是該只證券最高限價(jià)、最低限價(jià)之間的所有價(jià)位。 限價(jià)超出此范圍的委托為無(wú)效委托,系統(tǒng)作自動(dòng)撤單處理。 第二步:系統(tǒng)根據(jù)競(jìng)價(jià)規(guī)則自動(dòng)確定集合競(jìng)價(jià)的成交價(jià),這個(gè)價(jià)格就是當(dāng)日的開(kāi)盤(pán)價(jià), 所有高于開(kāi)盤(pán)價(jià)的買(mǎi)盤(pán)和所有低開(kāi)開(kāi)盤(pán)價(jià)的賣(mài)盤(pán)均以此價(jià)格成交, 集合競(jìng)價(jià)的成交價(jià)確定原則是:以此價(jià)格成交,能夠得到最大成交量。 第三步:集中撮合處理所有的買(mǎi)委托按照委托限價(jià)由高到低的順序排列, 限價(jià)相同者按照進(jìn)入系統(tǒng)的時(shí)間先后排列;所有賣(mài)委托按委托限價(jià)由低到高的順序排列 , 限價(jià)相同者按照進(jìn)入系統(tǒng)的時(shí)間先后排列。依序逐筆將排在前面的買(mǎi)委托與賣(mài)委托配對(duì)成交,即按照價(jià)格優(yōu)先,同等價(jià)格下時(shí)間優(yōu)先的成交順序依次成交,直至成交條件不滿足為止,即不存在限價(jià)高于等于成交價(jià)的叫買(mǎi)委托、或不存在限價(jià)低于等于成交價(jià)的叫賣(mài)委托。 所有成交都以同一成交價(jià)成交。 這同一成交價(jià)成交的買(mǎi)賣(mài)單一般量都是很大的,如圖3.2.3所示圖3.2.3所示第四步:行情揭示:1.) 如該只證券的成交量為零,則將成交價(jià)位揭示為開(kāi)盤(pán)價(jià)、最近成交價(jià)、最高價(jià)、最低價(jià),并揭示出成交量、成交金額。2.) 剩余有效委托中,實(shí)際的最高叫買(mǎi)價(jià)揭示為叫買(mǎi)揭示價(jià),若最高叫買(mǎi)價(jià)不存在,則叫買(mǎi)揭示價(jià)揭示為空;實(shí)際的最低叫賣(mài)價(jià)揭示為叫賣(mài)揭示價(jià),若最低叫賣(mài)價(jià)不存在,則叫賣(mài)揭示價(jià)揭示為空。 集合競(jìng)價(jià)中未能成交的委托,自動(dòng)進(jìn)入連續(xù)競(jìng)價(jià)。按照這樣的原則和要求,我們?cè)O(shè)計(jì)了如下的集合競(jìng)價(jià)撮合算法。如圖3.2.4所示。 圖3.2.4集合競(jìng)價(jià)算法描述:和連續(xù)競(jìng)價(jià)一樣,首先設(shè)定QueueStruct結(jié)構(gòu)為元素的買(mǎi)賣(mài)兩個(gè)隊(duì)列BuyQueue和SellQueue。為了盡可能的提高效率,減少資源占用,我們用靜態(tài)數(shù)組構(gòu)建這兩個(gè)隊(duì)列。其中BuyQueue是時(shí)間優(yōu)先、買(mǎi)價(jià)降序排序,而SellQueue是時(shí)間優(yōu)先、賣(mài)價(jià)升序排序。在開(kāi)市到開(kāi)盤(pán)這段時(shí)間內(nèi),買(mǎi)賣(mài)單已經(jīng)分別進(jìn)入了買(mǎi)賣(mài)隊(duì)列內(nèi)排好了序。一旦宣布開(kāi)盤(pán),則觸發(fā)集合撮合,如下: 判斷兩隊(duì)列是否都不為空,如是,轉(zhuǎn)2;如否,轉(zhuǎn)21; 判斷BuyQueue0.prince與SellQueue0.prince之差,如大于等于0,轉(zhuǎn)3:如小于0,轉(zhuǎn)21; 定義int i=j=0;M、N分別為買(mǎi)賣(mài)兩隊(duì)列非空元素的個(gè)數(shù);BOOL k;QueueStruct Buy=BuyQueue0;Sell=SellQueue0;Buy1;Sell1;轉(zhuǎn)4; 判斷BuyQueuei.prince與SellQueuej.prince之差,如大于等于0,轉(zhuǎn)5:如小于0,轉(zhuǎn)14; 判斷Buy.count與Sell.count之差,如大于0,轉(zhuǎn)6;如小于等于0,轉(zhuǎn)9; j+; k=true; Sell1.count=Sell.count;Sell.count=Sell.count+SellQueueiSellQueue.count;轉(zhuǎn)7; 判斷j是否小于N,如是,轉(zhuǎn)4;如不是,轉(zhuǎn)8; 開(kāi)盤(pán)價(jià)為BuyQueuei.price;總成交量為Sell.count;統(tǒng)計(jì)成交數(shù)據(jù)及回報(bào),并返回; i+;k=false; Buy1.count=Buy.count;Buy.count=Buy.count+BuyQueuei.count;轉(zhuǎn)10; 判斷i是否小于M,如是,轉(zhuǎn)4;如不是,轉(zhuǎn)11; 判斷Buy.count與Sell.count之差,如小于0,轉(zhuǎn)12;如等于0,轉(zhuǎn)13; 開(kāi)盤(pán)價(jià)為SellQueuej.price;總成交量為Buy.count;統(tǒng)計(jì)成交數(shù)據(jù)及回報(bào),并返回; 開(kāi)盤(pán)價(jià)為(SellQueuej.price+BuyQueuei-1.price)/2;總成交量為sell.count;統(tǒng)計(jì)成交數(shù)據(jù)及回報(bào),并返回; 判斷k值,如為true,轉(zhuǎn)15;如為false,轉(zhuǎn)18; 判斷Buy1.count與Sell1.count之差,如大于0,轉(zhuǎn)16;如小于0,轉(zhuǎn)17; 開(kāi)盤(pán)價(jià)為BuyQueuei.price;總成交量為Sell1.count;統(tǒng)計(jì)成交數(shù)據(jù)及回報(bào),并返回; 開(kāi)盤(pán)價(jià)為(SellQueuej-1.price+BuyQueuei-1.price)/2;總成交量為Sell1.count;統(tǒng)計(jì)成交數(shù)據(jù)及回報(bào),并返回; 判斷Buy1.count與Sell.count之差,如小于0,轉(zhuǎn)19;如等于0,轉(zhuǎn)20; 開(kāi)盤(pán)價(jià)為SellQueuej.price;總成交量為Buy1.count;統(tǒng)計(jì)成交數(shù)據(jù)及回報(bào),并返回; 開(kāi)盤(pán)價(jià)為(SellQueuej.price+BuyQueuei-1.price)/2;總成交量為Buy1.count;統(tǒng)計(jì)成交數(shù)據(jù)及回報(bào),并返回; 開(kāi)盤(pán)價(jià)為昨日收盤(pán)價(jià),成交量為0;保留所有數(shù)據(jù)至開(kāi)盤(pán)進(jìn)入連續(xù)競(jìng)價(jià)撮合;5.2.3 買(mǎi)賣(mài)隊(duì)列排序上面我們介紹了撮合算法的核心部分,但實(shí)際上在撮合前后都要對(duì)兩個(gè)買(mǎi)賣(mài)隊(duì)列進(jìn)行一定的插入和排列處理,這在整個(gè)算法中也是很重要的部分。下面我們就來(lái)具體介紹一下。對(duì)所有的排列和插入我們考慮了效率問(wèn)題之后,最后統(tǒng)一使用了二分插入排序法。在單子進(jìn)入隊(duì)列時(shí),我們首先統(tǒng)計(jì)出當(dāng)前隊(duì)列中的非空數(shù)據(jù)個(gè)數(shù),然后再通過(guò)新單子與當(dāng)前隊(duì)列中間值的價(jià)格比較,確定新單子在隊(duì)列的前半部分還是后半部分,然后再取該區(qū)域中間值與之比較,直到確定新單子應(yīng)在的位置。如下列代碼所示:int low=0; int high=N-1; /N為隊(duì)列中非空元素的個(gè)數(shù)while(lowprice=high+1; -i)SellQueuei+1=SellQueuei; SellQueuehigh+1=*newlist;這是賣(mài)隊(duì)列的排序,對(duì)于買(mǎi)隊(duì)列的排序與之相似,只是價(jià)格排列是由高到底。在這里不再贅述。這種插入排序方法完全符合了撮合算法中價(jià)格優(yōu)先、時(shí)間優(yōu)先的要求,而且效率也是比較高的。在集合競(jìng)價(jià)前和連續(xù)競(jìng)價(jià)后進(jìn)行的插入排序都是這樣進(jìn)行的,而在集合競(jìng)價(jià)撮合之后,對(duì)兩隊(duì)列的重新排列,我們首先使用了memset函數(shù)將前面已全部成交的t個(gè)元素清空,然后將t到N(原總非空元素個(gè)數(shù))前移t位。如下列代碼所示:for (int p=0; *t *N; p+,*t+)QueueStruct temp;temp=Queue*t;Queue*t=Queuep;Queuep=temp;5.2.4 撮合算法的運(yùn)行機(jī)制在交易所正常運(yùn)行時(shí),一天內(nèi)分為開(kāi)市、開(kāi)盤(pán)、休市、復(fù)開(kāi)、收市等5個(gè)步驟。開(kāi)市:每天上午9:15開(kāi)市。這時(shí)候,股民可以通過(guò)券商向交易所遞單。同一只股票的買(mǎi)賣(mài)單開(kāi)始分別進(jìn)入這只股票的買(mǎi)賣(mài)隊(duì)列中,但并不進(jìn)行撮合。該過(guò)程一直持續(xù)到9:25。開(kāi)盤(pán):每天上午9:30正式開(kāi)盤(pán)。9:25-9:30為盤(pán)前處理,這段時(shí)間也就是集合競(jìng)價(jià)撮合算法運(yùn)行的時(shí)間。9:25,買(mǎi)賣(mài)兩隊(duì)列開(kāi)市不再接收新的單子。新的單子這時(shí)都放在緩沖區(qū)中,直到兩隊(duì)列運(yùn)行完整個(gè)集合競(jìng)價(jià)算法后開(kāi)市重新進(jìn)單時(shí),再依序?qū)巫訌木彺鎱^(qū)取出讀入買(mǎi)賣(mài)隊(duì)列進(jìn)行連續(xù)競(jìng)價(jià)的撮合。買(mǎi)賣(mài)隊(duì)列于9:25開(kāi)始集合競(jìng)價(jià),運(yùn)算完畢,得出開(kāi)盤(pán)價(jià)等所有統(tǒng)計(jì)數(shù)據(jù)并發(fā)布行情以及發(fā)送完所有回報(bào)之后,重新接收單子進(jìn)入該日正常交易中,使用連續(xù)競(jìng)價(jià)算法進(jìn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年八年級(jí)政治上冊(cè) 第一單元 讓愛(ài)駐我家 第一課 相親相愛(ài)一家人 第一框 家溫馨的港灣說(shuō)課稿 魯教版
- 11《產(chǎn)生泡泡的秘密》說(shuō)課稿-2024-2025學(xué)年科學(xué)五年級(jí)上冊(cè)粵教科技版001
- 割灌機(jī)項(xiàng)目融資渠道探索
- 6《光的反射現(xiàn)象》說(shuō)課稿 -2024-2025學(xué)年科學(xué)五年級(jí)上冊(cè)教科版
- 10父母多愛(ài)我-多一些理解(第2課時(shí))(說(shuō)課稿)2023-2024學(xué)年統(tǒng)編版道德與法治三年級(jí)上冊(cè)
- 2025航次租船合同金康格式船舶租賃專用范本3篇
- 2025年度企業(yè)信用貸款分期還款協(xié)議書(shū)3篇
- 2024-2025學(xué)年新教材高中政治 第2單元 世界多極化 第4課 第2框 挑戰(zhàn)與應(yīng)對(duì)說(shuō)課稿 新人教版選擇性必修1
- 16《朱德的扁擔(dān)》說(shuō)課稿-2024-2025學(xué)年二年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版(五四制)
- 二零二五年度裝配式建筑外立面石材干掛鋁板施工安裝協(xié)議
- 服裝標(biāo)準(zhǔn)流水生產(chǎn)線
- 2024年內(nèi)蒙古電力集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 保潔服務(wù)品質(zhì)履約評(píng)估報(bào)告
- 火龍罐綜合灸療法
- 紅色中國(guó)風(fēng)西安旅游PPT模板
- 皮內(nèi)注射技術(shù)操作考核評(píng)分標(biāo)準(zhǔn)
- 個(gè)人借條電子版模板
- 工業(yè)企業(yè)電源快速切換裝置設(shè)計(jì)配置導(dǎo)則
- 年產(chǎn)3萬(wàn)噸噴氣紡、3萬(wàn)噸氣流紡生產(chǎn)線項(xiàng)目節(jié)能評(píng)估報(bào)告
- GB/T 1094.1-2013電力變壓器第1部分:總則
- 胸外科診療指南和操作規(guī)范
評(píng)論
0/150
提交評(píng)論