最近被各種銷售忽悠鳞陨,被各種數(shù)據(jù)方的SDK和API虐,被各種風格迥異的交易柜臺血虐,今晚梳理一下真實的交易和行情是怎么一回事妹卿,這是一個非常重要但常常被忽略的事。
在上海證券交易所和深圳證券交易所蔑鹦,產(chǎn)生股票價格的方式有兩種夺克,其一是在開盤時的集合竟價,另外就是開盤后的連續(xù)竟價嚎朽。
1.集合竟價
集合竟價是將數(shù)筆委托報價或一時段內(nèi)的全部委托報價集中在一起铺纽,根據(jù)不高于申買價和不低于申賣價的原則產(chǎn)生一個成交價格,且在這個價格下成交的股票數(shù)量最大哟忍,并將這個價格作為全部成交委托的交易價格狡门,一般是在9點25的時候成交。集合竟價的基本過程如下: 假設(shè)股票G在開盤前分別有5筆買入委托和6筆賣出委托锅很,根據(jù)價格優(yōu)先的原則其馏,按買入價格由高至低和賣出價格由低至高的順序?qū)⑵浞謩e排列如下:
序號 委托買入價數(shù)量 (手) 序號 委托賣出價數(shù)量 (手)
買入 賣出
1 3.80 2 - 1 3.52 5
2 3.76 6 - 2 3.57 1
3 3.65 4 - 3 3.60 2
4 3.60 7 - 4 3.65 6
5 3.54 6 - 5 3.70 6
6 3.75 3
按不高于申買價和不低于申賣價的原則,首先可成交第一筆粗蔚,即3.80元買入委托和3.52元的賣出委托尝偎, 若要同時符合申買者和申賣者的意愿,其成交價格必須是在3.52元與3.80元之間鹏控, 但具體價格要視以后的成交情況而定致扯。這對委托成交后其它的委托排序如下:
序號委托買入價數(shù)量(手)序號委托賣出價數(shù)量(手)
1 1 3.52 3
2 3.76 6 2 3.57 1
3 3.65 4 3 3.60 2
4 3.60 7 4 3.65 6
5 3.54 6 5 3.70 6
6 3.75 3
在第一次成交中,由于賣出委托的數(shù)量多于買入委托当辐,按交易規(guī)則抖僵,序號1的買入委托2手全部成交, 序號1的賣出委托還剩余3手缘揪。 第二筆成交情況:序號2的買入委托價格為不高于3.76元耍群,數(shù)量為6手义桂。 在賣出委托中,序號1—3的委托的數(shù)量正好為6手蹈垢,其價格意愿也符合要求慷吊,正好成交, 其成交價格在3.60元—3.76元的范圍內(nèi)曹抬,成交數(shù)量為6手溉瓶。應(yīng)注意的是, 第二筆成交價格的范圍是在第一筆成交價格的范圍之內(nèi)谤民,且區(qū)間要小一些豆混。 第二筆成交后剩下的委托情況為:
序號委托買入價數(shù)量(手)序號委托賣出價數(shù)量(手)
3 3.65 4
4 3.60 7 4 3.65 6
5 3.54 6 5 3.70 6
6 3.75 3
第三筆成交情況:序號3的買入委托其價格要求不超過3.65元溪椎,而賣出委托序號4的委托價格符合要求,這樣序號3的買入委托與序號4的賣出委托就正好配對成交经瓷,其價格為3.65元宋税,因賣出委托數(shù)量大于買入委托价说,故序號4的賣出委托僅只成交了4手馅精。第三筆成交后的委托情況如下:
序號委托買入價數(shù)量(手)序號委托賣出價數(shù)量(手)
4 3.60 7 4 3.65 2
5 3.54 6 5 3.70 6
6 3.75 3
完成以上三筆委托后杂瘸,因最高買入價為3.60元,而最低賣出價為3.65吵聪,買入價與賣出價之間再沒有相交部分凌那,所以這一次的集合竟價就已完成,最后一筆的成交價就為集合竟價的平均價格吟逝。剩下的其他委托將自動進入開盤后的連續(xù)竟價。 在以上過程中赦肋,通過一次次配對块攒,成交的價格范圍逐漸縮小,而成交的數(shù)量逐漸增大佃乘,直到最后確定一個具體的成交價格囱井,并使成交量達到最大。在最后一筆配對中趣避,如果買入價和賣出價不相等庞呕,其成交價就取兩者的平均。
在這次的集合竟價中程帕,三筆委托共成交了12手住练,成交價格為3.65元愁拭,按照規(guī)定,所有參與這次集合競價并成交的岭埠,其成交價都定為3.65元蔚鸥,交易所發(fā)布的股票G的開盤價就為3.65元,成交量12手许赃。
當股票的申買價低而申賣價高而導(dǎo)致沒有股票成交時,上交所就將其開盤價空缺混聊,將連續(xù)竟價后產(chǎn)生的第一筆價格作為開盤價。而深交所對此卻另有規(guī)定: 若最高申買價高于前一交易日的收盤價技羔,就選取該價格為開盤價;若最低申賣價低于前一交易日的收盤價藤滥,就選取該價格為開盤價鳖粟;若最低申買價不高于前一交易日的收盤價、最高申賣價不低于前一交易日的收盤價拙绊,則選取前一交易日的收盤價為今日的開盤價向图。
2.連續(xù)競價
首先,而且連續(xù)競價不可能有order之間的價格交叉标沪,一旦形成交叉必然就成交了榄攀,因為沒有做市商制度,如果沒有對手盤金句,理論上是一直都不會有成交的檩赢,價格也會一直不變。
然后就形成了上面這幅圖违寞,首先賣買的五檔明細是進入等待席進行公示的價格贞瞒,并不是說只有這五檔order,比如新浪的level2行情就有十檔明細趁曼。
交易次序的規(guī)則:
- 1.價格優(yōu)先— — 較高價格買進申報優(yōu)先于較低價格買進申報军浆, 較低價格賣出申報優(yōu)先于較高價格賣出申報;
- 2.時間優(yōu)先— — 買賣方向挡闰、價格相同的乒融, 先申報者優(yōu)先於后申報者。
成交價格的規(guī)則為:
- 1.最高買入申報與最低賣出申報價位相同摄悯,以該價格為成交價赞季,并形成實時價格,該行情為中性盤射众。
- 2.買入申報價格高于即時揭示的最低賣出申報價格時碟摆,以即時揭示的最低賣出申報價格為成交價(即賣一價格),該行情為外盤叨橱。
- 3.賣出申報價格低于即時揭示的最高買入申報價格時典蜕,以即時揭示的最高買入申報價格為成交價(即買一價格)断盛,該行情為內(nèi)盤。
還是那幅圖愉舔。比如我要不進入等待席直接買入1000手钢猛,如果我報價4.30,那么此時將會以4.30成交587手轩缤,并且形成4.30的即時價格命迈,剩下的413手則會成為買一進入等待席,原來的買一就成了買二火的,賣二成了賣一壶愤。但如果我報價4.31,那么先以4.30成交587手馏鹤,然后再以4.31成交413手征椒,形成4.31的即時價格勃救,買五檔都沒變治力,賣一變成了4.31 97的狀態(tài)。
委比和委差:
- 委差 = 委買手數(shù)-委賣手數(shù)
- 委比=(委買手數(shù)-委賣手數(shù))/(委買手數(shù)+委賣手數(shù))×100%宵统。
這里計算的order都只算五檔,我自己算了一下確實是這樣益兄。
3.行情數(shù)據(jù)
因為最近要給公司選數(shù)據(jù)供應(yīng)商,所以粗略地研究了一下現(xiàn)在的行情數(shù)據(jù)疑枯。
一:什么是快照數(shù)據(jù)與交易所數(shù)據(jù)的一些細節(jié)
打一個比喻,交易數(shù)據(jù)可以想象為河流废亭,快照就是這個河流在某個橫截面的數(shù)據(jù)豆村。對于國外的高頻tick數(shù)據(jù)骂删,有完整的order數(shù)據(jù)的過程四啰,因此你可以利用這些order數(shù)據(jù)來復(fù)原快照數(shù)據(jù)柑晒。
國內(nèi)的兩大股票和四大期貨理論上講都是快照數(shù)據(jù)匙赞。比如說典型的數(shù)據(jù)字段包括
開盤價 最高價 最低價 最新價 成交量 成交額
這里的最高(低)價就從開盤到現(xiàn)在成交發(fā)生過的最高(低)價妖碉,假設(shè)你有詳細的每筆成交的明細,其實這個數(shù)據(jù)是可以用max(min)推算的坐榆,所以國外的tick數(shù)據(jù)里面一般是沒有這個字段的鱼鸠。
同樣的成交量和成交額代表的意思不是這個時刻的成交量和成交額而是這個時刻開盤到現(xiàn)在的累計成交額和成交量蚀狰。
從理論上講:T時刻的累計成交量減去T-1時刻的累計成交量就是T時刻的成交量,但是這里的"成交量"其實是T-1到T時刻的匯總成交量跛溉,其實是有很多筆組成的扮授。
期貨的level2相比level1只是頻率和報價深度上有些許區(qū)別刹勃。更有意義的是股票level2數(shù)據(jù)
從表結(jié)構(gòu)來看股票level2主要有三塊內(nèi)容:快照、逐筆成交和掛單
快照類似前述的level1的快照 不過是把5檔換成了10檔另外還有一些比如所有掛單和數(shù)量等字段伍宦,深交所和上交所有略微差異乏梁。
逐筆成交就類似國外的tick數(shù)據(jù)遇骑,確實是發(fā)生過的真正的每筆成交情況,時間戳精細到10ms亥啦。但是問題在于這個數(shù)據(jù)也是3s一次發(fā)出來,發(fā)給你0-3s這期間的tick數(shù)據(jù)而不是實時發(fā)送給你念祭,因此這里并不能把他定義為真正的tick數(shù)據(jù)碍侦。
Level2里面的掛單只有買賣一檔的Top50并不是全部掛單,另外理論上數(shù)據(jù)是紀錄這些掛單的增刪(掛單沒有改一說)站玄,但是從實際數(shù)據(jù)來看株旷,交易所的數(shù)據(jù)并不是增量增量增量這種方式發(fā)送尔邓,而是夾雜著全量掛單和增量數(shù)據(jù)的方式,所以也不是完整的掛單動作齿尽〉平冢可以用這系列推算掛單情況但是掛單變化情況只是有時能推算出來炎疆。
二:什么是好的數(shù)據(jù)
既然都是交易所發(fā)送出來的,為什么會有數(shù)據(jù)的差異全跨?
交易所比喻成一個電視臺亿遂,他不斷的給客戶發(fā)送信號。絕大多數(shù)客戶只裝了電視機,收看電視苞慢。而數(shù)據(jù)提供商裝的是錄像機需要錄數(shù)據(jù)英妓,然后把錄像帶賣給客戶绍赛。
典型的有幾類原因?qū)е聰?shù)據(jù)的差異:
1. 數(shù)據(jù)記錄方式
比如拿股票的Level1的數(shù)據(jù)為例吗蚌,交易所發(fā)布一個dbf文件蚯妇,記錄著所有證券最新的狀態(tài)數(shù)據(jù)暂筝,dbf文件是不斷的自動刷新的。那么數(shù)據(jù)提供商或者記錄數(shù)據(jù)的人需要做的時候就是每隔一段時間讀取這個文件陨收,然后把所有的數(shù)據(jù)放入數(shù)據(jù)庫鸵赖,但是因為交易所更新數(shù)據(jù)的頻率不是一個唯一值它褪,所以為了不錯過數(shù)據(jù),最好的辦法就是你讀取的頻率高于他更新的頻率宏悦。這樣問題就來了包吝,因為你讀取很多如果每次都記錄下來一來數(shù)據(jù)很大,二來很多重復(fù)數(shù)據(jù)砖瞧。所以大家往往使用的辦法就是當這條數(shù)據(jù)有變化的時候我才放入數(shù)據(jù)庫块促。
因為有這樣一條規(guī)則床未,所以你看到的一些非活躍成交的證券數(shù)據(jù)量會少于活躍成交的證券,遠期的期貨數(shù)據(jù)少于近期的斋扰,時間戳不同步等等传货,你以為是數(shù)據(jù)問題,其實不然逮壁。
2. 運維問題
這個是真正的數(shù)據(jù)提供商或者記錄數(shù)據(jù)的問題粮宛,比如某些原因如斷網(wǎng)或者程序錯誤等造成了一大段的數(shù)據(jù)丟失。按照前面所述的數(shù)據(jù)機制祖乳,其實對于Level1數(shù)據(jù)T和T+1時刻是沒有任何邏輯關(guān)聯(lián)的眷昆,假設(shè)缺失了你不可能從數(shù)據(jù)本身發(fā)現(xiàn)汁咏,因此大量的缺失其實都是這些原因造成的,而且無法彌補帅刊!就好比早期的電視錄像帶很不清晰漂问,但是過去已經(jīng)過去你已經(jīng)無法補救蚤假。
3. 程序?qū)е碌臄?shù)據(jù)錯誤
我遇到過一些比較異常的錯誤,比如說某些類型股票的價格出現(xiàn)異常袍嬉,空等等灶平,絕大部分是因為錄數(shù)據(jù)的程序的錯誤造成的,為什么會出現(xiàn)罐监?反正理由也很多笑诅,你記住會出現(xiàn)就可以了。少部分是因為交易所的問題吆你,比如說交易所曾經(jīng)把Level2數(shù)據(jù)的開盤價發(fā)錯了妇多。
因此原則上不能信任任何數(shù)據(jù)燕侠,一定要做數(shù)據(jù)方面的規(guī)則檢驗绢彤,包括對股票個數(shù)、間隔時間械巡、數(shù)據(jù)是否在正常范圍進行檢驗和清洗饶氏。