摘要:在金融領(lǐng)域,特別是證券高頻交易方面,“時間”是個非常敏感的詞;證券交易需要第一時間準(zhǔn)確地將訂單送出去,而且在整個交易環(huán)節(jié)中訂單的“穿越時間”要盡量小。文章主要闡述了如何用基于FPGA的授時與守時技術(shù)來精準(zhǔn)測試訂單的“穿越時間”,并搭建相應(yīng)的測試系統(tǒng)。測試結(jié)果表明,該方案具有測試精度高、部署方便、易于擴(kuò)展等優(yōu)點(diǎn),非常適合金融領(lǐng)域中多套系統(tǒng)異地部署場景下的時延測量。
關(guān)鍵詞:FPGA;原子鐘;GPS;時間同步;時延測量
中圖法分類號:F832文獻(xiàn)標(biāo)識碼:A
Research on application of FPGA-based timing and punctuality technology in securities trading
GU Huanfeng
(Shengli Anyuan Technology(Hangzhou) Co.,Ltd.,Hangzhou 310000,China)
Abstract:In the financial field, especially in the high-frequency trading of securities, “time” is a very sensitive word. Securities trading needs to send out the order accurately at the first time,and the “traveling time” of the order in the entire trading link should be as far as possible small. This article mainly expounds how to use the FPGA-based timing and punctuality technology to accurately test the “transit time” of an order, and build a corresponding test system. The test results show that the scheme has the advantages of high test accuracy,convenient deployment, and easy expansion, and is very suitable for delay measurement in the remote deployment scenario of multiple systems in the financial field.
Key words: FPGA,atomic clock,GPS, time synchronization, time delay measurement
1? 引言
如何測試系統(tǒng)的“穿越時間”在金融領(lǐng)域一直是個難度較大的問題。以證券市場來說,在最優(yōu)的環(huán)境下訂單需要穿越下單系統(tǒng)、柜臺系統(tǒng)、交換機(jī)等,最終到達(dá)交易所的撮合系統(tǒng)。同時,訂單又是根據(jù)行情產(chǎn)生的,需要經(jīng)過交易所行情系統(tǒng)、交換機(jī)、行情接收服務(wù)器到達(dá)下單系統(tǒng),以此形成閉環(huán)系統(tǒng)[1 ~2]。實(shí)際上,絕大部分情況下的系統(tǒng)還做不到本地部署,異地網(wǎng)絡(luò)的穿越時延更是不可估計(jì)。
2? 方法
2.1? 測試系統(tǒng)框架
測試系統(tǒng)(圖 1) 以金融證券領(lǐng)域的行情為例。由于地域和機(jī)房位置不同,導(dǎo)致不同的券商收到同一行情的時間是不一樣的,如何準(zhǔn)確地測量出哪家券商的行情是最優(yōu)的(最快到達(dá)),對于高頻交易[3]客戶來說,意味著能最快下訂單,從而更大概率在目標(biāo)價成交。
該系統(tǒng)框架中,兩臺異地設(shè)備—系統(tǒng)1 和系統(tǒng)2 分別部署在兩家券商(圖2),通過光纖分光器接入行情線路中,并且在通過分光器“監(jiān)聽”到的行情中打上高精度的時間戳。理論上,兩個系統(tǒng)的時間戳都是絕對時間[4]。因此,直接對比同一行情的時間就可以明確兩家券商中哪家的行情更優(yōu)。絕對時間的獲取需要通過 GPS(或者北斗系統(tǒng))來實(shí)時同步。事實(shí)上,大部分券商的系統(tǒng)都托管在證券交易的機(jī)房中,實(shí)際環(huán)境無法做到與 GPS 實(shí)時同步。如何在 GPS 信號丟失的情況下保證時間精度則是本文研究的重點(diǎn)及難點(diǎn)。
系統(tǒng)1 接 GPS 天線,確保一直處于絕對時間授時環(huán)境下;系統(tǒng)2 在 GPS 信號校正2 個小時后收回天線,確保設(shè)備處于沒有 GPS 信號環(huán)境下,從而測試設(shè)備在沒有 GPS 信號下獲取的絕對時間精度滿足要求。為方便測試,簡化測試系統(tǒng),即同一個模擬行情通過分光器一分為二后直接接兩臺設(shè)備,保證進(jìn)入兩臺設(shè)備的行情數(shù)據(jù)是同源且同時刻進(jìn)入。
為確保系統(tǒng)2 在沒有 GPS 信號下獲取的絕對時間精度滿足要求,需要在設(shè)備中實(shí)現(xiàn)授時與守時兩套系統(tǒng)。
2.2? 授時系統(tǒng)
異地時間同步需要采用同一時間作為基準(zhǔn)時間??紤]到部署和后期擴(kuò)展,該同一時間采用絕對時間具有較大優(yōu)勢。因此,我們采用 GPS 來獲取絕對時間。 GPS 授時精度可以達(dá)到<30ns。
GPS( Global Positioning System)全球定位系統(tǒng)共有 24顆衛(wèi)星運(yùn)行在6 個地心軌道平面內(nèi)。GSP 時鐘是通過接受 GPS 衛(wèi)星發(fā)射的低功率無線電信號以及通過計(jì)算得出 GPS 時間的接收裝置。為獲得準(zhǔn)確的 GPS 時間,GPS 時鐘必須先接收到至少4 顆 GPS 衛(wèi)星的信號,以計(jì)算出自己所在三維位置。在獲取位置后,GPS 時鐘也需要至少1 顆 GPS 衛(wèi)星來保證時鐘的準(zhǔn)確性。
GPS 授時設(shè)備絕對時間通過 RS232串口輸出,時間格式為 NMEA 協(xié)議,圖3 為 NMEA 協(xié)議的具體格式。圖3 中,時間解析出來就是2002年 3月 22日 14點(diǎn) 16分 44秒 0毫秒。由此可見,GPS 授時系統(tǒng)直接輸出的絕對時間只精確到毫秒。要獲得納秒級的精度,我們需要用到1PPS 輸出信號。1PPS 輸出格式時間信號每秒輸出一個脈沖,脈沖不含具體時間信息,其輸出精度可達(dá)<30ns。5C86B066-7C09-4394-9812-2379BEA3BA58
2.3? 守時系統(tǒng)
前文提到,GPS 時間的獲取需要至少一顆 GPS 衛(wèi)星來保證時鐘的準(zhǔn)確性。為解決在無法接收 GPS 衛(wèi)星的券商委托機(jī)房里保證時鐘的精度的問題,在系統(tǒng)中加入芯片級原子鐘 ( Chip?Scale? Atomic? Clock , CSAC)。CSAC 是一種計(jì)時裝置,精度可以達(dá)到每2000萬年才誤差1 秒。最初,其是由物理學(xué)家創(chuàng)造出來用于探索宇宙本質(zhì)的,目前已經(jīng)用于 GPS 導(dǎo)航系統(tǒng)上。本質(zhì)上,CSAC 是一種銣原子鐘,通過 GPS 輸出的 1PPS 信號鎖定后可以輸出與 GPS 的1PPS 同步的1PPS 輸出信號,鎖定后的精度可達(dá)15ns 。而且,一旦鎖定后,在 GPS 信號丟失的情況下,不會失鎖。在沒有 GPS 信號的情況下,鎖定后的原子鐘能很好地完成 s 級的系統(tǒng)守時。
FPGA(Field-Programmable Gate Array ,即現(xiàn)場可編程門陣列)在本系統(tǒng)中作為主要處理芯片,分光器發(fā)出的光信號通過內(nèi)部 MAC IP 實(shí)現(xiàn)行情數(shù)據(jù)幀的接收,并且打上時間戳。在250MHZ 的主頻下,兩臺不同設(shè)備的 MAC 處理時延精度可達(dá)4ns ,誤差控制在±8ns 。FPGA 時鐘模塊的時鐘源采用頻率偏差為5PPM 以內(nèi)的高精度溫控時鐘,保證 us 級甚至 ns 級的系統(tǒng)守時。
在本系統(tǒng)中,CSAC 與 FPGA 板級溫控晶振組成守時系統(tǒng)時鐘源。
3? 系統(tǒng)的搭建
系統(tǒng)授時通過外接 GPS 實(shí)現(xiàn)(也可使用北斗系統(tǒng)),秒級精度的絕對時間通過 RS232 串口輸出 NMEA 協(xié)議到 FPGA 內(nèi)部時間模塊。FPGA 提取 NMEA 協(xié)議中的絕對時間來更新和同步系統(tǒng)時間。
系統(tǒng) s 級授時通過原子鐘來實(shí)現(xiàn),GPS 輸出的高精度1PPS 信號輸出到原子鐘,該1PPS 信號對原子鐘輸出的1PPS 信號進(jìn)行同步校正。需要1 小時以上的時間進(jìn)行校正,之后原子鐘的輸出基本穩(wěn)定在 GPS 的頻率上。
CSAC 原子鐘輸出穩(wěn)定的1PPS 信號給 FPGA 時間模塊,F(xiàn)PGA 內(nèi)部時間模塊接受來自原子鐘的1PPS 信號作為更新 s 級精度時間的觸發(fā)源。同時,F(xiàn)PGA 內(nèi)部用高精度溫控時鐘實(shí)現(xiàn) ns 級精度的授時時間。
4? 結(jié)論
根據(jù)實(shí)驗(yàn)結(jié)果可知,兩臺異地設(shè)備的時間同步精度基本可保持在100~ 500ns ,且成周期性分布。72小時內(nèi),偶爾有幾個時刻的精度躥升至800~ 1000ns。
GPS 授時和 CSAC 守時基本滿足要求。
參考文獻(xiàn):
[1] 王康,胡永輝,馬紅皎.基于 IEEE1588的智能變電站時鐘同步技術(shù)[J].電力科學(xué)與技術(shù)學(xué)報,2011,26(3):9?14.
[2] 鄭翊.基于 IEEE1588的高精度時間同步技術(shù)分析與性能測試[J].中國電子科學(xué)研究院學(xué)報,2019,14(6):605?610.
[3] 孫達(dá)昌,畢秀春.基于深度學(xué)習(xí)算法的高頻交易策略及其盈利能力[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2018,48(11):923?932.
[4] 高銳.絕對時間同步的探討[J].現(xiàn)代電子技術(shù),2006(11):35?36.
作者簡介:
顧煥峰 (1981— ),碩士,中級工程師,研究方向:金融科技。5C86B066-7C09-4394-9812-2379BEA3BA58
計(jì)算機(jī)應(yīng)用文摘·觸控2022年10期