- 中國期貨市場量化交易(R與C++版)
- 李尉
- 3859字
- 2019-12-06 13:58:54
3.1 技術(shù)指標(biāo)來源
傳統(tǒng)的直觀的建模方法是規(guī)則型或者條件型的,滿足一系列條件就買(賣),不滿足就不進(jìn)行買(賣)。這些條件都是由人腦主觀構(gòu)造的,但由于市場變化莫測,各種情況千差萬別,很難用一些過于精確的條件來描述價(jià)格的變化。
3.1.1 建模背景介紹
舉一個(gè)類似的例子,如自動(dòng)駕駛。要教會(huì)一輛汽車自動(dòng)駕駛,如果依靠規(guī)則系統(tǒng),比如告訴它看見紅燈就減速,看見綠燈就啟動(dòng)等,這些還算比較簡單;但如果是看見前面的車就剎車、看到旁邊的車就變道、看到后面的車就加速等,則會(huì)比較復(fù)雜,整套規(guī)則體系過于龐雜也不便系統(tǒng)化地研究,很多規(guī)則都是一些較為特殊的情況,并且規(guī)則之間多有重疊性,如何泛化又是一個(gè)問題。因此,如果順著這種規(guī)則型、專家型的思路,很難進(jìn)行系統(tǒng)化的研究。
20世紀(jì)80年代最流行的模型是神經(jīng)網(wǎng)絡(luò),也有人用神經(jīng)網(wǎng)絡(luò)的方法研究自動(dòng)駕駛,可惜那時(shí)候不是很成功。神經(jīng)網(wǎng)絡(luò)的一個(gè)很大問題在于過度擬合,這主要是由模型參數(shù)過多而訓(xùn)練數(shù)據(jù)太少導(dǎo)致的。比如估計(jì)一個(gè)參數(shù)的數(shù)值,數(shù)據(jù)量每擴(kuò)大100倍,精度可以提高10倍;而如果估計(jì)的參數(shù)非常多,類似于一個(gè)高維統(tǒng)計(jì)問題,數(shù)據(jù)點(diǎn)則會(huì)更多地分布在樣本空間的邊緣地帶,從而嚴(yán)重影響參數(shù)估計(jì)的效果。詳細(xì)的討論可以參考《Elements of Statistical Learning second edition》第二章,這里不做展開。
如果數(shù)據(jù)量足夠大,在樣本空間內(nèi)部各種取值都有,參數(shù)估計(jì)則更為準(zhǔn)確。當(dāng)年神經(jīng)網(wǎng)絡(luò)的模型在今天重新運(yùn)用都取得了很好的成果,但因?yàn)樯窠?jīng)網(wǎng)絡(luò)的名聲不是很好,所以現(xiàn)在的研究者把它命名為深度學(xué)習(xí)。
現(xiàn)在回到汽車駕駛的問題。我們可收集非常長的駕駛記錄作為訓(xùn)練數(shù)據(jù),然后把可以想象到的指標(biāo)如車速、前車車速、后車車速、車距等作為因子,然后用復(fù)雜的深度學(xué)習(xí)模型,例如卷積神經(jīng)網(wǎng)絡(luò),就可以訓(xùn)練出很好的自動(dòng)駕駛系統(tǒng)。事實(shí)上,人類學(xué)習(xí)駕駛也是通過觀察別人駕駛,然后有個(gè)較為模糊的印象,而不是通過一條一條精確的規(guī)則來駕駛,這跟卷積神經(jīng)網(wǎng)絡(luò)類似,如果駕駛途中一條一條規(guī)則去套,顯然反應(yīng)不過來,容易出車禍。
因此,知道預(yù)測模型的威力之后,我們不再使用規(guī)則型的系統(tǒng),在交易中也一樣。本章主要討論預(yù)測因子,下一章再討論預(yù)測模型。
因子的來源有很多種,其實(shí)更多依賴數(shù)據(jù)的來源。如果只有行情數(shù)據(jù),那么可以做的工作非常有限。更進(jìn)一步地說,如果是持倉3、5天的中低頻策略,那么過于高頻的分筆數(shù)據(jù)用處不大,還要先整理成5分鐘K線,然后在5分鐘K線的基礎(chǔ)上構(gòu)建預(yù)測因子,這樣可以變換的方式并不多見。
如果是持倉時(shí)間更長的策略,比如2~4周,那么一般需要用日線數(shù)據(jù)建模,可以使用很多基本面的數(shù)據(jù)。國內(nèi)很多信息提供商會(huì)提供商品基本面的數(shù)據(jù),比如有上游、中游、下游三種,數(shù)據(jù)有日頻、周頻、月頻等,可以用來建模。但很多時(shí)候數(shù)據(jù)質(zhì)量是一個(gè)問題,比如數(shù)據(jù)更新不及時(shí),數(shù)據(jù)修正缺乏歷史記錄等,就會(huì)導(dǎo)致用這些數(shù)據(jù)建立的模型沒說服力。行情數(shù)據(jù)雖然簡單,但最起碼數(shù)據(jù)質(zhì)量是有保證的。如果數(shù)據(jù)質(zhì)量沒有保證,機(jī)器學(xué)習(xí)就會(huì)稱之為垃圾進(jìn)垃圾出(garbage in,garbage out),得不到有意義的結(jié)果。因此,我們這里只研究行情數(shù)據(jù)和5分鐘K線。
我們以螺紋鋼(rb)為例來說明。本地?cái)?shù)據(jù)中rb的合約有如下幾個(gè):

我們可以用rb1701作為例子:


圖3-1 螺紋鋼1701合約
具體的價(jià)格趨勢如圖3-1所示,黑線部分是所有的價(jià)格,紅線部分是該合約作為主力合約時(shí)的時(shí)間段。由此可以看出,每個(gè)合約都只有其上市時(shí)的一部分時(shí)間作為主力合約存在,其他都是作為非主力合約存在。一般來說,只有主力合約的流動(dòng)性足夠好,才能夠用來交易趨勢類策略,因此,我們這里構(gòu)造因子也只針對(duì)主力合約進(jìn)行。
一般來說,傳統(tǒng)的技術(shù)指標(biāo)并不多,下面我們逐個(gè)進(jìn)行分析。
3.1.2 R自帶的TTR庫
我們可以先看看R的TTR(Technical Trading Rules)包里面的函數(shù):

函數(shù)有64個(gè)之多,用它們構(gòu)造技術(shù)指標(biāo)應(yīng)該是足夠的。
例如我們可以先看第一個(gè)ADX。考察一個(gè)因子好壞的一個(gè)簡單方法是看它自身與未來收益的相關(guān)性是否穩(wěn)定。正負(fù)并不重要,因?yàn)橹恍枰觽€(gè)負(fù)號(hào)就可以改變。

如果一個(gè)指標(biāo),在不同的合約上,跟未來的收益率都是正相關(guān),或者都是負(fù)相關(guān),那么這個(gè)指標(biāo)是比較穩(wěn)定的;但如果一個(gè)指標(biāo)在一半合約上正相關(guān),另一半合約上負(fù)相關(guān),那么它就不是十分穩(wěn)定。另外,考察穩(wěn)定性還可以用均值/標(biāo)準(zhǔn)差的方法,類似于Z-score的概念。這里這個(gè)數(shù)值是-0.266,只從數(shù)值上我們很難分辨它是高還是低,可以結(jié)合其他因子一起來看。

由此可見,這個(gè)指標(biāo)的數(shù)值是0.45,而且15個(gè)合約中有11個(gè)是正的,比之前的指標(biāo)更為穩(wěn)定,因此,我們認(rèn)為這個(gè)指標(biāo)更好。

這個(gè)指標(biāo)僅僅用到買賣盤后,表現(xiàn)弱一些,因?yàn)橘I賣盤后跟未來80分鐘的價(jià)格變化關(guān)系不大,但是跟未來短時(shí)間的價(jià)格變化關(guān)系比較密切。因此,同樣一個(gè)指標(biāo),針對(duì)不同的預(yù)測周期,會(huì)有非常不一樣的效果。
也許很多人會(huì)問,這種利用過去行情信息預(yù)測未來的方法,是否違反市場弱有效的假說?其實(shí),這個(gè)問題可以這么考慮:首先,市場弱有效本來就是個(gè)假說,有事實(shí)支持它,也有事實(shí)反駁它。其次,每個(gè)人分析信息的能力不一樣,同樣的信息不可能同一時(shí)間反映到行情中,有人快有人慢,信息處理能力強(qiáng)的人會(huì)獲得一定優(yōu)勢,畢竟他們也支付了更多的成本(腦力、勞力),因此理應(yīng)獲得更高的收益。最后,大多數(shù)投資大師都反對(duì)市場弱有效假說,甚至有很多小幽默調(diào)侃它,比如“資助商學(xué)院教市場弱有效假說方便自己賺錢”,但對(duì)市場保持敬畏之心還是有必要的。總之,我覺得正確的態(tài)度是相信市場存在無效的時(shí)候,同時(shí)也認(rèn)可挖掘市場無效不是那么容易的事情。
我們接下來考察其他因子:

這個(gè)因子表現(xiàn)更加穩(wěn)定。有人會(huì)問構(gòu)造這些因子的過程是否復(fù)雜,我個(gè)人的觀點(diǎn)是沒必要在構(gòu)造因子上花太多的時(shí)間,原因在于因子本質(zhì)上起著向量基的作用,但是在同一個(gè)線性空間下面,目標(biāo)向量(因變量)確定后,用不同的基去表示本質(zhì)上是一樣的;其次,現(xiàn)在有boosting等各種ensemble方法,復(fù)雜的因子可以通過一定的方法由簡單的因子合成,所以沒必要去人工構(gòu)造;最后,在信息源不變的情況下,構(gòu)造的因子很多是高度相關(guān)的,如果精心構(gòu)造一個(gè)因子,或許會(huì)過于復(fù)雜,預(yù)測效果反而不好,還不如把精力放在這些簡單的因子上。綜上所述,本人不會(huì)把太多精力放在構(gòu)造因子上。這些因子都是運(yùn)用R語言自帶的函數(shù)稍加整理即可,一般只有一行代碼(one liner)。

也有些人會(huì)問,如果把這些因子都公開了,會(huì)不會(huì)對(duì)其不利。事實(shí)上,既然認(rèn)為特征工程不重要,自然也就不會(huì)認(rèn)為這些因子有多重要。量化建模是一個(gè)龐大的系統(tǒng)過程,并不存在哪塊特別重要之說,本人覺得各個(gè)環(huán)節(jié)都挺重要的,而且本人也一直處于不斷進(jìn)步中,期貨中低頻也未必是本人未來主要研究的方向。

另外,從單個(gè)因子來看,即便相關(guān)性不是很一致,但很多個(gè)因子結(jié)合起來,預(yù)測效果就會(huì)好很多,這就是把幾個(gè)弱指標(biāo)合成一個(gè)強(qiáng)指標(biāo)的意義。總之,沒必要在單個(gè)指標(biāo)上花太多時(shí)間。

好了,關(guān)于TTR的指標(biāo)就闡述到這里,剩下的內(nèi)容大家可以自己嘗試著練習(xí)一下。
3.1.3 一些技術(shù)指標(biāo)的書籍
除了R語言自帶的指標(biāo)以外,還有一些技術(shù)指標(biāo)方面的書籍大家可以參考學(xué)習(xí)一下,這里推薦一本書:《The Encyclopedia of Technical Market Indicators》,作者為Robert W. Colby。推薦這本書并不是因?yàn)檫@本書里面的技術(shù)因子有多厲害,而是因?yàn)檫@本書包含的因子數(shù)目非常多,一共有800多頁,從A排到Z,有數(shù)百個(gè)因子,因此不需要自己思考,直接把上面的因子拿來用即可。這本書網(wǎng)上有電子版,里面的技術(shù)指標(biāo)很多也包含在R的TTR包里,如果沒有包含,自己簡單仿照著寫也不困難,這里不再贅述。
另外一些是基于日本蠟燭圖(即K線圖)的預(yù)測因子,可以參考這本書《日本蠟燭圖技術(shù)》(史蒂夫·尼森著,丁圣元譯)。這些更像是一些技術(shù)形態(tài),把它們翻譯成技術(shù)指標(biāo)還需要一些工夫。
如著名的烏云蓋頂:

可以看出,這類信號(hào)的返回值只有TRUE和FALSE兩種,并不是具體的數(shù)值,因此很難直接拿來使用。這些更適合傳統(tǒng)的規(guī)則型策略,不大適合拿來用在機(jī)器學(xué)習(xí)上。
還有穿刺的形態(tài):

另外還有啟明星的形態(tài):

有人會(huì)問這些K線形態(tài)的自動(dòng)識(shí)別是不是就是我們常說的“模式識(shí)別”?其實(shí),模式識(shí)別一詞更多是針對(duì)圖像分析領(lǐng)域,比如手寫數(shù)字的識(shí)別,但運(yùn)用的方法還是傳統(tǒng)的統(tǒng)計(jì)模型,如logistic regression。現(xiàn)在也有人使用更復(fù)雜的深度學(xué)習(xí)模型,在手寫數(shù)字的識(shí)別上,誤差率又大為降低。但這類都是標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)模型,不是那種通過語言描述一種模式(比如先漲一段回調(diào)一點(diǎn)再漲起來)然后用計(jì)算機(jī)去識(shí)別的模式。很多人工炒手轉(zhuǎn)量化失敗就是因?yàn)閲L試著去用計(jì)算機(jī)語言描述這些狀態(tài),然后回測驗(yàn)證,這個(gè)是失敗的模式。畢竟炒手主觀交易很多時(shí)候也是模糊的邏輯,類似開車,而統(tǒng)計(jì)學(xué)習(xí)這類復(fù)雜模型也沒有太清晰的邏輯,本質(zhì)上也是這種模糊的思路,反而能更好擬合。
因此,這類K線形態(tài)或許不能直接拿來使用,這也是量化研究跟技術(shù)分析的一大區(qū)別,技術(shù)分析更多是基于這些形態(tài)使用的。
美國WorldQuant公司的老板寫了一本書《Finding Alphas: A Quantitative Approach to Building Trading Strategies》,里面介紹了構(gòu)建預(yù)測因子及測試的基本步驟,還給出了很多具體因子的例子,讀者可以參考。
3.1.4 常見的論文
除了這些書籍以外,還有一些常見的論文介紹了預(yù)測因子,如《Automated Trading With Boosting and Expert Weighting》,作者是German Creamer和Yoav Freund,其中Yoav Freund是adaboost的發(fā)明者,boosting領(lǐng)域的頂級(jí)研究者,而boosting是機(jī)器學(xué)習(xí)領(lǐng)域很常見的概念。
這篇文章使用了boosting的方法來研究交易,即把一些較弱的預(yù)測因子合成為較強(qiáng)的預(yù)測因子,然后再構(gòu)建模型,另外還給出了風(fēng)險(xiǎn)管理、投資組合優(yōu)化等方法,附錄給出了全部因子的公式,這些都可以作為構(gòu)建因子的素材。
另外一篇比較著名的論文是《101 Formulaic Alphas》,里面列舉了101個(gè)因子的公式,大多數(shù)適用于股票,但很多時(shí)候用在期貨也是可以的。一般來說,用于股票的因子涉及全市場股票之間的相關(guān)關(guān)系,因此有很多基于排序(rank)的指標(biāo),而期貨的因子一般只在單一品種上根據(jù)價(jià)量構(gòu)建,不需要這么復(fù)雜。
- 中國上市公司債務(wù)融資治理研究:基于非效率投資與破產(chǎn)威脅效應(yīng)的視角
- 債務(wù)周期與交易策略
- 現(xiàn)代貨幣理論:主權(quán)貨幣體系的宏觀經(jīng)濟(jì)學(xué)
- 投資盡職調(diào)查:投資邏輯、盡調(diào)方法、實(shí)戰(zhàn)案例
- 黃金屋:宏觀對(duì)沖基金頂尖交易者的掘金之道
- 簡單投資(全新升級(jí)版)
- 一本書讀通金融史
- 股票大作手操盤術(shù):融合時(shí)間和價(jià)格的利弗莫爾準(zhǔn)則
- 創(chuàng)投中國Ⅱ·優(yōu)秀創(chuàng)投家
- 影子銀行
- 區(qū)塊鏈與資產(chǎn)證券化
- 一本書玩轉(zhuǎn)移動(dòng)支付
- 證券投資分析實(shí)驗(yàn)
- 創(chuàng)業(yè)密碼:互聯(lián)網(wǎng)+時(shí)代的創(chuàng)業(yè)與融資指南
- 資本賬戶開放的條件、時(shí)機(jī)及效應(yīng)研究