交易所網關升級到新版本之后,連續兩天在開市前兩秒鍾的時候崩潰了,把coredump文件發給交易所,他們定位是操作系統時間問題導致的,簡單說就是他們會取操作系統兩個時間T1,T2,T1在前,T2在后,理論上T2>T1,但是操作系統層面有bug,導致T2<T1,這時候網關程序就崩潰了。
可以使用ping命令來檢測這個問題,如果ping的時間為負值,則說明操作系統存在這個bug。
ping命令的源代碼如下,通過調過用操作系統GetTickCount() 獲取時間戳計算數據包的傳輸時間。
printf(" time: %d ms ",GetTickCount()-icmphdr->timestamp);
深交所5代系統的敲門機制,目的是為了消除網絡延時對首筆訂單排隊的影響,保證交易的公平性。
以下是知乎上找到關於交易所敲門機制的描述:
作者:何波
鏈接:https://www.zhihu.com/question/53152697/answer/133709189
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
鏈接:https://www.zhihu.com/question/53152697/answer/133709189
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
update1
有人問到交易所敲門機制的原理,我簡單說一下,上交所和深交所的敲門機制不同,深交所新的第五代交易系統和之前的也不同,以深交所第五代交易系統為例:
謝邀~~~
我們的確用了銣原子鍾,不過我們不是做高頻交易,而是做券商的櫃台交易系統。下圖就是手機實拍的原子鍾圖。
有人問到交易所敲門機制的原理,我簡單說一下,上交所和深交所的敲門機制不同,深交所新的第五代交易系統和之前的也不同,以深交所第五代交易系統為例:
在9:14:57 TGW會向櫃台發送一個預開市信號,櫃台系統收到該信號時就可以開始申報委托,申報的委托不會被拒絕,暫時緩存在TGW內存中,不會發往交易所。TGW在發送預開市信號后,即開始與交易系統后台以ping-pong的形式測試回路時延,共測試N次,取平均值,假設為W;在每次測試中,交易系統后台都會返回收到ping包時距離9:30:00的時長,假設最后一次測試的時長為T。
TGW在收到最后一次pong包時,等待T-W時間后,開始發送第一筆委托,如果委托以平台未開放被拒絕,則立即重新發送第一筆委托,直到委托被平台接受,然后繼續發送后續委托。
也有人提到PTP協議,ptp協議得交易所鏈路上支持,雖然交易所不支持ptp,但是交易所交易主機是有原子鍾的,我們通過gps銣原子鍾去保持相對的時間戳。
--------------------------------------------------------------------------------------------------------

謝邀~~~
我們的確用了銣原子鍾,不過我們不是做高頻交易,而是做券商的櫃台交易系統。下圖就是手機實拍的原子鍾圖。
我們用原子鍾做什么呢?一個是用來和交易所對時。大家都知道早盤集合競價期間,交易所都采取敲門機制,也就是只有第一筆訂單被接收了,后續訂單才能往交易所送,那第一筆訂單如果報太早了會被交易所拒絕,就進入50ms左右的輪詢,如果報太晚就不能及時將訂單送出。所以這個時間就很精妙拉。
還有一個就是產生內部高精度定時器,遠比調用os層的定時器來的精確。
利益相關:中泰證券極速交易系統XTP的牽頭人。
還有一個就是產生內部高精度定時器,遠比調用os層的定時器來的精確。
利益相關:中泰證券極速交易系統XTP的牽頭人。
作者:何波
鏈接:https://www.zhihu.com/question/53152697/answer/133709189
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
