本發(fā)明涉及交易系統(tǒng)領(lǐng)域,尤其是涉及對(duì)于構(gòu)建專(zhuān)業(yè)化的自動(dòng)化交易系統(tǒng)和交易方法,具體地說(shuō),是一種具有便捷和功能全面的系統(tǒng)平臺(tái)的證券程序化交易系統(tǒng)。
背景技術(shù):
隨著技術(shù)的進(jìn)步,證券交易已經(jīng)開(kāi)始從人工操作往程序化、智能化、自動(dòng)化的方向發(fā)展,程序化交易有著人工交易不能比擬的優(yōu)勢(shì),可以擺脫人類(lèi)情緒對(duì)交易的影響,不受人的體能精力限制,能夠快速處理大量的數(shù)據(jù),在短時(shí)間內(nèi)作出決策,因此,越來(lái)越多的機(jī)構(gòu)以及個(gè)人投資者開(kāi)始尋求能夠滿足其要求的程序化交易系統(tǒng)。
目前的程序化交易系統(tǒng),普遍不支持證券數(shù)據(jù)跨周期、跨品種的獲取,對(duì)新出現(xiàn)的一些算法不能很好的支持,如人工智能、神經(jīng)網(wǎng)絡(luò)等,而個(gè)別的專(zhuān)業(yè)程序化交易系統(tǒng),又不能靈活的支持功能變更,缺乏平臺(tái)化的特質(zhì),這也是程序化交易發(fā)展的一個(gè)障礙。
現(xiàn)有證券交易系統(tǒng)存在如下技術(shù)問(wèn)題:
一、不支持證券數(shù)據(jù)跨周期、跨品種的獲取;二、不支持新出現(xiàn)的算法,如人工智能、神經(jīng)網(wǎng)絡(luò)等;三、不能靈活的支持功能變更,缺乏平臺(tái)化的特質(zhì);四,不支持程序化交易策略的云端服務(wù)器托管。
技術(shù)實(shí)現(xiàn)要素:
1、要解決的問(wèn)題
針對(duì)現(xiàn)有程序化交易系統(tǒng)平臺(tái)化能力不完善、無(wú)法提供交易策略的云端服務(wù)器托管的問(wèn)題,本發(fā)明提供一種證券程序化交易系統(tǒng),為交易者提供一個(gè)統(tǒng)一、通用的程序化交易平臺(tái),提供廣泛的底層接口支持,讓程序化交易開(kāi)發(fā)者只需要關(guān)注交易本身,降低進(jìn)入程序化交易的技術(shù)門(mén)檻。
2、技術(shù)方案
為解決上述問(wèn)題,本發(fā)明采用如下的技術(shù)方案。
一種證券程序化交易系統(tǒng),包括數(shù)據(jù)服務(wù)器、策略云端托管服務(wù)器和程序化交易終端,其中:
所述的數(shù)據(jù)服務(wù)器包括接入模塊、用戶(hù)鑒權(quán)模塊、數(shù)據(jù)庫(kù)和連接模塊;
所述的策略云端托管服務(wù)器包括策略執(zhí)行模塊;
所述的數(shù)據(jù)服務(wù)器通過(guò)所述的接入模塊與證券交易所連接;
所述的數(shù)據(jù)服務(wù)器通過(guò)所述的連接模塊與所述的策略云端托管服務(wù)器雙向連接;
所述的數(shù)據(jù)服務(wù)器通過(guò)所述的連接模塊與所述的程序化交易終端連接。
優(yōu)選地,所述的數(shù)據(jù)庫(kù)為mysql數(shù)據(jù)庫(kù)。
優(yōu)選地,所述的連接模塊通過(guò)epoll技術(shù)與所述的程序化交易終端連接。
一種證券程序化交易方法,通過(guò)以上所述的一種證券程序化交易系統(tǒng),包括如下步驟:
步驟1,啟動(dòng)數(shù)據(jù)服務(wù)器,數(shù)據(jù)服務(wù)器通過(guò)接入模塊從證券交易所獲取行情數(shù)據(jù),進(jìn)行數(shù)據(jù)合成,產(chǎn)生證券k線數(shù)據(jù),保存到mysql數(shù)據(jù)庫(kù),同時(shí)啟動(dòng)鑒權(quán)模塊開(kāi)始監(jiān)聽(tīng),經(jīng)負(fù)載均衡處理后,實(shí)施用戶(hù)鑒權(quán),鑒權(quán)失敗則直接關(guān)閉連接;鑒權(quán)成功則用戶(hù)準(zhǔn)入并接收用戶(hù)請(qǐng)求,對(duì)用戶(hù)請(qǐng)求進(jìn)行分析,若非法請(qǐng)求,則丟棄該用戶(hù)請(qǐng)求,若合法請(qǐng)求,則允許證券k線數(shù)據(jù)發(fā)送至程序化交易終端;
步驟2,如步驟1所述,程序化交易終端從數(shù)據(jù)服務(wù)器接收證券k線數(shù)據(jù),證券k線數(shù)據(jù)經(jīng)合約數(shù)據(jù)池進(jìn)入合約窗口;在合約窗口內(nèi)進(jìn)行窗口交互,通過(guò)交易腳本線程輸出數(shù)據(jù)經(jīng)結(jié)算確認(rèn)流程確認(rèn)后輸出交易指令;
步驟3,上述步驟2中輸出交易指令后,直接或者經(jīng)策略云端托管服務(wù)器發(fā)送至證券公司,交易結(jié)束。
優(yōu)選地,上述步驟1中證券k線數(shù)據(jù)發(fā)送后實(shí)施用戶(hù)退出及用戶(hù)失活檢測(cè),若檢測(cè)用戶(hù)退出或失活,則關(guān)閉連接。
優(yōu)選地,上述步驟2中合約窗口內(nèi)窗口交互及交易腳本線程輸出流程為:證券k線數(shù)據(jù)經(jīng)合約數(shù)據(jù)池首先實(shí)施合約數(shù)據(jù)讀取,讀取后分發(fā)給指標(biāo)腳本線程、數(shù)學(xué)計(jì)算腳本線程和交易腳本線程,其中指標(biāo)腳本線程、數(shù)學(xué)計(jì)算腳本線程接收數(shù)據(jù)后經(jīng)處理后通過(guò)窗口交互反饋至合約數(shù)據(jù)讀取模塊,實(shí)施合約數(shù)據(jù)讀取后分發(fā)給指標(biāo)腳本線程、數(shù)學(xué)計(jì)算腳本線程和交易腳本線程,如此循環(huán),該循環(huán)中交易腳本線程輸出數(shù)據(jù)。
優(yōu)選地,上述步驟3中策略云端托管服務(wù)器根據(jù)行情數(shù)據(jù),自動(dòng)執(zhí)行策略,產(chǎn)生交易指令,發(fā)送至證券公司。
3、有益效果
相比于現(xiàn)有技術(shù),本發(fā)明的有益效果為:
(1)本發(fā)明支持跨周期、跨品種的數(shù)據(jù)調(diào)用,可支持各種套利策略的程序化實(shí)現(xiàn),幫助交易者更好的控制交易風(fēng)險(xiǎn),并可以通過(guò)程序化策略自動(dòng)發(fā)現(xiàn)無(wú)風(fēng)險(xiǎn)套利的機(jī)會(huì);
(2)本發(fā)明支持多種數(shù)學(xué)算法,可以為策略開(kāi)發(fā)者提供更多的策略計(jì)算工具,助力開(kāi)發(fā)出更具盈利能力的交易策略,擴(kuò)展的交易策略的范圍;
(3)本發(fā)明提供通用的程序化交易平臺(tái),為程序化交易愛(ài)好者簡(jiǎn)化了程序化交易的進(jìn)入門(mén)檻,同時(shí)高標(biāo)準(zhǔn)的支持了程序化交易開(kāi)發(fā)的平臺(tái)能力,使得過(guò)去大型私募和基金才有財(cái)力做到的程序化交易能力,也為廣大的交易者提供了同等能力的程序化交易平臺(tái);
(4)本發(fā)明能夠?qū)崿F(xiàn)策略托管服務(wù)器,托管服務(wù)器的優(yōu)勢(shì)在于保證運(yùn)行的環(huán)境的穩(wěn)定可靠,現(xiàn)有技術(shù)的交易委托服務(wù)器不支持自動(dòng)執(zhí)行程序化的交易策略,只能在本地計(jì)算機(jī)執(zhí)行分析完程序化策略后,將交易指令托管到服務(wù)器,本發(fā)明將策略執(zhí)行模塊上移到托管服務(wù)器,交易者可以將程序化策略完全托管到服務(wù)器,從而徹底解決環(huán)境穩(wěn)定性問(wèn)題;
(5)本發(fā)明針對(duì)程序化交易,提供了一整套的解決方案,使得程序化交易平臺(tái)能力保證專(zhuān)業(yè)性水準(zhǔn)的前提下,大大降低了使用的技術(shù)進(jìn)入門(mén)檻。
附圖說(shuō)明
圖1為系統(tǒng)整體框架示意圖;
圖2為數(shù)據(jù)服務(wù)器架構(gòu)圖;
圖3為策略托管服務(wù)器架構(gòu)圖;
圖4為程序化交易平臺(tái)架構(gòu)圖;
圖5為數(shù)據(jù)服務(wù)器軟件流程圖;
圖6為策略云端托管服務(wù)器軟件流程圖;
圖7為程序化交易終端軟件流程圖。
圖中:100、證券交易所;200、證券公司;300、策略云端托管服務(wù)器;301、策略執(zhí)行模塊;400、程序化交易終端;500、數(shù)據(jù)服務(wù)器;501、接入模塊;502、用戶(hù)鑒權(quán)模塊;503、數(shù)據(jù)庫(kù);504、連接模塊。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)一步進(jìn)行描述。
實(shí)施例1
如圖1所示,一種證券程序化交易系統(tǒng),包括數(shù)據(jù)服務(wù)器500、策略云端托管服務(wù)器300和程序化交易終端400,其中:
如圖2所示,所述的數(shù)據(jù)服務(wù)器500包括通用服務(wù)器硬件、接入模塊501、用戶(hù)鑒權(quán)模塊502、數(shù)據(jù)庫(kù)503和連接模塊504;
如圖3所示,所述的策略云端托管服務(wù)器300包括通用服務(wù)器硬件和策略執(zhí)行模塊301;
如圖4所示,程序化交易終端400包括用戶(hù)控制硬件401和證券合約分析模塊402;
所述的數(shù)據(jù)服務(wù)器500通過(guò)所述的接入模塊501與證券交易所100連接;
所述的數(shù)據(jù)服務(wù)器500通過(guò)所述的連接模塊504與所述的策略云端托管服務(wù)器300雙向連接;
所述的數(shù)據(jù)服務(wù)器500通過(guò)所述的連接模塊504與所述的程序化交易終端400連接,以此作為程序化交易終端400的后臺(tái)支持設(shè)備;
所述的數(shù)據(jù)庫(kù)503為mysql數(shù)據(jù)庫(kù);
所述的連接模塊通過(guò)epoll技術(shù)與所述的程序化交易終端平臺(tái)連接。
一種證券程序化交易方法,包括如下步驟:
步驟1,啟動(dòng)數(shù)據(jù)服務(wù)器,如圖5所示,數(shù)據(jù)服務(wù)器通過(guò)接入模塊從證券交易所獲取行情數(shù)據(jù),進(jìn)行數(shù)據(jù)合成,產(chǎn)生證券k線數(shù)據(jù),保存到mysql數(shù)據(jù)庫(kù),同時(shí)啟動(dòng)鑒權(quán)模塊開(kāi)始監(jiān)聽(tīng),經(jīng)負(fù)載均衡處理后,實(shí)施用戶(hù)鑒權(quán),鑒權(quán)失敗則直接關(guān)閉連接;鑒權(quán)成功則用戶(hù)準(zhǔn)入并接收用戶(hù)請(qǐng)求,對(duì)用戶(hù)請(qǐng)求進(jìn)行分析,若非法請(qǐng)求,則丟棄該用戶(hù)請(qǐng)求,若合法請(qǐng)求,則允許證券k線數(shù)據(jù)發(fā)送至程序化交易終端;
證券k線數(shù)據(jù)發(fā)送后實(shí)施用戶(hù)退出及用戶(hù)失活檢測(cè),若檢測(cè)用戶(hù)退出或失活,則關(guān)閉連接;
本步驟中非法請(qǐng)求有兩類(lèi):一是網(wǎng)絡(luò)出現(xiàn)問(wèn)題,只接收到了部分請(qǐng)求數(shù)據(jù),無(wú)法解讀完整的請(qǐng)求命令;二是惡意攻擊,不符合系統(tǒng)設(shè)定的請(qǐng)求命令,可能會(huì)對(duì)系統(tǒng)造成危害;合法請(qǐng)求是指符合設(shè)計(jì)的請(qǐng)求命令,系統(tǒng)將會(huì)給予正確的回應(yīng);
本步驟中證券k線數(shù)據(jù)同時(shí)保存至mysql數(shù)據(jù)庫(kù);mysql數(shù)據(jù)作為通用開(kāi)源的數(shù)據(jù)庫(kù),可靠性功能性在全球已經(jīng)有大量的項(xiàng)目證明,本發(fā)明采用此數(shù)據(jù)庫(kù)構(gòu)建基本的數(shù)據(jù)保存方案,可最大限度保證用戶(hù)數(shù)據(jù)的安全;
本步驟中為支持大量程序化交易終端平臺(tái)的連接,連接模塊采用epoll技術(shù),其支持高并發(fā)大用戶(hù)量的連接,并采用epoll線程池分擔(dān)數(shù)據(jù)收發(fā)的壓力;
本實(shí)施例中接入模塊和鑒權(quán)模塊都是運(yùn)行在數(shù)據(jù)服務(wù)器上的專(zhuān)用軟件的算法模塊,其運(yùn)行流程如圖5所示,負(fù)責(zé)管理程序化交易平臺(tái)軟件的登陸接入,以及用戶(hù)權(quán)限的管理,包含用戶(hù)的數(shù)據(jù)安全,及服務(wù)的可靠性,其在數(shù)據(jù)服務(wù)器中的位置如圖2所示;
步驟2,如步驟1所述,程序化交易終端從數(shù)據(jù)服務(wù)器接收證券k線數(shù)據(jù),證券k線數(shù)據(jù)經(jīng)合約數(shù)據(jù)池進(jìn)入合約窗口;在合約窗口內(nèi)進(jìn)行窗口交互,通過(guò)交易腳本線程輸出數(shù)據(jù)經(jīng)結(jié)算確認(rèn)流程確認(rèn)后輸出交易指令,發(fā)送至證券公司200,交易結(jié)束;
本步驟中合約窗口內(nèi)窗口交互至交易腳本線程輸出流程如圖7所示,具體地,證券k線數(shù)據(jù)經(jīng)合約數(shù)據(jù)池首先實(shí)施合約數(shù)據(jù)讀取,讀取后分發(fā)給指標(biāo)腳本線程、數(shù)學(xué)計(jì)算腳本線程和交易腳本線程,其中指標(biāo)腳本線程、數(shù)學(xué)計(jì)算腳本線程接收數(shù)據(jù)后經(jīng)處理后通過(guò)窗口交互反饋至合約數(shù)據(jù)讀取模塊,實(shí)施合約數(shù)據(jù)讀取后分發(fā)給指標(biāo)腳本線程、數(shù)學(xué)計(jì)算腳本線程和交易腳本線程,如此循環(huán),該循環(huán)中交易腳本線程輸出數(shù)據(jù);
本步驟中確認(rèn)結(jié)算流程采用如圖7所示步驟;圖6和圖7程序化交易終端和托管服務(wù)器都包含了確認(rèn)結(jié)算流程,托管服務(wù)器作為程序化交易終端不可用時(shí)的可靠備份而存在,所以必須具備交易賬號(hào)登陸、策略運(yùn)算以及交易指令產(chǎn)生的完整功能,確認(rèn)結(jié)算的流程就是交易賬號(hào)跟證券公司的權(quán)限確認(rèn)過(guò)程,是交易登陸的具體執(zhí)行動(dòng)作。
本步驟中程序化交易終端平臺(tái)軟件的策略開(kāi)發(fā)環(huán)境采用lua語(yǔ)言,目前沒(méi)有其它方案采用此種語(yǔ)言,是“運(yùn)行在windows系統(tǒng)上的自動(dòng)交易軟件”,特點(diǎn)是“內(nèi)置面向?qū)ο蟮母呒?jí)腳本語(yǔ)言,支持各時(shí)間周期以及跨證券合約的數(shù)據(jù)讀取,支持動(dòng)態(tài)數(shù)組、鏈表、圖等數(shù)據(jù)結(jié)構(gòu)”。
實(shí)施例2
一種證券程序化交易方法,與實(shí)施例1基本相同,所不同的是,步驟2中,通過(guò)交易腳本線程輸出數(shù)據(jù)經(jīng)托管服務(wù)器接口發(fā)送至策略云端托管服務(wù)器300,由策略云端托管服務(wù)器300根據(jù)行情數(shù)據(jù),自動(dòng)執(zhí)行策略,產(chǎn)生交易指令,發(fā)送至證券公司200;
如圖6所示,本步驟中策略云端托管服務(wù)器接收并保存用戶(hù)策略至用戶(hù)策略線程池,在程序化交易終端關(guān)機(jī)、斷網(wǎng)、停電等情況下,在接收行情數(shù)據(jù)后可以自行選擇用戶(hù)策略,產(chǎn)生交易信號(hào),結(jié)算確認(rèn)流程確認(rèn)后輸出交易指令,發(fā)送至證券公司,交易結(jié)束。
普通托管服務(wù)器提供云端虛擬電腦服務(wù),本發(fā)明的策略托管服務(wù)器在此基礎(chǔ)上,將程序化交易平臺(tái)的策略執(zhí)行功能移植到服務(wù)器,用戶(hù)就可以將原本在本地執(zhí)行的程序化交易策略,上傳至托管服務(wù)器,自動(dòng)執(zhí)行交易策略,也就是將本發(fā)明的程序化交易平臺(tái)的策略執(zhí)行功能上移至策略托管服務(wù)器,使得策略托管服務(wù)器也具備的策略執(zhí)行的功能;策略托管服務(wù)器的優(yōu)勢(shì)在于其網(wǎng)絡(luò)和電力供應(yīng)可以得到最大限度的保證。
本步驟中策略云端托管服務(wù)器所生成的交易指令反饋至證券交易所,代替了程序化交易終端平臺(tái)的自動(dòng)化執(zhí)行功能,使得投資者可以策略在安全性、可靠性更高的服務(wù)器端執(zhí)行自己的策略。
本發(fā)明實(shí)現(xiàn)了通用型的平臺(tái)化程序交易系統(tǒng),且支持跨周期、跨品種獲取數(shù)據(jù),支持各種基本數(shù)據(jù)結(jié)構(gòu),提供常見(jiàn)的數(shù)學(xué)計(jì)算算法,能夠?qū)崿F(xiàn)策略托管服務(wù)器的功能。
本發(fā)明將通用平臺(tái)的概念引入,通過(guò)抽象出底層通用功能,使得上層的交易策略都能夠構(gòu)建在這些底層的通用功能至上,極大的簡(jiǎn)化了交易策略的開(kāi)發(fā)復(fù)雜度,并使得一些具有復(fù)雜數(shù)學(xué)計(jì)算要求的策略變得可實(shí)現(xiàn);
本發(fā)明支持服務(wù)器托管自動(dòng)化的交易策略使得交易者不必在本地計(jì)算機(jī)執(zhí)行,特別對(duì)于家庭、辦公環(huán)境的網(wǎng)絡(luò)不穩(wěn)定,電源不穩(wěn)定的情況,在本地執(zhí)行存在一定的隱患,而將交易策略上移到托管服務(wù)器自動(dòng)執(zhí)行,可保證穩(wěn)定性。
本發(fā)明程序化交易終端可以運(yùn)算交易策略,產(chǎn)生交易指令;策略云端托管服務(wù)器也可以運(yùn)算交易策略并產(chǎn)生交易指令,尤其是交易終端關(guān)機(jī)或斷網(wǎng)、停電的情況下,托管服務(wù)器仍可以獨(dú)立完成用戶(hù)托管的交易策略的運(yùn)算執(zhí)行。