交易系統(tǒng)實施過程中的時間失真問題[程序化老手]
模擬系統(tǒng)按照自身的時間來處理其他進(jìn)程運(yùn)行時所收集和儲存的報價。進(jìn)程手機(jī)的數(shù)據(jù)現(xiàn)在已經(jīng)稱為歷史數(shù)據(jù),進(jìn)程記錄的報價頻率可以差別很大,這主要是因為以下兩個因素:
1、原始進(jìn)程為之收集報價的金融工具的個數(shù)。
2、運(yùn)行原始進(jìn)程的計算機(jī)系統(tǒng)的速度。
這兩個因素的影響源于報價過程的本質(zhì)以及大多數(shù)交易系統(tǒng)的實現(xiàn)方式。大多數(shù)系統(tǒng)中都包含一個客戶端(報價收集和/或交易應(yīng)用程序),該客戶端接收報價以及服務(wù)器(提供報價的經(jīng)紀(jì)運(yùn)營自營商應(yīng)用程序)信息。客戶端常常是在“本地”運(yùn)行的“本地”程序:即其運(yùn)行的電腦硬件完全處于交易員的掌控之下。經(jīng)紀(jì)自營商的服務(wù)器端幾乎都是遠(yuǎn)程應(yīng)用程序,這意味著客戶必須通過遠(yuǎn)程連接,比如互聯(lián)網(wǎng),才能與服務(wù)器進(jìn)行通信。為了接受報價,客戶端程序常常需要與服務(wù)器程序之間建立如下的通信:
1、客戶端向服務(wù)器發(fā)送一條或一系列包含以下內(nèi)容的消息:
a、客戶身份認(rèn)證(由掌管服務(wù)器的經(jīng)紀(jì)自營商提供給客戶的)
b、請求報價的金融證券名稱
2、服務(wù)器將會做出回應(yīng),確認(rèn)客戶端的消息。服務(wù)器的回應(yīng)還將說明是否因為某些原因不允許客戶端接收某些請求的報價。
3、服務(wù)器開始把報價源源不斷的輸出給客戶端。報價流的輸出通常采取“不同步”的方式,也就是說,只要有新的可用報價,服務(wù)器就會將它們發(fā)送給客戶端。有些證券的報價頻率比其他的證券高一些。例如,在經(jīng)濟(jì)信息發(fā)布前后的高波動階段,歐元/美元匯率報價頻率達(dá)到每秒30次也不算稀奇。然而與此同時,一些鮮為人知的股票可能在一個交易日只產(chǎn)出一次報價。因此在設(shè)計程序中接收報價的部分時,很重要的一點是記住報價的預(yù)期頻率。
4、接下來經(jīng)常會發(fā)生報價失真。所有報價一到客戶端計算機(jī)就進(jìn)行收集和處理,這是客戶端的責(zé)任。此處有可能發(fā)生若干問題。在客服端的機(jī)器里,所有到來報價都會按它們的到達(dá)順序放到一個隊列里,最早的報價里處理器最近。我們可以將此隊列看做是機(jī)場辦理登記手續(xù)的隊列。然而,與機(jī)場隊列不同的是,此隊列的長度或者容量往往是有限的;因而任何報價到來時發(fā)現(xiàn)隊列已滿,此報價會被丟掉。這里就產(chǎn)生了第一個問題,當(dāng)客戶端系統(tǒng)隊列長度不同,而其他所有系統(tǒng)特征完全一樣時,不同客戶端的報價時間序列可能會彼此不同。
一旦報價已在隊列中,系統(tǒng)會從隊列中選取最早到達(dá)的報價進(jìn)行處理;接著隊列中所有的報價會挪動,使之更靠近處理引擎。就像前面講的一樣,報價的到達(dá)速度可能要比客戶端的處理速度更快,這樣報價會填滿隊列,從而導(dǎo)致系統(tǒng)丟棄新到達(dá)的報價,直到舊的報價處理完畢。
相關(guān)文章
-
沒有相關(guān)內(nèi)容