本發(fā)明涉及金融信息管理技術(shù)領(lǐng)域,尤其是一種基于storm流處理框架和規(guī)則引擎的金融衍生品實(shí)時(shí)風(fēng)險(xiǎn)控制系統(tǒng)及方法。
背景技術(shù):
衍生產(chǎn)品是一種金融工具,一般表現(xiàn)為兩個(gè)主體之間的一個(gè)協(xié)議,其價(jià)格由其他基礎(chǔ)產(chǎn)品的價(jià)格決定。隨著現(xiàn)代金融業(yè)的發(fā)展,金融衍生品在市場(chǎng)上扮演越來(lái)越重要的作用,基于衍生品的定價(jià)分析、交易和風(fēng)險(xiǎn)管理成為學(xué)術(shù)界和金融業(yè)界的關(guān)注重點(diǎn)。
現(xiàn)有的金融衍生品交易與風(fēng)控系統(tǒng)主要有兩種計(jì)算模式:一是設(shè)置定時(shí)器,周期性地進(jìn)行掃描;二是在產(chǎn)生委托的時(shí)候,把委托相關(guān)的衍生品種的行情數(shù)據(jù)、盤(pán)口數(shù)據(jù),以及如期權(quán)greeks的各項(xiàng)指標(biāo)從硬盤(pán)上的數(shù)據(jù)庫(kù)服務(wù)器文件讀取,進(jìn)行各項(xiàng)指標(biāo)的更新,再寫(xiě)入硬盤(pán)數(shù)據(jù)庫(kù)服務(wù)器中。但是,由于金融衍生品市場(chǎng)品種繁多,盤(pán)中行情數(shù)據(jù)量太大,無(wú)法把所需的數(shù)據(jù)全部放入單個(gè)節(jié)點(diǎn)的存儲(chǔ)介質(zhì)中,從存儲(chǔ)介質(zhì)讀取到內(nèi)存中也相當(dāng)耗時(shí),失去了實(shí)時(shí)性。
而且由于合規(guī)方面要求的指標(biāo)繁多,衍生品在進(jìn)行交易時(shí)候風(fēng)控指標(biāo)也豐富多樣,在傳統(tǒng)的交易與風(fēng)控體系模式下,會(huì)導(dǎo)致在很多場(chǎng)景中下單的性能指標(biāo)嚴(yán)重下降,無(wú)法滿(mǎn)足套利、做市等自動(dòng)化快速交易的需求。在當(dāng)前市場(chǎng)追求最高的交易性能的應(yīng)用場(chǎng)景下,各種快速交易系統(tǒng)應(yīng)運(yùn)而生,將普通委托在毫秒級(jí)別提升到了微秒量級(jí)。但如果在交易上面增加風(fēng)控檢查,性能則會(huì)急劇下降,把快速交易系統(tǒng)帶來(lái)的性能優(yōu)勢(shì)磨滅殆盡。
并且,不同場(chǎng)景下風(fēng)控規(guī)則隨時(shí)會(huì)變化,現(xiàn)有技術(shù)系統(tǒng)不支持動(dòng)態(tài)修改風(fēng)控規(guī)則。
另外,采用大數(shù)據(jù)如hadoop技術(shù)體系的實(shí)現(xiàn),數(shù)據(jù)存放在hdfs分布式文件系統(tǒng)中,在分布式節(jié)點(diǎn)間運(yùn)算時(shí),數(shù)據(jù)需要從磁盤(pán)讀入內(nèi)存,然后在不同的節(jié)點(diǎn)間通過(guò)網(wǎng)絡(luò)傳輸,效率不高,僅適合于定時(shí)的批處理類(lèi)型的風(fēng)控規(guī)則計(jì)算。批處理技術(shù)可以滿(mǎn)足對(duì)大量數(shù)據(jù)處理的需求,但是處理模式是把預(yù)先定義的時(shí)間間隔分成短小的批量數(shù)據(jù)進(jìn)行處理,延遲較高,無(wú)法滿(mǎn)足毫秒級(jí)實(shí)時(shí)風(fēng)控規(guī)則計(jì)算的需求。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于storm流處理框架和規(guī)則引擎的金融衍生品實(shí)時(shí)風(fēng)險(xiǎn)控制系統(tǒng)及方法。
本發(fā)明的技術(shù)方案為:一種基于storm流處理框架和規(guī)則引擎的金融衍生品實(shí)時(shí)風(fēng)險(xiǎn)控制系統(tǒng),包括數(shù)據(jù)庫(kù)服務(wù)器、控制臺(tái)模塊、風(fēng)控服務(wù)器、訂單服務(wù)器、下單服務(wù)器;其中
數(shù)據(jù)庫(kù)服務(wù)器,用于存儲(chǔ)金融衍生品的各類(lèi)元數(shù)據(jù)及特征值、以及用于存儲(chǔ)風(fēng)控規(guī)則;
控制臺(tái)模塊,用于實(shí)時(shí)輸入風(fēng)控規(guī)則段,并將輸入的規(guī)則段發(fā)送給風(fēng)控服務(wù)器,其中,所述的風(fēng)控規(guī)則使用領(lǐng)域?qū)I(yè)語(yǔ)言(dsl);
風(fēng)控服務(wù)器,分別與數(shù)據(jù)庫(kù)服務(wù)器、訂單服務(wù)器、控制臺(tái)模塊通訊連接,從而用于接收訂單服務(wù)器的訂單消息、以及將控制臺(tái)模塊實(shí)時(shí)發(fā)送的風(fēng)控規(guī)則段加載到storm計(jì)算節(jié)點(diǎn)中,更新計(jì)算節(jié)點(diǎn)內(nèi)存當(dāng)中的風(fēng)控規(guī)則樹(shù),重建風(fēng)控規(guī)則,并從數(shù)據(jù)庫(kù)服務(wù)器中加載金融衍生品的各類(lèi)元數(shù)據(jù)及特征值,對(duì)訂單消息進(jìn)行風(fēng)控規(guī)則的并行驗(yàn)證,最終匯總各規(guī)則引擎的計(jì)算結(jié)果,輸出訂單的風(fēng)控規(guī)則校驗(yàn)結(jié)果至訂單服務(wù)器、以及更新數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù);
訂單服務(wù)器,用于與下單服務(wù)器通訊連接,從而接收下單服務(wù)器的下單消息,生成訂單對(duì)象和訂單消息,并將訂單消息發(fā)送給風(fēng)控服務(wù)器,從而接收風(fēng)控服務(wù)器反饋的風(fēng)控結(jié)果;
下單服務(wù)器,與訂單服務(wù)器通訊連接,用于將下單消息發(fā)送給訂單服務(wù)器,并接收訂單服務(wù)器反饋的風(fēng)控結(jié)果,根據(jù)風(fēng)控接收或拒絕消息后來(lái)調(diào)整下單業(yè)務(wù)邏輯。
所述的風(fēng)控服務(wù)器包括消息輸入服務(wù)器、消息解析服務(wù)器、消息分發(fā)服務(wù)器、規(guī)則解析服務(wù)器、訂單解析服務(wù)器、訂單預(yù)處理服務(wù)器、規(guī)則引擎服務(wù)器、消息輸出服務(wù)器,其中,
消息輸入服務(wù)器,與消息解析服務(wù)器連接,用于接收控制臺(tái)模塊與訂單服務(wù)器輸入的參數(shù)信息,并將參數(shù)信息實(shí)時(shí)發(fā)送給消息解析服務(wù)器;
消息解析服務(wù)器,與消息分發(fā)服務(wù)器連接,將接收到的參數(shù)信息解析為規(guī)則消息或訂單消息,并將規(guī)則消息或訂單消息發(fā)送給消息分發(fā)服務(wù)器;
消息分發(fā)服務(wù)器,分別與規(guī)則解析服務(wù)器、訂單解析服務(wù)器連接,用于將規(guī)則消息發(fā)送給規(guī)則解析服務(wù)器,以及將訂單消息發(fā)送給訂單解析服務(wù)器;
規(guī)則解析服務(wù)器,用于將收到的規(guī)則消息進(jìn)行解析,轉(zhuǎn)換成風(fēng)控規(guī)則對(duì)象,并將風(fēng)控規(guī)則對(duì)象發(fā)送給規(guī)則引擎服務(wù)器;
訂單解析服務(wù)器,用于將收到的訂單消息進(jìn)行解析,轉(zhuǎn)換成訂單對(duì)象,并且與訂單預(yù)處理服務(wù)器連接,從而將訂單對(duì)象發(fā)送給訂單預(yù)處理服務(wù)器;
訂單預(yù)處理服務(wù)器,與規(guī)則引擎服務(wù)器通訊連接,用于對(duì)訂單對(duì)象進(jìn)行預(yù)處理,預(yù)先加載訂單需要的基礎(chǔ)屬性數(shù)據(jù),并發(fā)送給規(guī)則引擎服務(wù)器;
規(guī)則引擎服務(wù)器,與消息輸出服務(wù)器連接,用于接收規(guī)則解析服務(wù)器發(fā)送的風(fēng)控規(guī)則對(duì)象,加載到storm計(jì)算節(jié)點(diǎn)中,從而更新storm計(jì)算節(jié)點(diǎn)內(nèi)存中的風(fēng)控規(guī)則樹(shù),重建風(fēng)控規(guī)則,進(jìn)而更新規(guī)則引擎;
以及用于接收訂單解析服務(wù)器發(fā)送的訂單對(duì)象,執(zhí)行風(fēng)控規(guī)則來(lái)處理訂單,從而生成風(fēng)控結(jié)果策略,并將生成的風(fēng)控結(jié)果策略發(fā)送給消息輸出服務(wù)器;
消息輸出服務(wù)器,接收規(guī)則引擎服務(wù)器的風(fēng)控結(jié)果策略,生成最終的訂單處理策略,并將訂單處理策略發(fā)送給訂單服務(wù)器。
本發(fā)明的另一目的,還提供一種基于storm流處理框架和規(guī)則引擎的金融衍生品實(shí)時(shí)風(fēng)險(xiǎn)控制方法,其特征在于,包括以下步驟:
s1)、基于storm流處理框架實(shí)時(shí)處理風(fēng)控規(guī)則配置消息和衍生品訂單下單消息;
s2)、根據(jù)所述的配置規(guī)則和訂單進(jìn)行風(fēng)控模型建模,抽象出各種風(fēng)控指標(biāo);
s3)、根據(jù)風(fēng)控規(guī)則的與、或、非關(guān)聯(lián)關(guān)系,自動(dòng)將多條風(fēng)控規(guī)則進(jìn)行平行異步化處理,并設(shè)置風(fēng)控規(guī)則生效的條件及生效的時(shí)間區(qū)間;
s4)、根據(jù)數(shù)據(jù)庫(kù)服務(wù)器中歷史訂單請(qǐng)求數(shù),并結(jié)合實(shí)時(shí)訂單消息,準(zhǔn)確的進(jìn)行訂單數(shù)量、頻次的風(fēng)險(xiǎn)控制,防止訂單數(shù)量超限或下單頻次過(guò)快;
s5)、對(duì)已下單用掉的資金額度進(jìn)行實(shí)時(shí)凍結(jié),防止資金額度透支;
s6)、對(duì)多個(gè)風(fēng)控規(guī)則產(chǎn)生的多個(gè)風(fēng)控結(jié)果進(jìn)行自動(dòng)匯總產(chǎn)生最終的風(fēng)控結(jié)果,以提供下單決策建議。
進(jìn)一步的,上述方法中,步驟s1)中,所述的風(fēng)控規(guī)則包括靜態(tài)法規(guī)類(lèi)規(guī)則和動(dòng)態(tài)資金量、頻次規(guī)則;
所述的訂單消息為衍生品期貨訂單、期權(quán)訂單。
進(jìn)一步的,上述方法中,步驟s2)中,所述的風(fēng)控指標(biāo)包括風(fēng)控公式、風(fēng)控因子、風(fēng)控閾值、訂單占比、反向單、風(fēng)控結(jié)果、風(fēng)控dsl描述、訂單類(lèi)型;
進(jìn)一步的,上述方法中,步驟s5)中,還包括根據(jù)實(shí)時(shí)市場(chǎng)行情數(shù)據(jù),計(jì)算買(mǎi)入金額,以防止資金額度透支。
進(jìn)一步的,上述方法中,步驟s6)中,還包括對(duì)于單個(gè)風(fēng)控規(guī)則可直接生產(chǎn)最終下單決策建議,無(wú)需再匯集其他風(fēng)控規(guī)則的結(jié)果。
本發(fā)明的有益效果為:設(shè)計(jì)合理,結(jié)構(gòu)簡(jiǎn)單、實(shí)用性強(qiáng),通過(guò)控制臺(tái)模塊可動(dòng)態(tài)修改風(fēng)控規(guī)則,并且風(fēng)控規(guī)則及相關(guān)數(shù)據(jù)通過(guò)使用數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù),進(jìn)一步提高實(shí)時(shí)性,降低延遲,另外,風(fēng)控規(guī)則通過(guò)執(zhí)行并行化結(jié)果自動(dòng)匯集后輸出,進(jìn)一步提高了下單策略的準(zhǔn)確性,風(fēng)控規(guī)則計(jì)算通過(guò)采用大數(shù)據(jù)的流式計(jì)算框架storm,實(shí)時(shí)接收消息交由提前配置好的storm拓?fù)涔?jié)點(diǎn)并行執(zhí)行,執(zhí)行性能達(dá)到毫秒級(jí),進(jìn)一步提高了其處理效率,減少了數(shù)據(jù)在節(jié)點(diǎn)間傳送消耗的帶寬及延遲,消息可靠性進(jìn)一步得到保證。
附圖說(shuō)明
圖1為本發(fā)明的系統(tǒng)框架流程圖;
圖2為本發(fā)明風(fēng)控服務(wù)器的框架流程圖;
圖3為本發(fā)明方法的流程示意圖;
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步說(shuō)明:
如圖1所示,一種基于storm流處理框架和規(guī)則引擎的金融衍生品實(shí)時(shí)風(fēng)險(xiǎn)控制系統(tǒng),包括數(shù)據(jù)庫(kù)服務(wù)器、控制臺(tái)模塊、風(fēng)控服務(wù)器、訂單服務(wù)器、下單服務(wù)器;其中
數(shù)據(jù)庫(kù)服務(wù)器,用于存儲(chǔ)金融衍生品的各類(lèi)元數(shù)據(jù)及特征值、以及用于存儲(chǔ)風(fēng)控規(guī)則;
控制臺(tái)模塊,用于實(shí)時(shí)輸入風(fēng)控規(guī)則段,并將輸入的規(guī)則段發(fā)送給風(fēng)控服務(wù)器,其中,所述的風(fēng)控規(guī)則使用領(lǐng)域?qū)I(yè)語(yǔ)言(dsl);
風(fēng)控服務(wù)器,分別與數(shù)據(jù)庫(kù)服務(wù)器、訂單服務(wù)器、控制臺(tái)模塊通訊連接,從而用于接收訂單服務(wù)器的訂單消息、以及將控制臺(tái)模塊實(shí)時(shí)發(fā)送的風(fēng)控規(guī)則段加載到storm計(jì)算節(jié)點(diǎn)中,更新計(jì)算節(jié)點(diǎn)內(nèi)存當(dāng)中的風(fēng)控規(guī)則樹(shù),重建風(fēng)控規(guī)則,并從數(shù)據(jù)庫(kù)服務(wù)器中加載金融衍生品的各類(lèi)元數(shù)據(jù)及特征值,對(duì)訂單消息進(jìn)行風(fēng)控規(guī)則的并行驗(yàn)證,最終匯總各規(guī)則引擎的計(jì)算結(jié)果,輸出訂單的風(fēng)控規(guī)則校驗(yàn)結(jié)果至訂單服務(wù)器、以及更新數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù);
訂單服務(wù)器,用于與下單服務(wù)器通訊連接,從而接收下單服務(wù)器的下單消息,生成訂單對(duì)象和訂單消息,并將訂單消息發(fā)送給風(fēng)控服務(wù)器,從而接收風(fēng)控服務(wù)器反饋的風(fēng)控結(jié)果;
下單服務(wù)器,與訂單服務(wù)器通訊連接,用于將下單消息發(fā)送給訂單服務(wù)器,并接收訂單服務(wù)器反饋的風(fēng)控結(jié)果,根據(jù)風(fēng)控接收或拒絕消息后來(lái)調(diào)整下單業(yè)務(wù)邏輯。
如圖2所示,所述的風(fēng)控服務(wù)器包括消息輸入服務(wù)器、消息解析服務(wù)器、消息分發(fā)服務(wù)器、規(guī)則解析服務(wù)器、訂單解析服務(wù)器、訂單預(yù)處理服務(wù)器、規(guī)則引擎服務(wù)器、消息輸出服務(wù)器,其中,
消息輸入服務(wù)器,與消息解析服務(wù)器連接,用于接收控制臺(tái)模塊與訂單服務(wù)器輸入的參數(shù)信息,并將參數(shù)信息實(shí)時(shí)發(fā)送給消息解析服務(wù)器;
消息解析服務(wù)器,與消息分發(fā)服務(wù)器連接,將接收到的參數(shù)信息解析為規(guī)則消息或訂單消息,并將規(guī)則消息或訂單消息發(fā)送給消息分發(fā)服務(wù)器;
消息分發(fā)服務(wù)器,分別與規(guī)則解析服務(wù)器、訂單解析服務(wù)器連接,用于將規(guī)則消息發(fā)送給規(guī)則解析服務(wù)器,以及將訂單消息發(fā)送給訂單解析服務(wù)器;
規(guī)則解析服務(wù)器,用于將收到的規(guī)則消息進(jìn)行解析,轉(zhuǎn)換成風(fēng)控規(guī)則對(duì)象,并將風(fēng)控規(guī)則對(duì)象發(fā)送給規(guī)則引擎服務(wù)器;
訂單解析服務(wù)器,用于將收到的訂單消息進(jìn)行解析,轉(zhuǎn)換成訂單對(duì)象,并且與訂單預(yù)處理服務(wù)器連接,從而將訂單對(duì)象發(fā)送給訂單預(yù)處理服務(wù)器;
訂單預(yù)處理服務(wù)器,與規(guī)則引擎服務(wù)器通訊連接,用于對(duì)訂單對(duì)象進(jìn)行預(yù)處理,預(yù)先加載訂單需要的基礎(chǔ)屬性數(shù)據(jù),并發(fā)送給規(guī)則引擎服務(wù)器;
規(guī)則引擎服務(wù)器,與消息輸出服務(wù)器連接,用于接收規(guī)則解析服務(wù)器發(fā)送的風(fēng)控規(guī)則對(duì)象,加載到storm計(jì)算節(jié)點(diǎn)中,從而更新storm計(jì)算節(jié)點(diǎn)內(nèi)存中的風(fēng)控規(guī)則樹(shù),重建風(fēng)控規(guī)則,進(jìn)而更新規(guī)則引擎;
以及用于接收訂單解析服務(wù)器發(fā)送的訂單對(duì)象,執(zhí)行風(fēng)控規(guī)則來(lái)處理訂單,從而生成風(fēng)控結(jié)果策略,并將生成的風(fēng)控結(jié)果策略發(fā)送給消息輸出服務(wù)器;
消息輸出服務(wù)器,接收規(guī)則引擎服務(wù)器的風(fēng)控結(jié)果策略,生成最終的訂單處理策略,并將訂單處理策略發(fā)送給訂單服務(wù)器。
如圖3所示,本發(fā)明的另一目的,還提供一種基于storm流處理框架和規(guī)則引擎的金融衍生品實(shí)時(shí)風(fēng)險(xiǎn)控制方法,其特征在于,包括以下步驟:
s1)、基于storm流處理框架實(shí)時(shí)處理風(fēng)控規(guī)則配置消息和衍生品訂單下單消息;
s2)、根據(jù)所述的配置規(guī)則和訂單進(jìn)行風(fēng)控模型建模,抽象出各種風(fēng)控指標(biāo);
s3)、根據(jù)風(fēng)控規(guī)則的與、或、非關(guān)聯(lián)關(guān)系,自動(dòng)將多條風(fēng)控規(guī)則進(jìn)行平行異步化處理,并設(shè)置風(fēng)控規(guī)則生效的條件及生效的時(shí)間區(qū)間;
s4)、根據(jù)數(shù)據(jù)庫(kù)服務(wù)器中歷史訂單請(qǐng)求數(shù),并結(jié)合實(shí)時(shí)訂單消息,準(zhǔn)確的進(jìn)行訂單數(shù)量、頻次的風(fēng)險(xiǎn)控制,防止訂單數(shù)量超限或下單頻次過(guò)快;
s5)、對(duì)已下單用掉的資金額度進(jìn)行實(shí)時(shí)凍結(jié),防止資金額度透支;
s6)、對(duì)多個(gè)風(fēng)控規(guī)則產(chǎn)生的多個(gè)風(fēng)控結(jié)果進(jìn)行自動(dòng)匯總產(chǎn)生最終的風(fēng)控結(jié)果,以提供下單決策建議。
進(jìn)一步的,上述方法中,步驟s1)中,所述的風(fēng)控規(guī)則包括靜態(tài)法規(guī)類(lèi)規(guī)則和動(dòng)態(tài)資金量、頻次規(guī)則;
所述的訂單消息為衍生品期貨訂單、期權(quán)訂單。
進(jìn)一步的,上述方法中,步驟s2)中,所述的風(fēng)控指標(biāo)包括風(fēng)控公式、風(fēng)控因子、風(fēng)控閾值、訂單占比、反向單、風(fēng)控結(jié)果、風(fēng)控dsl描述、訂單類(lèi)型;
進(jìn)一步的,上述方法中,步驟s5)中,還包括根據(jù)實(shí)時(shí)市場(chǎng)行情數(shù)據(jù),計(jì)算買(mǎi)入金額,以防止資金額度透支。
進(jìn)一步的,上述方法中,步驟s6)中,還包括對(duì)于單個(gè)風(fēng)控規(guī)則可直接生產(chǎn)最終下單決策建議,無(wú)需再匯集其他風(fēng)控規(guī)則的結(jié)果。
上述實(shí)施例和說(shuō)明書(shū)中描述的只是說(shuō)明本發(fā)明的原理和最佳實(shí)施例,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。