摘 要: 采用工程化設(shè)計(jì)方法,完成了證券交易模擬系統(tǒng)應(yīng)用程序和數(shù)據(jù)庫(kù)的開(kāi)發(fā),實(shí)現(xiàn)了對(duì)證券交易過(guò)程完全真實(shí)的模擬。實(shí)踐證明,本系統(tǒng)運(yùn)行狀態(tài)良好,提高了投資者對(duì)于證券交易的研究分析和決策能力。
關(guān)鍵詞:模擬;證券交易;數(shù)據(jù)庫(kù)
隨著證券市場(chǎng)的迅速發(fā)展,越來(lái)越多的人投身于證券市場(chǎng)。然而,很多進(jìn)入證券市場(chǎng)的投資者具有一定的盲目性,尤其是2006年至2007年,隨著證券市場(chǎng)牛市行情的發(fā)展,大量對(duì)證券市場(chǎng)一無(wú)所知或一知半解的投資者涌入證券市場(chǎng)。他們只看到了證券市場(chǎng)可能獲得的較高利潤(rùn),卻忽視了證券市場(chǎng)存在的風(fēng)險(xiǎn)。為此,中國(guó)證監(jiān)會(huì)也曾不止一次地讓證券公司加強(qiáng)投資者風(fēng)險(xiǎn)教育,但由于大量的投資者對(duì)證券交易的規(guī)則不了解,對(duì)自己投資證券所承擔(dān)的費(fèi)用(如傭金、印花稅等)不太清楚,且沒(méi)有切身的投資獲利或損失體驗(yàn),風(fēng)險(xiǎn)教育往往達(dá)不到預(yù)期的效果。因此投資者需要一個(gè)仿真的環(huán)境去學(xué)習(xí)體驗(yàn)。同時(shí),投資者也需要使用一些證券投資分析方法對(duì)證券進(jìn)行選擇,需要一個(gè)模擬交易環(huán)境來(lái)驗(yàn)證自己的分析方法,以提升投資分析能力。
綜上所述,證券公司需要建立一個(gè)證券交易模擬環(huán)境來(lái)滿足投資者的需求,以達(dá)到為客戶提供更好服務(wù)的目的。本系統(tǒng)采用Microsoft 公司的Visual FoxPro 6.0做為開(kāi)發(fā)工具,完成了證券模擬交易系統(tǒng)應(yīng)用程序和數(shù)據(jù)庫(kù)的開(kāi)發(fā)。在本系統(tǒng)中,模擬者能夠完成與證券市場(chǎng)盡可能相同的實(shí)時(shí)性操作,如證券交易、資金查詢、證券查詢、盈虧分析、階段性投資分析等功能;同時(shí),如使用管理員身份登錄本系統(tǒng),除可查詢普通模擬者的交易數(shù)據(jù)外,還具有開(kāi)戶、系統(tǒng)參數(shù)設(shè)置、交易參數(shù)設(shè)置、結(jié)息等功能。本系統(tǒng)的核心之一是證券買(mǎi)賣(mài)、資金變動(dòng)、證券變動(dòng)三者之間的聯(lián)系,每一個(gè)表的修改都將聯(lián)動(dòng)地影響其他的表,當(dāng)證券交易完成后,系統(tǒng)會(huì)自動(dòng)地完成相關(guān)表的修改;本系統(tǒng)的另一核心是查詢、盈虧分析、投資分析功能,通過(guò)對(duì)這些數(shù)據(jù)的查詢,模擬者可清楚地得到自己在這段時(shí)間內(nèi)的投資結(jié)果。
1 可行性分析及系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)
證券公司營(yíng)業(yè)部的交易網(wǎng)絡(luò)是一個(gè)相對(duì)特殊的網(wǎng)絡(luò),證券公司從交易所接收來(lái)的實(shí)時(shí)行情數(shù)據(jù)被存在一臺(tái)有NOVELL操作系統(tǒng)的服務(wù)器上,客戶端通過(guò)對(duì)NOVELL服務(wù)器的登錄,完成對(duì)該服務(wù)器存放文件的共享訪問(wèn)。而交易所傳來(lái)的實(shí)時(shí)行情文件,是以Visual FoxPro早期版本的表文件(DBF文件)格式存放,Visual FoxPro 6.0對(duì)此有較好的支持。同時(shí)由于Visual FoxPro 6.0對(duì)數(shù)據(jù)庫(kù)的共享或獨(dú)占訪問(wèn)有非常完善的機(jī)制,故非常適合這種以本地表文件(或通過(guò)目錄映射訪問(wèn)文件服務(wù)器)為基礎(chǔ)的程序開(kāi)發(fā)。本系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

2 系統(tǒng)功能模塊劃分
為完成系統(tǒng)必備的功能,證券交易模擬系統(tǒng)由以下模塊構(gòu)成。
2.1 登錄模塊
該系統(tǒng)設(shè)計(jì)了一個(gè)登錄代碼為“0000”的管理員,如模擬者以其代碼登錄,則出現(xiàn)的是該模擬者的模板操作界面。管理員的操作功能有:查詢其他模擬者的資金流水、證券流水、資金證券余額、盈虧分析、排名情況等,同時(shí)還有系統(tǒng)設(shè)置、管理的一些功能。普通模擬者的操作功能有:證券買(mǎi)賣(mài),查詢自己的資金流水、證券流水、資金證券余額、盈虧分析、排名情況等。
登錄模塊位于表單集中的一個(gè)單獨(dú)表單,當(dāng)模擬者登錄時(shí),由該模塊完成用戶密碼校驗(yàn),同時(shí)根據(jù)實(shí)時(shí)行情庫(kù)生成快速查詢表。
2.2 交易模塊
根據(jù)滬深交易所交易規(guī)則,建立如圖2和圖3所示交易流程圖。


該模塊完成模擬交易的買(mǎi)入與賣(mài)出功能,同時(shí),在輸入證券代碼的過(guò)程中,彈出證券快速查詢框,可快速定位在交易的證券,當(dāng)確定證券代碼后,頁(yè)面顯示實(shí)時(shí)行情,同時(shí)顯示可買(mǎi)數(shù)量、可賣(mài)數(shù)量等交易要素,方便操作。該模塊不支持管理員身份登錄。運(yùn)行界面如圖4所示。

查詢功能完成對(duì)模擬者指定條件內(nèi)的資金流水和證券流水,以及截止查詢時(shí)的余額、明細(xì)匯總、盈虧一覽、獲利排名等。如以管理員身份登錄,可選擇查詢不同的模擬者,運(yùn)行界面如圖5所示。

2.3 綜合分析模塊
該模塊完成兩項(xiàng)功能,一是資金明細(xì)匯總,可顯示出模擬者開(kāi)戶以來(lái)的所有資金匯總項(xiàng),如資金共存入、資金共取出、前臺(tái)費(fèi)支出,后臺(tái)費(fèi)用支出、利息、獲利等項(xiàng)目;二是盈虧一覽表,可顯示出自開(kāi)戶以來(lái)各證券的交易盈利情況。運(yùn)行界面如圖6所示。

2.4 系統(tǒng)設(shè)置模塊
該模塊完成對(duì)系統(tǒng)的綜合設(shè)置,如行情庫(kù)路徑、交易數(shù)據(jù)存放路徑、前后臺(tái)費(fèi)用設(shè)置以及開(kāi)戶、資金存取、結(jié)息等功能。本模塊只有管理員有此權(quán)限。運(yùn)行界面如圖7所示。

2.5其他
該模塊完成修改密碼、查詢獲利排名、重新登錄等功能。運(yùn)行界面如圖8所示。

3 數(shù)據(jù)庫(kù)設(shè)計(jì)
綜合系統(tǒng)功能模塊劃分,需設(shè)計(jì)客戶表 (cust.dbf),該表用于存放模擬者的基本信息,包括開(kāi)銷戶日期、狀態(tài)、密碼等,其結(jié)構(gòu)如表1所示。

另外還有用于存放資金流水的資金表 (fund.dbf),用于存放證券持倉(cāng)的證券表 (stock.dbf),用于進(jìn)行系統(tǒng)配置的配置表(config.dbf,sfk.dbf),用于界定交易類別與收費(fèi)名稱對(duì)應(yīng)關(guān)系的交易類別表(jylbmc.dbf),用于計(jì)算某證券在交易周期內(nèi)證券變動(dòng)情況的證券變動(dòng)表(stkchg.dbf)、由滬深交易所行情庫(kù)生成、用于買(mǎi)賣(mài)時(shí)快速輸入或選擇證券代碼的證券代碼表(codename.dbf),以及一些用于查詢或分析模擬者模擬交易情況的臨時(shí)表。由于篇幅有限,以上表結(jié)構(gòu)從略。
4 系統(tǒng)應(yīng)用程序設(shè)計(jì)
本系統(tǒng)由一個(gè)主程序、一個(gè)獨(dú)立表單、一個(gè)表單集、一個(gè)圖標(biāo)文件組成。主程序(main.prg)用于設(shè)置系統(tǒng)環(huán)境、公共變量以及表單調(diào)用,程序如下:
application.visible=.f.
release all
public jys_xz
jys_xz=''
do form code name mnrs2 linked
read events
do form mnrs name mnrs1 linked
read events
release events
由于篇幅有限,對(duì)于生成證券快速查詢表單(code)及表單集formset(mncg)程序說(shuō)明從略,至此,證券交易模擬系統(tǒng)設(shè)計(jì)完成。經(jīng)系統(tǒng)測(cè)試,能夠滿足預(yù)定性能,效果良好。
本系統(tǒng)符合A股、基金等的交易規(guī)則,如T+1交割、費(fèi)用收取規(guī)則等,可有效模擬出真實(shí)交易的情況,同時(shí)也有利于提高模擬者的證券投資水平。由于本系統(tǒng)設(shè)計(jì)為在證券公司使用,故在買(mǎi)賣(mài)交易時(shí),證券價(jià)格是由系統(tǒng)自動(dòng)從實(shí)時(shí)行情庫(kù)中提取,從而能更好地避免了對(duì)價(jià)格的人為干預(yù),提升了模擬交易的真實(shí)性。
由于證券市場(chǎng)交易品種很多,每個(gè)交易品種交易規(guī)則不盡相同,故本次只選擇了最為普遍的A股、基金等交易品種做為本次系統(tǒng)開(kāi)發(fā)的重點(diǎn)。本系統(tǒng)不支持證券的分紅送配等非實(shí)時(shí)交易性的功能。
參考文獻(xiàn)
[1] Microsoft Corporation.Visual FoxPro 6.0中文版語(yǔ)言參考手冊(cè)[M].北京:希望圖書(shū)創(chuàng)作室,1998.
[2] 譚浩強(qiáng).Visual FoxPro 數(shù)據(jù)庫(kù)實(shí)用技術(shù)[M].北京:中國(guó)鐵道出版社計(jì)算機(jī)圖書(shū)中心,2007.
[3] 丁寶康.數(shù)據(jù)庫(kù)原理[M].北京:經(jīng)濟(jì)科學(xué)出版社,2000.
[4] 陸麗娜.軟件工程[M].北京:經(jīng)濟(jì)科學(xué)出版社,2000.
