TWI769534B - 證券交易之低延遲即時風險控制系統及方法 - Google Patents
證券交易之低延遲即時風險控制系統及方法 Download PDFInfo
- Publication number
- TWI769534B TWI769534B TW109133596A TW109133596A TWI769534B TW I769534 B TWI769534 B TW I769534B TW 109133596 A TW109133596 A TW 109133596A TW 109133596 A TW109133596 A TW 109133596A TW I769534 B TWI769534 B TW I769534B
- Authority
- TW
- Taiwan
- Prior art keywords
- risk control
- data packet
- message
- complete
- data
- Prior art date
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本發明提供一種證券交易之低延遲即時風險控制方法。所述方法包括:接收資料封包;分析所述資料封包,並根據所述資料封包的分析結果判斷所述資料封包是否需進行風險控管處理;響應於所述資料封包需進行風險控管處理,分析所述資料封包以分離出一或多個完整電文;根據風控項目建立風控模型,並根據所述風控模型判斷所述完整電文是否通過所述風控項目;以及傳送通過所述風控項目的所述完整電文對應的所述資料封包。此外,使用上述方法的系統亦被提出。
Description
本發明是有關於一種交易風險控管技術,且特別是有關於一種證券交易之低延遲即時風險控制系統及證券交易之低延遲即時風險控制方法。
在現今社會中,金融交易大部分是透過電腦自動完成。由於電子化金融的盛行,高頻交易(High Frequency Trading,HFT)在全球所占的交易比重逐年增加。一般來說,高頻交易需要以比毫秒更高的速度賺取交易市場中出現極短暫的微小價差,因此高頻交易公司的優勢取決於交易平台處理委託下單後到證券交易所的速度。到證券交易所的延遲時間越低則該公司的優勢就越大。此外,當證券商面臨低延遲時間的需求時,其對於委託下單的風險控管必須快速。基此,如何提升交易風險控管的速度是本領域技術人員致力解決的課題。
有鑑於此,本發明提供一種證券交易之低延遲即時風險控制系統及方法,可在增加對證券交易的交易封包進行風險控管的同時,減少風險控管的延遲時間。
本發明提供一種證券交易之低延遲即時風險控制系統,所述系統包括輸入輸出電路以及處理器。輸入輸出電路用以接收與傳送資料封包。處理器耦接所述輸入輸出電路,並包括網路協定解析器、電文解析器、風險控管模組以及輸出仲裁器。網路協定解析器分析所述資料封包,並根據所述資料封包的分析結果判斷所述資料封包是否需進行風險控管處理。電文解析器,響應於所述資料封包需進行風險控管處理,分析所述資料封包以分離出一或多個完整電文。其中所述完整電文包括金融通訊協定的表頭資訊、電文內容以及表尾資訊。風險控管模組根據風控項目建立風控模型,並根據所述風控模型判斷所述完整電文是否通過所述風控項目。輸出仲裁器透過所述輸入輸出電路傳送通過所述風控項目的所述完整電文對應的所述資料封包。
本發明提供一種證券交易之低延遲即時風險控制方法,適用於包括處理器及輸入輸出電路的系統。所述方法包括:接收資料封包;分析所述資料封包,並根據所述資料封包的分析結果判斷所述資料封包是否需進行風險控管處理;響應於所述資料封包需進行風險控管處理,分析所述資料封包以分離出一或多個完整電文,其中所述完整電文包括金融通訊協定的表頭資訊、電文內容以及表尾資訊;根據風控項目建立風控模型,並根據所述風
控模型判斷所述完整電文是否通過所述風控項目;以及傳送通過所述風控項目的所述完整電文對應的所述資料封包。
為讓本揭露的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
10:風險控制系統
100:風險控制裝置
110:輸入輸出電路
120:處理器
121:網路協定解析器
122:電文解析器
1221:表頭資訊分析模組
1222:電文分離模組
1223:電文分析模組
123:風險控管模組
124:輸出仲裁器
125:暫存器
200,300:主機
AXI_1,AXI_2,AXI_3:AXI段落
AXI_4:重組段落
DATA:資料封包
DATA_FIX,DATA_FIX1,DATA_FIX2,DATA_FIX3,DATA_FIX4:FIX封包
DATA_TCP:非FIX封包
FIX_P1,FIX_P2:電文
FIX_TAG_VALUE:完整電文
N_PASS:未通過訊號
PASS:通過訊號
S802~S810:步驟
圖1是依照本發明實施例所繪示的證券交易之低延遲即時風險控制系統的方塊圖。
圖2是依照本發明實施例所繪示的證券交易之低延遲即時風險控制系統的方塊圖。
圖3是依照本發明實施例所繪示的電文解析器的方塊圖。
圖4是依照本發明實施例所繪示的FIX電文訊息的示意圖。
圖5是依照本發明實施例所繪示的電文分離的示意圖。
圖6是依照本發明實施例所繪示的段落重組的示意圖。
圖7是依照本發明實施例所繪示的電文正規化的示意圖。
圖8是依照本發明實施例所繪示的證券交易之低延遲即時風險控制方法的流程圖。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,
若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1是依照本發明實施例所繪示的證券交易之低延遲即時風險控制系統的方塊圖。參照圖1,風險控制系統10包括風險控制裝置100及主機200,本發明並不限制處理器及主機的數量。
風險控制裝置100包括輸入輸出電路110及處理器120,並且處理器120耦接輸入輸出電路110。輸入輸出電路110及處理器120可以配置於IC晶片內部,並配置在相同的一個印刷電路板(Printed Circuit Board,PCB)上。在一範例實施例中,風險控制系統10包括伺服器(未繪示),並且風險控制裝置100可配置在伺服器中。風險控制裝置100透過輸入輸出電路110與伺服器進行資料傳輸。
輸入輸出電路110用以從伺服器接收或傳送來自主機200的資料封包。輸入輸出電路110例如是透過週邊組件互連Peripheral Component Interconnect Express,PCIe)介面與伺服器進行資料傳輸。在一範例實施例中,輸入輸出電路110透過PCIe匯流排從伺服器接收來自主機200的資料封包。
處理器120例如是現場可程式化閘陣列(Field
Programmable Gate Array,FPGA)或其它可程式邏輯電路、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)等。依照設計需求,處理器120可以包括網路協定解析器121、電文解析器122、風險控管模組123及輸出仲裁器124。以FPGA為例,FPGA可以容置一個或多個智慧財產權核(Intellectual Property Core,IP Core)電路。外部主機(未繪示,例如電腦)可以將以硬體描述語言(Verilog或VHDL)描述的邏輯電路,利用邏輯合成和布局、布線及/或其它操作,經由控制平台並透過PCIe匯流排將網路協定解析器121、電文解析器122、風險控管模組123及輸出仲裁器124程設(Programming)至處理器120中。舉例來說,控制平台例如是NetFPGA開發平台,本發明不在此限制。
主機200例如是具有處理器、通訊裝置(例如,各類通訊晶片、藍芽晶片或Wi-Fi晶片)及儲存裝置(例如,隨機存取記憶體、快閃記憶體或硬碟)等具有運算能力的個人電腦、筆記型電腦、智慧型手機、平版電腦、伺服器或穿戴式裝置等裝置,本發明不在此限制。透過主機200,使用者可對股票、權證等金融商品進行下單操作。
主機200可從配置風險控制裝置100的伺服器接收或傳送資料,其例如是透過有線或無線通訊的方式來傳輸或是接收資料。在一範例實施例中,主機200及伺服器可包括一無線通訊模組,並支援全球行動通信(Global System for Mobile Communication,GSM)系統、個人手持式電話系統(Personal Handy-phone System,
PHS)、碼多重擷取(Code Division Multiple Access,CDMA)系統、無線相容認證(Wireless Fidelity,Wi-Fi)系統、全球互通微波存取(Worldwide Interoperability for Microwave Access,WiMAX)系統、第三代無線通信技術(3G)、第四代無線通信技術(4G)、第五代無線通信技術(5G)或更新一代的無線通信技術、長期演進技術(Long Term Evolution,LTE)、紅外線(Infrared)傳輸、藍芽(Bluetooth,BT)通訊技術的其中之一或其組合,且不限於此。此外,主機200及伺服器亦可包括網路介面卡(Network Interface Card,NIC),以建立網路連線,進而讓主機200及伺服器可連接至區域網路或是網際網路。
圖2是依照本發明實施例所繪示的證券交易之低延遲即時風險控制系統的方塊圖。以下將更詳細地說明各電路/模組之間的運作及資料流。
在本發明一實施例中,為了加快風險控制裝置100的運作速度及效率,可將圖2所繪示的各電路/模組的運作階段管線化(Pipeline),所述運作階段包括跨輸入輸出電路110、網路協定解析器121、電文解析器122、風險控管模組123、暫存器125及/或輸出仲裁器124所運行的多個運作階段。舉例來說,當風險控管模組123執行第K組封包段落的風險控管操作時,電文解析器122可執行第K+1組封包段落的電文分離操作,其中K為正整數。而當電文解析器122執行第K+1組封包段落的電文分離操作時,網路協定解析器121可執行對應於第K+2組封包段落的資料封包
分析操作。然而,上述範例實施例僅說明管線化的例子,本發明並不在此限制各運作階段的處理順序。
在風險控制裝置100中,資料封包DATA例如可以透過AXI(Advanced eXtensible Interface)傳輸協議或其它傳輸協議進行傳輸。以下假設風險控制裝置100中的資料以AXI傳輸協議進行傳輸,然本發明不在此限制。以AXI傳輸協議進行傳輸時,資料封包DATA會被切割為多個32位元組(Byte)的段落來傳輸。
請參圖2,使用者可透過主機200進行下單,下單後的資料封包DATA可傳輸至風險控制裝置100進行風險控管。
輸入輸出電路110接收資料封包DATA後,將資料封包DATA傳輸至網路協定解析器121。在本範例實施例中,可將輸入輸出電路110與網路協定解析器121的運作管線化。網路協定解析器121會分析資料封包DATA,並根據資料封包DATA的分析結果判斷資料封包DATA是否需進行風險控管處理。詳細而言,網路協定解析器121可先檢查資料封包DATA的封包表頭資訊中的資料偏移量欄位(Data Offset),以獲得資料封包DATA的負載(Payload)的起始位置,也就是封包資料的起始位置。在本範例實施例中,網路協定解析器121例如是傳輸控制協定(Transmission Control Protocol,TCP)解析器,封包表頭資訊例如是TCP表頭資訊,本發明不在此限制。
處理器120還包括暫存器125,暫存器125例如是先進先出(First Input First Output,FIFO)佇列暫存器。網路協定解析器
121會分析資料封包DATA中的資料是否包括金融通訊協定(Financial Information eXchange,FIX,亦稱為FIX協定)的表頭資訊(亦稱為FIX表頭資訊,例如8=FIX.4.4<SOH>),以判斷資料封包DATA是否需進行風險控管處理。若網路協定解析器121判斷資料封包DATA中的資料不包括FIX表頭資訊,則資料封包DATA不需要進行風險控管處理。此時,網路協定解析器121將此不包括FIX表頭資訊的資料封包DATA(亦稱為,非FIX封包)傳輸至暫存器125中並暫存在非FIX佇列(亦稱為,第一佇列)。請參圖2,被判斷為不包括FIX表頭資訊的非FIX封包DATA_TCP被傳輸至暫存器125並暫存在第一佇列。
另一方面,若判斷資料封包DATA的資料包括FIX表頭資訊,則資料封包DATA需要進行風險控管處理。此時,網路協定解析器121將此包括FIX表頭資訊的資料封包DATA(亦稱為,FIX封包)傳輸至暫存器125並暫存在FIX佇列(亦稱為,第二佇列)。並且,網路協定解析器121將FIX封包同時傳輸至電文解析器122。在本範例實施例中,可將網路協定解析器121與電文解析器122的運作管線化。請參圖2,被判斷為包括FIX表頭資訊的FIX封包DATA_FIX被傳輸至暫存器125並暫存在第二佇列,並且網路協定解析器121同時將FIX封包DATA_FIX傳輸至電文解析器122。
在接收到資料封包後,電文解析器122響應於資料封包需進行風險控管處理,分析資料封包以分離出一或多個完整電文
(Message)。以下說明從資料封包分離出電文的範例,但本發明不限於此。在本實施例中,電文解析器122在接收到FIX封包DATA_FIX後,可對FIX封包DATA_FIX進一步進行分析以分離出用於後續風險控管的電文。
需先說明的是,FIX封包中的訊息格式的長度不固定,所有的訊息必須依循規範組成傳送資料。FIX協定的完整電文訊息是由標準的表頭(Standard Header)資訊加上訊息內容(Body),最後由標準的表尾(Standard Trailer)資訊所組成。訊息內容包括多個電文,並且電文內容由一連串的<標籤(Tag)>=<值(Value)>所組成,其中每個標籤可對應不同的訊息類別。各電文之間使用分隔符號分開。一般來說,FIX協定採用ASCII“SOH”(字碼為0x01)作為分隔符號,本範例實施例中將分隔符號表示為<SOH>。以下為FIX封包包括的資料內容的範例:8=FIX.4.4<SOH>44=17.000<SOH>54=1<SOH>10=123<SOH>
在上述範例中,標籤8=FIX.4.4對應表頭資訊,標籤44對應的訊息類別為委託價格,標籤54對應的訊息類別為買賣別,標籤10對應表尾資訊。
圖3是依照本發明實施例所繪示的電文解析器的方塊圖。舉例來說,電文解析器122包括但不限於表頭資訊分析模組1221、電文分離模組1222及/或電文分析模組1223。在本範例實施例中,可將表頭資訊分析模組1221與電文分離模組1222的運
作管線化,以及將電文分離模組1222與電文分析模組1223的運作管線化。請參圖2及圖3,表頭資訊分析模組1221取得FIX封包DATA_FIX中的FIX表頭資訊。電文分離模組1222根據FIX表頭資訊分離FIX封包DATA_FIX為一或多個待分析電文,並將待分析電文儲存至暫存器中。
具體而言,若一個資料封包DATA中包括多個電文,有可能會有兩個不同的電文出現在同一個32位元組的段落(亦稱為AXI段落)中的情況。例如,一個電文的尾端與另一電文的頭端出現在同一個AXI段落。因此必須要將不同電文分離為不同的待分析電文,避免兩組電文的風險控管項目混淆。在一範例實施例中,表頭資訊分析模組1221可取得FIX封包DATA_FIX包括的表頭資訊8=FIX.4.4,並且電文分離模組1222可根據表頭資訊8=FIX.4.4將FIX封包DATA_FIX分離為一或多個待分析電文,並將分離出的待分析電文存入不同的暫存器中。
圖4是依照本發明實施例所繪示的FIX電文訊息的示意圖。請參照圖4,FIX封包中電文訊息的部分可能會有範例CASE 0~CASE 4等5種組合態樣。在範例CASE 0中,一個電文訊息包括一個完整的電文FIX Payload。在範例CASE 1中,一個電文訊息包括至少兩個完整的電文FIX Payload。在範例CASE 2中,一個電文訊息包括一個不完整並且尾端被截斷的電文FIX Payload。在範例CASE 3中,一個電文訊息包括一個不完整並且頭端被截斷的電文FIX Payload。在範例CASE 4中,一個電文訊息包括一個
不完整並且尾端被截斷的電文FIX Payload且包括一個不完整並且頭端被截斷的電文FIX Payload。而範例CASE 2~3除了不完整的電文FIX Payload之外,亦可包括至少一個完整的電文FIX Payload。在上述範例CASE 0~CASE 4中,各個完整的電文FIX Payload亦可包括N個完整的電文,N為大於0的正整數。
圖5是依照本發明實施例所繪示的電文分離的示意圖。請參照圖5,圖5的FIX封包DATA_FIX包括兩個完整的電文FIX_P1及電文FIX_P2,而部分的電文FIX_P1及部分的電文FIX_P2出現在同一個AXI段落AXI_1。電文分離模組1222可根據表頭資訊將FIX封包DATA_FIX分離為待分析電文DATA_FIX1及待分析電文DATA_FIX2,並將分離出的待分析電文存入不同的暫存器中。
在一範例實施例中,風險控制裝置100中的各電路/模組將資料封包DATA切割為多個AXI段落並使用AXI傳輸協議傳輸資料封包DATA。由於資料封包DATA會被切割成多個32位元組的AXI段落,因此有些電文可能會被切割。例如圖5中的AXI段落AXI_1。但為了達到低延遲,電文解析器122使用管線化(Pipeline)設計,因此每個時脈週期都要能解析封包的一組段落,使系統能達到線速的處理速度。為了能夠滿足以AXI傳輸協議傳輸資料封包及在每個時脈週期解析一個段落兩樣需求,電文解析器122暫存每個時脈週期接收到的32位元組的AXI段落,等到下個時脈週期再分析該AXI段落。據此,能夠將AXI段落前後
延伸以補足不完整的電文。
然而,由於TCP/IP重組的因素,交易環境中的FIX封包可能會有如圖4範例CASE 2~4中電文不完整的情況。在本範例實施例中,電文解析器122還包括段落重組模組(未繪示)。段落重組模組可在電文分離模組1222根據FIX表頭資訊分離FIX封包DATA_FIX為一或多個待分析電文之前,在FIX封包DATA_FIX包括的最後一個AXI段落不包括FIX表尾資訊時重組該最後一個AXI段落以產生重組段落。詳細而言,當段落重組模組判斷FIX封包DATA_FIX的最後一個AXI段落不包括FIX表尾資訊(即代表,FIX封包DATA_FIX包括不完整並且尾端被截斷的電文)時,會忽略最後一個AXI段落,避免分析到重複的FIX開頭資訊。並且,段落重組模組會使用最後一個AXI段落的前一個AXI段落補足最後一個AXI段落至32位元組以產生重組段落,並將重組段落暫存直到接收到下一個包括頭端被截斷的電文的FIX封包DATA_FIX。
圖6是依照本發明實施例所繪示的段落重組的示意圖。請參照圖6,當段落重組模組判斷FIX封包DATA_FIX3的最後一個AXI段落AXI_3不包括FIX表尾資訊時,使用前一個AXI段落AXI_2補足最後一個AXI段落AXI_3至32位元組以產生重組段落AXI_4。並且段落重組模組暫存重組段落AXI_4直到接收到下一個包括頭端被截斷的電文的FIX封包DATA_FIX4。透過上述段落重組,電文解析器122可暫存32位元組的重組段落AXI_4,等
到下個時脈週期再分析重組段落AXI_4,以符合以AXI傳輸協議傳輸資料封包及在每個時脈週期解析一個段落兩樣需求。
回到圖3,電文分析模組1223判斷分離出的待分析電文是否為一完整的電文,並將完整電文傳輸至風險控管模組123。在電文分離模組1222分離出待分析電文後,電文分析模組1223可對不同的待分析電文同時進行分析,因此可提升分析速度。具體而言,電文分析模組1223會判斷各個暫存器中儲存的待分析電文是否為一完整的電文,並將判斷為完整的待分析電文所對應的暫存器中的完整電文傳輸至風險控管模組123。在一範例實施例中,完整電文包括FIX表頭資訊、電文內容以及FIX表尾資訊。請參圖2,電文解析器122將完整電文FIX_TAG_VALUE傳輸至風險控管模組123。在本範例實施例中,可將電文分析模組1223與風險控管模組123的運作管線化。
參照圖2,風險控管模組123會根據風控項目建立風控模型,並根據風控模型判斷完整電文是否通過風控項目。其中,不同風控項目對應的風控模型可包括查表操作、數學運算操作及/或閥值比較操作至少其中之一。在一範例實施例中,風險控管模組123可包括一或多個風控模型,風險控管模組123接收了完整電文FIX_TAG_VALUE之後,可將完整電文FIX_TAG_VALUE輸入該些風控模型,並且風控模型根據完整電文FIX_TAG_VALUE的電文內容中的標籤決定控管參數。其中控管參數為電文內容中的值。接著,風控模型根據控管參數判斷完整電文FIX_TAG_VALUE
是否通過各個風控模型所對應的風控項目。
舉例來說,下表1舉例說明不同的風控項目及其對應的風控模型內容。
特別地,在風控模型包括查表操作時,風險控管模組123利用最小完美散列函數建立風控模型。具體而言,風險控管模組123可利用最小完美散列函數儲存風控項目對應的查找項目以建
立散列函數陣列。接著,風險控管模組123根據完整電文中的標籤決定控管參數,並透過最小完美散列函數轉換控管參數為散列位址。最後,風險控管模組123將散列位址輸入散列函數陣列以判斷完整電文是否通過該風控項目。
在一範例實施例中,風控項目「可下單標的控管」對應的查找項目可以是可下單標的。風險控管模組123可利用最小完美散列函數儲存可下單標的。具體而言,風險控管模組123透過最小完美散列函數轉換可下單標的為第一散列位址,以建立對應至可下單標的對應的散列函數陣列。建立的散列函數陣列中的第一散列位址對應至風險控制裝置100包括的記憶體位址。舉例來說,可下單標的轉換的第一散列位址所對應的記憶體位址中的值為1。在接收完整電文FIX_TAG_VALUE後,風險控管模組123可根據電文內容中的標籤決定控管參數,其中控管參數為電文內容中的值。在本範例實施例中,電文內容中的標籤例如是55,對應「股票代號」。接著,風險控管模組123透過最小完美散列函數轉換完整電文FIX_TAG_VALUE中的控管參數為第二散列位址。接著,風險控管模組123將第二散列位址輸入散列函數陣列,並查詢散列函數陣列中與第二散列位址對應的值。若值為1,代表控管參數對應的股票代號為可下單標的而可通過此風控項目。若值為0,代表控管參數對應的股票代號為不可下單標的。藉由最小完美散列函數儲存可下單標的並用於查表,可以使用最少之記憶體空間,快速有效率的查詢出交易標的是否為可下單標的。
此外,在風控模型包括數學運算操作時,風險控管模組123可根據完整電文中的標籤決定控管參數,並將控管參數進行數學運算以判斷完整電文是否通過該風控項目。在風控模型包括閥值比較操作時,風險控管模組123可根據完整電文中的標籤決定控管參數,並將控管參數與閥值比較以判斷完整電文是否通過該風控項目。具體實施例可參照表1中「單筆下單金額控管」等風控項目的風險模型內容,在此不再贅述。
在一範例實施例中,風險控管模組123還可在根據風控模型判斷完整電文是否通過風控項目之前,執行正規化操作以將完整電文FIX_TAG_VALUE正規化為風控模型所需的資料格式。其中,風控模型所需的資料格式對應至不同的風控項目。具體而言,正規化操作包括但不限於「選擇處理之資料範圍」、「ASCII轉換至BCD」及/或「BCD轉換至二進制」。需說明的是,並不是完整電文FIX_TAG_VALUE中的所有電文內容都需要進行所有的正規化操作項目。因此在一範例實施例中,風險控管模組123可根據標籤針對不同的電文內容對完整電文FIX_TAG_VALUE進行不同的正規化操作。舉例來說,需要進行數學運算的本次成交數量(LastQty,標籤=32)、委託數量(OrderQty,標籤=38)與委託價格(Price,標籤=44)等電文內容,風險控管模組123可對這些電文內容進行「選擇處理之資料範圍」等處理,及「ASCII轉換至BCD」、「BCD轉換至二進制」等轉碼處理。若是關聯於進行欄位對照或查表的訊息類別(MsgType,標籤=35)、買賣別(Side,
標籤=54)與股票代號(Symbol,標籤=55)等電文內容,風險控管模組123可對這些電文內容進行「選擇處理之資料範圍」等處理。圖7是依照本發明實施例所繪示的電文正規化的示意圖。具體執行正規化操作的結果可參照圖7,其中每個方格中都為8位元資訊。須注意的是,所屬技術領域通常知識者應當知曉如何執行各種正規化操作,故在此便不贅述。
在一範例實施例中,若風險控管模組123判斷完整電文FIX_TAG_VALUE通過風控項目,風險控管模組123可傳送通過訊號PASS至暫存器125。另一方面,若風險控管模組123判斷完整電文FIX_TAG_VALUE未通過風控項目,風險控管模組123可傳送未通過訊號N_PASS至暫存器125。
輸出仲裁器124透過輸入輸出電路220傳送通過風控項目的完整電文對應的資料封包。具體而言,輸出仲裁器124會在每個時脈週期查看暫存器125中的第一佇列及第二佇列。其中第一佇列暫存非FIX封包DATA_TCP,第二佇列暫存FIX封包DATA_FIX。輸出仲裁器124在第一佇列暫存有完整的非FIX封包DATA_TCP時,透過輸入輸出電路220輸出完整的非FIX封包DATA_TCP至主機300。另一方面,輸出仲裁器124在第二佇列暫儲存有完整的FIX封包DATA_FIX並且該FIX封包DATA_FIX具有對應的通過訊號PASS時,透過輸入輸出電路220輸出完整的FIX封包DATA_FIX至主機300。然而,若FIX封包DATA_FIX具有對應的未通過訊號N_PASS時,輸出仲裁器124不輸出FIX
封包DATA_FIX至主機300。在本實施例中,主機300為交易主機。
在一範例實施例中,輸出仲裁器124在檢驗的資料封包DATA達一定數量時,可先輸出第一佇列暫存的資料封包DATA,以使非FIX封包不會因為系統的風控功能而提高傳輸延遲時間。
在一範例實施例中,若FIX封包DATA_FIX具有對應的未通過訊號N_PASS時,伺服器可透過輸入輸出電路110(例如,PCIe匯流排)輪詢讀取暫存器125,並在暫存器125包括未通過訊號N_PASS時輸出對應至具有未通過訊號N_PASS的FIX封包DATA_FIX的違規訊號至主機200,以警告下單的使用者其傳送的封包未通過風險控管,即,傳送的封包為違規封包。
圖8是依照本發明實施例所繪示的證券交易之低延遲即時風險控制方法的流程圖。在步驟S802中,接收資料封包。在步驟S804中,分析所述資料封包,並根據所述資料封包的分析結果判斷所述資料封包是否需進行風險控管處理。在步驟S806中,響應於所述資料封包需進行風險控管處理,分析所述資料封包以分離出一或多個完整電文。在步驟S808中,根據風控項目建立風控模型,並根據所述風控模型判斷所述完整電文是否通過所述風控項目。在步驟S810中,透過所述輸入輸出電路傳送通過所述風控項目的所述完整電文對應的所述資料封包。
值得注意的是,圖8中各步驟可以實作為多個程式碼或是電路,本發明不加以限制。此外,圖8的方法可以搭配以上範
例實施例使用,也可以單獨使用,本發明不加以限制。必須說明的是,在進行本發明的證券交易之低延遲即時風險控制方法時,不用依據執行步驟S802~S810,此些步驟可同時以管線化的方式來執行或不同時執行。
綜上所述,本發明的實施例所提供的證券交易之低延遲即時風險控制系統及方法針對同一個AXI段落包括不同電文以及資料封包中電文不完整的情況進行處理,以確保能正確分析電文並進行風險控管。此外,本發明可基於NetFPGA平台進行開發,以在FPGA增加風險控管模組。基此,本發明可在增加對證券交易的交易封包進行風險控管的同時,減少風險控管的延遲時間。藉此,可達成正確分析電文及低延遲的交易封包風險控制的技術效果。除此之外,本發明還可將各電路/模組的運作管線化,可有效加快風險控制裝置的運作速度及效率。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
10:風險控制系統
100:風險控制裝置
110:輸入輸出電路
120:處理器
121:網路協定解析器
122:電文解析器
123:風險控管模組
124:輸出仲裁器
200:主機
Claims (10)
- 一種證券交易之低延遲即時風險控制系統,所述系統包括:輸入輸出電路,用以接收與傳送資料封包;處理器,耦接所述輸入輸出電路,所述處理器包括:網路協定解析器,分析所述資料封包,並根據所述資料封包的分析結果判斷所述資料封包是否需進行風險控管處理,其中所述網路協定解析器在判斷所述資料封包中的第一資料封包不需要進行風險控管處理時,傳送所述第一資料封包至暫存器,並在判斷所述資料封包中的第二資料封包需要進行風險控管處理時,傳送所述第二資料封包至電文解析器及所述暫存器;所述暫存器,將所述第一資料封包暫存在第一佇列,且將所述第二資料封包暫存在第二佇列;所述電文解析器,響應於所述第二資料封包需進行風險控管處理,分析所述第二資料封包以分離出一或多個完整電文,其中所述完整電文包括金融通訊協定的表頭資訊、電文內容以及表尾資訊;風險控管模組,根據風控項目建立風控模型,並根據所述風控模型判斷所述完整電文是否通過所述風控項目,其中所述風險控管模組判斷所述完整電文通過所述風控項目時,傳送通過訊號至所述暫存器;以及輸出仲裁器,在所述第二佇列儲存有完整的所述第二資 料封包且所述第二資料封包具有對應的所述通過訊號時,透過所述輸入輸出電路輸出所述第二佇列中完整的所述第二資料封包,其中所述輸出仲裁器在所述資料封包達一定數量時,先輸出所述第一佇列暫存的所述第一資料封包。
- 如請求項1所述的系統,其中所述電文解析器包括:表頭資訊分析模組,取得所述第二資料封包中的所述金融通訊協定的表頭資訊;電文分離模組,根據所述金融通訊協定的表頭資訊分離所述第二資料封包為一或多個待分析電文;以及電文分析模組,判斷分離出的所述待分析電文是否為完整的電文,並將所述完整電文傳輸至所述風險控管模組。
- 如請求項2所述的系統,其中所述處理器將所述資料封包切割為多個AXI段落並使用AXI傳輸協議傳輸所述資料封包,其中所述電文解析器暫存每個時脈週期接收到的所述AXI段落,並等到下個時脈週期再分析所述AXI段落。
- 如請求項3所述的系統,其中在所述電文分離模組根據所述金融通訊協定的表頭資訊分離所述第二資料封包為所述待分析電文之前,所述電文解析器在所述第二資料封包包括的最後一個所述AXI段落不包括所述表尾資訊時重組所述最後一個AXI段落以產生重組段落,並且所述電文解析器暫存所述重組段落,等到下個時脈週期再分析所述重組段落。
- 如請求項1所述的系統,其中所述風險控管模組將所述完整電文輸入所述風控模型,根據所述完整電文的所述電文內容中的標籤決定控管參數,並且根據所述控管參數判斷所述完整電文是否通過所述風控模型所對應的所述風控項目,其中所述控管參數為所述電文內容中的值。
- 如請求項1所述的系統,其中所述風控模型包括查表操作、數學運算操作及閥值比較操作至少其中之一,並且在所述風控模型包括所述查表操作時,所述風險控管模組利用最小完美散列函數建立所述風控模型。
- 如請求項1所述的系統,其中所述風險控管模組在根據所述風控模型判斷所述完整電文是否通過所述風控項目之前,執行正規化操作以將所述完整電文正規化為所述風控模型所需的資料格式。
- 如請求項1所述的系統,其中所述風險控管模組判斷所述完整電文未通過所述風控項目時,傳送未通過訊號至所述暫存器。
- 如請求項8所述的系統,其中所述系統更包括伺服器,並且所述輸入輸出電路及所述處理器配置在所述伺服器中,其中所述伺服器透過所述輸入輸出電路輪詢讀取所述暫存器,並在所述暫存器包括所述未通過訊號時輸出對應至具有所述未通過訊號的所述第二資料封包的違規訊號。
- 一種證券交易之低延遲即時風險控制方法,適用於包括處理器及輸入輸出電路的系統,所述方法包括:接收資料封包;分析所述資料封包,並根據所述資料封包的分析結果判斷所述資料封包是否需進行風險控管處理,其中當判斷所述資料封包中的第一資料封包不需要進行風險控管處理時,傳送所述第一資料封包至暫存器的第一佇列,並在判斷所述資料封包中的第二資料封包需要進行風險控管處理時,傳送所述第二資料封包至電文解析器及所述暫存器的第二佇列;響應於所述第二資料封包需進行風險控管處理,分析所述第二資料封包以分離出一或多個完整電文,其中所述完整電文包括金融通訊協定的表頭資訊、電文內容以及表尾資訊;根據風控項目建立風控模型,並根據所述風控模型判斷所述完整電文是否通過所述風控項目,其中當判斷所述完整電文通過所述風控項目時,傳送通過訊號至所述暫存器;以及在所述第二佇列儲存有完整的所述第二資料封包且所述第二資料封包具有對應的所述通過訊號時,輸出所述第二佇列中完整的所述第二資料封包,其中當所述資料封包達一定數量時,先輸出所述第一佇列暫存的所述第一資料封包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109133596A TWI769534B (zh) | 2020-09-28 | 2020-09-28 | 證券交易之低延遲即時風險控制系統及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109133596A TWI769534B (zh) | 2020-09-28 | 2020-09-28 | 證券交易之低延遲即時風險控制系統及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202213240A TW202213240A (zh) | 2022-04-01 |
TWI769534B true TWI769534B (zh) | 2022-07-01 |
Family
ID=82197406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109133596A TWI769534B (zh) | 2020-09-28 | 2020-09-28 | 證券交易之低延遲即時風險控制系統及方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI769534B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685044B1 (en) * | 2007-05-11 | 2010-03-23 | Morgan Stanley | Low latency trading system |
TW201432597A (zh) * | 2012-12-06 | 2014-08-16 | Miami Internat Securities Exchange Llc | 電子交易平台及其方法 |
CN105989537A (zh) * | 2015-07-01 | 2016-10-05 | 盛立金融软件开发(杭州)有限公司 | 一种证券及金融衍生品交易风险控制系统及风险控制方法 |
-
2020
- 2020-09-28 TW TW109133596A patent/TWI769534B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685044B1 (en) * | 2007-05-11 | 2010-03-23 | Morgan Stanley | Low latency trading system |
TW201432597A (zh) * | 2012-12-06 | 2014-08-16 | Miami Internat Securities Exchange Llc | 電子交易平台及其方法 |
CN105989537A (zh) * | 2015-07-01 | 2016-10-05 | 盛立金融软件开发(杭州)有限公司 | 一种证券及金融衍生品交易风险控制系统及风险控制方法 |
Non-Patent Citations (2)
Title |
---|
網路文獻 王偉立 實現於NetFPGA SUME之低延遲權證交易風險管控方法 國立成功大學資訊工程學系碩士論文 2019/07/09 https://etdquery.lib.ncku.edu.tw/etds_query/index.php?BDMKd1EwWyEJZlY7WwQMMgIwBjZdaAN4BGRTZ1RgXGoFZVpjV2NfaAY3UTgBPgA6BjEJPgc0BGI%3D * |
網路文獻 黃義方 基於風險控管的低延遲權證交易系統及其快速FAST協定解碼器的NetFPGA設計與實作 國立成功大學資訊工程學系碩士論文 2020/03/31 https://etdquery.lib.ncku.edu.tw/etds_query/index.php?Cj0Oc1MyAXtUO1M%2BXQIKNAY0CTkGMwd8BmReaAE1WmwKalhhUmZYbgEyUTJbYV1gUWEAMFdkC20%3D; * |
Also Published As
Publication number | Publication date |
---|---|
TW202213240A (zh) | 2022-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8788512B2 (en) | Generating data feed specific parser circuits | |
US7266786B2 (en) | Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems | |
US20160147592A1 (en) | Header parity error handling | |
US20160350240A1 (en) | Serial peripheral interface host port | |
CN110661725A (zh) | 用于对出口上的网络分组进行重排序的技术 | |
EP3234777B1 (en) | Sideband parity handling | |
US20240333766A1 (en) | Method and system for processing full-stack network card task based on fpga | |
WO2015184706A1 (zh) | 统计计数设备及其实现方法、具有统计计数设备的系统 | |
CN112347020A (zh) | 一种基于cgra的fast行情解析系统和方法 | |
WO2014086219A1 (zh) | 一种基于外设部件互联总线的内容查找芯片及系统 | |
US20200387470A1 (en) | Pci express chain descriptors | |
US20180314611A1 (en) | Virtual Debugging of Server Operations | |
WO2024125185A1 (zh) | 主从设备间通讯的通讯转换方法、装置及存储介质 | |
IL275859B1 (en) | Method and device for improving bandwidth utilization in a communication network | |
TWI769534B (zh) | 證券交易之低延遲即時風險控制系統及方法 | |
Kao et al. | An FPGA-based high-frequency trading system for 10 gigabit ethernet with a latency of 433 ns | |
US20070242697A1 (en) | Method and apparatus for processing data at physical layer | |
US6952756B1 (en) | Method and apparatus for speculative loading of a memory | |
US9088594B2 (en) | Providing to a parser and processors in a network processor access to an external coprocessor | |
US20090285207A1 (en) | System and method for routing packets using tags | |
US11569939B1 (en) | Synchronizing a high-speed signaling interconnect | |
Swaminathan et al. | Design of a low power network interface for Network on chip | |
US20150331773A1 (en) | SIDEBAND LOGIC FOR MONITORING PCIe HEADERS | |
US10193797B2 (en) | Triggered-actions network processor | |
US11216398B2 (en) | USB device and data transfer method thereof |