徐廣斌,張偉
1. 上海證券交易所資本市場研究所,上海 200120;2. 上海證券交易所產(chǎn)品創(chuàng)新中心,上海 200120
程序化交易是指通過既定程序或特定軟件,自動生成或執(zhí)行交易指令的交易行為[1-4]。程序化交易操作策略復(fù)雜,運行高度自動化,對證券市場正常的交易秩序和交易安全造成了巨大的威脅[5]。如眾所周知的美國股市“5·6閃崩”、騎士資本等事件,均是由程序化交易誘發(fā)或直接造成的。我國證券市場上程序化交易[6]發(fā)展較晚,但光大證券“8·16”等事故也充分反映出其可能造成的嚴(yán)重影響。因此近年來,加強程序化交易監(jiān)管已成為市場諸方的一個共識。
2015年中國證券監(jiān)督管理委員會和上海證券交易所、深圳證券交易所就程序化交易監(jiān)管規(guī)則公開征求意見,其中首次提出A股程序化交易的量化標(biāo)準(zhǔn)(下文簡稱推薦規(guī)則)。推薦規(guī)則采取了“一刀切”式固定閾值方法來認定程序化交易,存在被技術(shù)性規(guī)避的局限。另一方面,程序化交易具有專業(yè)性和復(fù)雜性的特點,種類十分多樣[7-9]。從訂單功能上可將程序化交易大致分為:減少沖擊類,如冰山訂單、隱藏訂單等算法;靜默加減倉類,如大宗交易、保證成交量加權(quán)平均價格(guaranteed VWAP)算法等;交易執(zhí)行類,如交易量加權(quán)平均價格(volume weighted average price,V WA P)、時間加權(quán)平均價格(time-weighted average price,TWAP)等算法;快速執(zhí)行類,如市場直通(direct market access,DMA)及攻擊算法等。從交易模式上則可分為做市策略、執(zhí)行類策略(如訂單拆分)、套利策略和方向性策略等。根據(jù)筆者近幾年對滬市A股市場的研究,從整體上看,程序化交易對二級市場的流動性起到了積極的貢獻作用,但不同類別的程序化交易對市場的影響作用差異顯著,特別是在股市發(fā)生異常波動時,部分程序化交易會迅速消耗流動性,因此采用單一標(biāo)準(zhǔn)監(jiān)管不同種類的策略,在科學(xué)性上顯然有待商榷。
此外,由于境內(nèi)外市場程序化交易發(fā)展差異巨大,境外的策略種類、認定標(biāo)準(zhǔn)和監(jiān)管措施難以直接借鑒到國內(nèi)市場,因此,如果不構(gòu)建起A股市場的程序化交易識別和分類方法,要形成符合具體市場實際且行之有效的交易監(jiān)管措施是十分困難的。
但是,前述的現(xiàn)有方法大多依據(jù)投資目的對程序化交易進行分類,在無法事前獲知投資者意圖的前提下,市場監(jiān)管者要依據(jù)交易數(shù)據(jù)反推交易類型是很困難的。近來部分研究[10-12]從對市場定價影響的角度,探索通過分析訂單流特征來對訂單所屬的投資者進行分類,如高頻交易者、噪聲交易者、基本面投資者和投機者等;也有相關(guān)研究[13-14]從投資者的交易記錄中匯總出一些指標(biāo),再經(jīng)過分類、聚類算法對投資者進行劃分,然而這些方法的效果依賴于指標(biāo)構(gòu)建的好壞;從用戶行為數(shù)據(jù)分析的角度看,有研究[15-16]對用戶行為數(shù)據(jù)進行建模,如網(wǎng)站點擊記錄等,但這類數(shù)據(jù)涉及的屬性相對簡單、單一。整體而言,直接根據(jù)交易數(shù)據(jù)對A股程序化交易類型進行細分的相關(guān)研究迄今還比較缺乏。
鑒于深度學(xué)習(xí)[17-20]在音視頻、文本、圖像等[21-22]傳統(tǒng)領(lǐng)域的表現(xiàn),本文在系統(tǒng)分析證券交易行為數(shù)據(jù)的基礎(chǔ)上構(gòu)建了程序化交易特征指標(biāo)體系,提出利用深度學(xué)習(xí)對A股程序化交易進行智能識別和分類的方法——DeepEye。本文提出的算法提取每日交易的基本的統(tǒng)計特征,并利用深度學(xué)習(xí)技術(shù)自行發(fā)掘深層次特征,簡化了特征工程,同時避免了由專家設(shè)計指標(biāo)時引入的偏差,提升了模型效果。
由于A股市場上的程序化交易賬號占比甚小,不足1%,而非程序化交易賬戶占到99%以上,故本文采用二階段方式:首先,識別程序化交易賬戶,即給定一個賬戶的交易明細,判斷該賬戶是否為程序化交易;然后,對程序化交易賬戶進行分類,即給定一個疑似程序化交易賬戶,判斷該賬戶具體為9類程序化交易(見表1)中的哪一類。
本文首先根據(jù)證券市場交易數(shù)據(jù)分析A股程序化交易的交易行為特征,構(gòu)建了表征9類程序化交易行為的核心指標(biāo)體系,并在此基礎(chǔ)上,利用深度學(xué)習(xí)技術(shù)支持識別和分類的智能化。DeepEye主要的處理步驟如圖1所示,包括:利用交易行為數(shù)據(jù)進行核心指標(biāo)的計算,并根據(jù)類別識別規(guī)則,給目標(biāo)賬戶(以推薦規(guī)則篩選)打上標(biāo)簽,將指標(biāo)向量作為非類別屬性,對應(yīng)的標(biāo)簽向量作為類別屬性(即Label屬性);構(gòu)建深度學(xué)習(xí)模型進行訓(xùn)練,并用測試集進行驗證,如果模型訓(xùn)練達到預(yù)期目標(biāo),則保存訓(xùn)練好的模型(含狀態(tài)和權(quán)重)。在具體應(yīng)用時,DeepEye預(yù)先加載保存的模型,并根據(jù)交易數(shù)據(jù)計算各賬戶的特征指標(biāo)值,然后將其輸入模型,即可識別其所屬的類型。
表1 程序化交易賬戶類型分類
圖1 DeepEye主要處理流程
為支持上述處理流程的標(biāo)簽化處理,筆者系統(tǒng)梳理了A股市場上特征明顯的程序化交易類型,結(jié)合調(diào)研、文獻檢索、交易數(shù)據(jù)分析以及監(jiān)管經(jīng)驗,將A股市場的程序化交易分為套利交易、高頻交易、風(fēng)控交易和輔助交易幾種模式。
具體地,從使用程序化交易的主要市場參與者的角度來看,基金、券商自營和合格境外投資者(qualified foreign institutional investors,QFII)主要使用拆單和算法交易(如VWAP、TWAP)降低市場沖擊成本,同時也進行ETF套利、期現(xiàn)套利、對沖等交易,其中部分券商自營(金融工程部門)使用種類多樣的其他交易策略;大戶、超大戶主要使用ETF套利、期現(xiàn)套利和一些絕對收益策略,部分使用批量委托、拆單、自動報撤單和統(tǒng)計套利;少量散戶主要使用統(tǒng)計套利,或利用客戶端工具中相對簡單的自動化策略進行委托,或編寫簡單算法交易腳本實現(xiàn)自動化交易。
從交易行為特征上,T+0(日內(nèi)回轉(zhuǎn)交易)者主要表現(xiàn)為在同一證券品種或與衍生品之間(如信用賬戶融資融券與普通賬戶證券現(xiàn)貨之間)進行頭寸相反的一次或多次買賣,其中對于庫存股T+0,上述行為主要表現(xiàn)在同一股票上且盤后具有持倉;套利交易者表現(xiàn)為在相關(guān)品種(如ETF成分股和ETF之間)上進行快速集中的對沖交易;混合對沖類型是綜合考慮股票、融資融券和ETF申贖在所有標(biāo)的上買賣兩個方向頭寸的對沖情況,這包含了跨品種套利或以調(diào)倉為目的的程序交易行為;執(zhí)行類算法交易者主要執(zhí)行拆單或籃子交易訂單,一般不進行對沖交易,也不進行回轉(zhuǎn)交易,但進行快速集中的單個或多個證券的交易;推薦規(guī)則主要依據(jù)報單速度和報單次數(shù)來界定,忽略了以低頻(如分鐘級別)自動化執(zhí)行的算法交易,本文將此類交易行為也納入程序化交易范疇。前幾類程序化交易者都屬于對沖型交易,使用對沖或回轉(zhuǎn)的方式來保持日初和日終的風(fēng)險敞口基本不變,而算法交易(含低頻自動化)者則屬于單向看多或看空。因此,可以先根據(jù)對沖比例,將程序化交易劃分為對沖型、部分對沖型和非對沖型,然后再根據(jù)各類程序化交易的典型特征,進一步細分類型。為排除疑似傘形賬戶(如滬股通賬戶)的干擾,筆者也將傘形賬戶作為單獨一類的非程序化賬戶納入特征分析。
根據(jù)上述各類型在訂單層面的交易特征,并結(jié)合推薦規(guī)則,可將A股程序化交易行為細分為表1的9種類型。
在對各類交易行為進行分析的基礎(chǔ)上,筆者梳理出了表征各類型的12項核心特征指標(biāo)(見表2),包括推薦規(guī)則的“一個交易日內(nèi)出現(xiàn)5次以上每秒申報5筆”“1 s內(nèi)完成申報并撤銷申報,且日內(nèi)出現(xiàn)3次以上”“日內(nèi)申報2000筆以上”以及對沖類型、交易及持倉等關(guān)鍵性特征。其中指標(biāo)1至指標(biāo)3在標(biāo)簽化處理時,按是否達到推薦規(guī)則來賦值(“1/0”代表“真/偽”)。
表2 程序化交易特征指標(biāo)體系
筆者采用深度神經(jīng)網(wǎng)絡(luò)實現(xiàn)程序化交易賬戶的識別與分類。通過輸入訓(xùn)練數(shù)據(jù)集,即目標(biāo)賬號的12項特征指標(biāo)數(shù)值和標(biāo)簽化結(jié)果(即標(biāo)簽向量),訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)。通過多輪的學(xué)習(xí),網(wǎng)絡(luò)模型將記錄包含隱層中上下文信息(張量及權(quán)重),如果經(jīng)驗證集檢驗,模型達到要求,則學(xué)習(xí)結(jié)束,學(xué)習(xí)好的模型可以保存下來供后續(xù)應(yīng)用使用。這里的標(biāo)簽向量包括:用于識別是否為程序化交易的二分類標(biāo)簽;用于分類程序化交易賬戶的多分類標(biāo)簽。分別對應(yīng)程序化交易賬戶識別以及程序化交易賬戶的類型分類。
具體地,采用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)作為學(xué)習(xí)模型,在設(shè)計模型時,配置使用線性修正單元(rectified linear unit,ReLU)作為中間層的激活函數(shù),softmax作為輸出層的激活函數(shù),預(yù)測值與真實類別的交叉熵作為損失函數(shù),并采用RMSprop優(yōu)化器對模型參數(shù)進行優(yōu)化(如圖2所示)。對于從目標(biāo)賬戶中區(qū)分程序化交易和非程序化交易賬戶的任務(wù),模型輸出的是程序化交易的概率;對于識別后的程序化交易賬戶的類型進行細分,輸出為細分的9類標(biāo)簽的對應(yīng)概率。具體算法如下。
訓(xùn)練:
輸入:指標(biāo)X,標(biāo)簽y’,模型參數(shù)W(隨機初始化)。
輸出:模型參數(shù)W。
循環(huán):
計算預(yù)測值:y=softmax(rnn(X))。
計算損失:loss=cross-entropy(y,y’)。
計算參數(shù)更新方向:d=rmsprop(loss,W)。
更新參數(shù):W=W+d。
預(yù)測:
輸入:指標(biāo)X,模型參數(shù)W。
輸出:y=softmax(rnn(X))。
為反映A股程序化交易在市場穩(wěn)定階段的最新發(fā) 展?fàn)顩r,本文選取上海證券交易所(以下簡稱上證)A股市場2017年上半年的119個連續(xù)交易日作為研究樣本區(qū)間進行相關(guān)實證。本文數(shù)據(jù)主要采用上海證券交易所數(shù)據(jù)倉庫的上證A股的逐筆委托、撤單數(shù)據(jù)、成交數(shù)據(jù)、融資融券及ETF交易數(shù)據(jù)和持倉數(shù)據(jù)。研究目標(biāo)時間段為日內(nèi)9:30—15:00的盤中競價階段。
樣本區(qū)間活躍賬戶共3739萬戶,對全市場數(shù)量占比超過99%的個人投資者賬戶(即A賬戶)采用抽樣方法進行實驗,具體如下:所有個人投資者賬戶按0.01的抽樣率隨機抽樣,其他類型賬號保留,抽樣后的賬號共65.6萬戶,占總活躍賬戶的1.75%,其中個人投資者賬戶37.2萬戶,機構(gòu)賬戶28.4萬戶;程序化交易賬號6596戶,其中各類型占比如圖3所示。
實驗采用TensorFlow1.0作為深度學(xué)習(xí)后端,使用Keras 2.0.9提供高級別接口,開發(fā)語言為Python 3.6,開發(fā)和實驗環(huán)境為Fedora 22 Linux 。設(shè)備平臺為惠普Z840工作站。
圖2 程序化交易分類模型示意
圖3 程序化交易類別比例
首先是程序化交易識別,模型的輸入為表2中的指標(biāo)1、2、3、8,輸出為是否為程序化交易賬戶。經(jīng)最低申報筆數(shù)篩選和傘形特征賬戶篩除,樣本期間內(nèi)共有20.7萬個待分類賬戶,按9:1比例劃分訓(xùn)練集和驗證集,18.6萬戶為訓(xùn)練集,2.1萬戶為驗證集,鑒于實驗條件,以5120個為一個批次大?。╞atch size)進行學(xué)習(xí),學(xué)習(xí)結(jié)果為屬于程序化/非程序化交易賬戶的概率,選擇概率大的來確定類別。在具體應(yīng)用中,也可通過調(diào)節(jié)界定閾值來放松或收緊監(jiān)管范圍。經(jīng)驗證,訓(xùn)練后的模型識別準(zhǔn)確率為67%、召回率為60%。
其次是程序化交易分類,樣本期間內(nèi)共有6596個程序化交易賬戶待分類,指標(biāo)1至指標(biāo)12作為輸入,9類分類標(biāo)簽作為輸出,按9:1比例劃分訓(xùn)練集和驗證集。以512個為一個批次大小進行學(xué)習(xí)。見表3,訓(xùn)練后的模型分類準(zhǔn)確率超過70%。
最后,將模型在樣本期數(shù)據(jù)上進行應(yīng)用,得到樣本期A股程序化交易賬戶共含1.08萬戶,占活躍總賬號的0.029%,個人賬戶(A賬戶)程序化交易占比0.01%,機構(gòu)賬戶程序化交易占比2.50%。
本文提出的方法在識別和分類上取得了較高的準(zhǔn)確率,可以識別現(xiàn)有方法無法識別的、占比近13%的低頻自動化程序化交易,還支持類型細分和模糊識別,基本驗證了用于證券市場行為監(jiān)管的可行性和有效性。
本文提出程序化交易的智能識別與分類方法DeepEye,驗證了將深度學(xué)習(xí)用于投資者行為監(jiān)管的可行性和有效性。借助DeepEye識別并確定程序化交易的類別后,可以使用現(xiàn)有的賬戶分析技術(shù)進行更為深入的分析,比如分析各類別的交易特征、持倉特征、賬戶特征等,可輔助用于一線監(jiān)管中的投資者行為分析和投資者畫像分析;分類規(guī)則和特征指標(biāo)體系可作為進一步完善程序化交易監(jiān)管制度的參考;方法經(jīng)適應(yīng)性修改后還可應(yīng)用于期權(quán)、期貨等其他交易市場。該方法與現(xiàn)有程序化交易的識別方法完全兼容,覆蓋類型范圍更廣,而且支持類型細分和模糊識別,現(xiàn)已作為投資者畫像模塊的重要組成部分,應(yīng)用于上海證券交易所新一代市場監(jiān)察系統(tǒng)中。
表3 實驗結(jié)果
需要指出的是,本文的方法具有一定的局限性。一是基于人工智能的方法,預(yù)測結(jié)果對模型、算法、參數(shù)的敏感性高,可解釋性差,且有一定不確定性,需結(jié)合大數(shù)據(jù)驗證和人工決策進行應(yīng)用。二是對程序化交易賬戶的篩選處理采用了比較嚴(yán)格的標(biāo)準(zhǔn),難以對特征不明顯的行為進行處理。三是部分特征指標(biāo)閾值的合理性還需在不同市場階段和板塊上進一步論證。四是暫時缺乏衍生品市場數(shù)據(jù),難以對跨市場的程序化交易行為進行分析。
后續(xù)將使用不同市場階段數(shù)據(jù)進一步進行大樣本驗證、模型調(diào)優(yōu),并結(jié)合衍生品市場數(shù)據(jù),擴大分析范圍。