- 十年十倍:散戶也可以學習的量化投資方法
- 金偉民
- 1485字
- 2020-05-08 10:27:52
第二節 擇時指標的選取
筆者還是通過一個例子來說明量化擇時。選用最有代表性的滬深300,從最早的2005年1月4日到2016年9月30日,為了避免過度擬合,筆者把所有的數據分成兩個部分,從2005年1月4日到2015年12月31日的數據,叫訓練區;2016年1月4日到2016年9月30日的數據,叫觀察區。優化參數用到的數據,只用訓練區的;而看效果的數據,只看觀察區的表現。這樣基本避免了過度擬合問題。其中傭金按照單向0.025%、印花稅以0.1%計算,未考慮沖擊成本。筆者這里選用了四個技術指標來說明:MA、MACD、DMA、BIAS。
MA指標
MA即均線,如MA5,就是5天的收盤價的算術平均值。擇時非常簡單,當天收盤大于均線,買入或者持有;小于均線,賣出或者空倉。
均線系統是最簡單但也非常有效的一個技術指標。那么,到底用多少天均線好呢?筆者用訓練區(2005.1.4—2015.12.31)的數據進行回測,發現最佳值是56天,對應的年化收益率是26.34%,比滬深300指數的12.89%高了不少。再看觀察區,指數是-12.80%,而MA策略是-7.37%,雖然也是虧損,但依然戰勝了指數。再核對每年的指數收益率和MA策略收益率,就會清楚地看到一個現象:在2006年、2007年、2009年、2014年等大牛市,策略收益率小于指數本身;而在2005年、2008年、2010年、2011年、2013年、2016年等熊市年,MA擇時策略的虧損遠遠小于指數本身。所以,如果我們要用擇時策略,至少需要橫跨一個牛熊周期才能起效果,特別是在牛市,別指望擇時會提高收益率。
MACD指標
MACD主要通過EMA、DIF、DEA三者之間的關系進行研判。要說清楚MACD,先要從EMA說起。EMA(Exponential Moving Average),指數平均數指標,也叫EXPMA指標,也是一種趨向類指標,是以指數式遞減加權的移動平均。其公式為:
EMA(當天)=α×當天收盤價+(1-α)×EMA(昨天)
其中α為平滑指數,一般取作2/(N+1)。
在計算MACD指標時,EMA計算中的N的經典值,短周期是12天,長周期是26天,但這些參數不一定是最佳。當公式不斷遞歸,直至EMA1出現,EMA1是沒有定義的。EMA1的取值有幾種不同的方法,通常情況下取EMA1為第一天的收盤價。
計算出短周期EMA和長周期EMA后,就可以算出差離值:
DIF=短周期EMA-長周期EMA
有了DIF,就可以計算出它的離差平均值DEA:
今日DEA=前一日DEA×(N-1)/(N+1)+今日DIF×2/(N+1)
不管是EMA還是DEA,都是一個遞推公式,那么最原始的第一個值等于多少呢?一般來說,EMA的第一個值我們取為當天的收盤價,而DEA的第一個值我們令它為0。
買入條件:
(1)當天DIF>上一天DIF;
(2)當天DIF>當天DEA;
(3)上一天DIF<上一天DEA,當天DIF>0。
賣出條件:
(1)當天DIF<上一天DIF;
(2)當天DIF<當天DEA;
(3)上一天DIF>上一天DEA,當天DIF<0。
注意:以上條件之間均是“與”的關系,如果均不符合以上條件,那么等于上一個交易日的狀態,第一天狀態為買入。
這樣在EMA中,我們有三個參數可以優化:
(1)短EMA的天數;
(2)長EMA的天數;
(3)DEA對應的天數。
在經典的教科書里,這三個值分別為6、12、9。但如果我們采用這三個值,經過回測,滬深300策略收益率是-17.94%,還不如指數的-12.80%,顯然需要優化。
經過遍歷計算,找到最佳值分別對應的三個值是20、82、9,策略訓練區對應的年化收益率是22.62%,觀察區2016年是0.28%,分別戰勝了對應的指數12.89%和-12.80%。應該說策略還是有效的。
DMA指標
DMA,平行線差指標,是利用兩條不同期間的平均線,來判斷當前買賣能量的大小和未來價格趨勢。其公式為:
DMA=收盤價短均值-收盤價長均值
AMA=DAM的均值
同樣,這里有三個參數:
(1)DMA短均值天數;
(2)DMA長均值天數;
(3)DMA均值天數。
經典參數是5、10、10。
買入條件:
(1)當天DMA>上一天DMA;
(2)當天DMA>當天AMA;
(3)昨天DMA<昨天AMA。
賣出條件:
(1)當天DMA<上一天DMA;
(2)當天DMA<當天AMA;
(3)昨天DMA>昨天AMA。
注意:以上條件均為“與”條件,其他狀態維持上一天的狀態,起始狀態買入。
按照這樣的條件進行遍歷計算,得到三個值是20、405、11天,結果訓練區年化收益率是26.58%,觀察區2016年收益率是-6.49%,分別戰勝了指數12.89%和-12.80%。而經典參數(5、10、10)對應的訓練區年化收益率6.89%,觀察區2016年收益率-14.63%,均跑輸對應的指數12.89%和-12.80%。
BIAS指標
BIAS,乖離率,是在MA基礎上發展起來的。在MA里面,只有線上或者線下之分,而BIAS則對線上多少、線下多少做了量化。經典的BIAS的定義為:
BIAS=當天收盤價/N天收盤價均值-1,BIAS最大值是100%,最小值是-100%。
筆者對BIAS指標做了量化改造,首先根據水滿則溢、月圓則虧的中國傳統哲學思想,把BIAS分了四段,分別對應四句話,增加了三個參數:A1、A2、A3,其中A1>A2>A3。四個區域分別是:
(1)當BIAS在A1和A2之間時,強者恒強,買入并持有;
(2)當BIAS大于A1時,過強轉弱,賣出并空倉;
(3)當BIAS在A2和A3之間時,弱者恒弱,賣出并空倉;
(4)當BIAS小于A3時,過弱轉強,買入并持有。
同樣,有經典參數,A1=10%,A2=0,A3=-10%。
另外一個改造是,用短周期均值替代了當天的收盤價,這樣做的好處是比較穩定,不會因為收盤價的劇烈波動導致來回買進賣出。