2014年6月27日 星期五

多策略組合的執行

 

多策略組合的執行

 

續前篇 多策略組合的觀察 紀錄到多個不同的策略運用可以有效降低 drawdown,同時加總各策略的獲利。

 

投資標的並不僅限期權,操作股票、債券、外匯或基金等等,都是可以搭配組合的交易,各領域也同樣可以各自分散邏輯策略,只是這邊紀錄以期權為主題商品,我們設計了順勢、逆勢、長短線、再加上選擇權策略所建立成的期權組合。

 

但是,既然有這樣的優勢,為何操作期權還是困難重重?

 

這篇要紀錄的是多策略組合的執行,實際交易上碰到的困難。這有點類似健身運動,一樣的知易行難。我們可以輕易的找到許多資料,瞭解期權多策略的設計,瞭解身體各肌群的訓練,也有很多人分享策略組合的規劃,健身減重的計劃,看起來都非常可行。交易系統不夠好、交易成本比人高,也還是有適合的策略,沒人說一定要去健身房,在家作伏地挺身、深蹲,一樣有效果。

 

只是,常常受不了作重量訓練很累,忍受drawdown很痛苦,然後就開始有了許多理由,原本的規劃開始變來變去,當然最終都是沒什麼成果的。

 

問題是在於對計劃的瞭解,以及本身的意志力和耐心(耐力),制定計劃時就必須瞭解自己能夠承受的風險,一個投資組合假設預估的年獲利200萬、年風險100萬,但一執行下去可能虧損30萬就開始懷疑策略、虧損50萬開始更動策略、然後…,當然也伴隨許多理由,總之,能有耐心在這個光世代花上一兩季的時間觀察組合表現且能貫徹執行的人真的不多,人人都只想在最短時間內,最好只花幾天,就變成肌肉健美男。

 

再想想多策略組合的特性,我們希望drawdown降低而分散邏輯,有些盤勢某些策略很擅長,相對某些策略會很難熬,如果策略夠多,那麼每天有些策略賺有些策略賠是很正常的情況,可是我們往往太聰明,希望每個策略都賺,所以又動手調整了,這個希望,正是違背了策略組合設計的初衷,是個不合理的希望,如果你真的知道什麼時候該用那支策略,那還需要作多策略嗎?

 

另外一個問題是,我們找尋的資料、參考的策略、聽到的方法…全都是教人怎麼贏,一定贏,但是很少有人會講要怎麼輸、怎麼面對輸,總會有一段時間碰到把把都是爛牌的時候,那要怎麼面對? 第一個應該從心態調整。

 

這是個重要的心態,有些贏有些輸,該贏的要贏,該輸的要輸,我們要求風險的降低,同時也放棄了許多超大獲利的時間,是值得的,因為會平均分配在其它時間的,如果組合作的好的話,口味可能像是白開水,雖然平淡,不過很健康。

 

題外話,也有人是真的討厭白開水,認為玩大的、殺來殺去才是交易,那其實對他們來說,交易本身就是一個能帶來效用的行為,就是不作就不舒服,輸輸贏贏沒關係,會覺得很有樂趣。不過,對一般人來說,交易要作的長久,還是多喝白開水吧。

 

 

 

FXB

《本文與 Bituzi 同步刊登》

 

 

 

多策略組合的觀察2

 

以前篇 多策略組合的觀察 回應讀友們的思考,或許是前篇例子說明不夠清楚,這篇就再延伸紀錄了。

 

要回應的重點整理

1. 組合的整體績效及風險

2. 資金運用效率

3. 同時運作四種不同邏輯的情形

4. 策略的刪減

5. 遇上系統性風險

 

同一個範例,策略A、B、C、D四支,及ABCD的組合,假設是一年的表現如圖。

 

策略組合

 

關於組合的整體績效,為什麼是加總不是平均,換個角度想,A、B、C、D是我們屬下的四個交易員,我們就當作管理者的角色,A交易員這年賺了300、B交易員賺了120…等等,很優秀的,四個交易員都是賺的,這個TEAM一年下來賺的,就是四個人加總起來的,800。

 

以A自己的角度來看,他的drawdown 30,表示這一年裡,績效從高點回落最多的幅度是30元,同理,B是15元,等等。不過從管理者的角度看,他們四個交易員每天有賺有賠,常常互相抵消一部份虧損,所以整個TEAM的drawdown變成只有40,而不是他們四個人加起來的90

 

如此,對TEAM來說的獲利風險比,是800 / 40 = 20倍,比起他們每人個別的比率都還好。

 

關於資金運用效率,可以有許多種資金管理方法,在例子中有drawdown資料,所以就假設是以drawdown 的倍數來控管資金使用,再假設這個倍數是3倍,A交易員drawdown 30,那需要準備本金 90來交易,交易的結果是獲利300元。而以TEAM來說,需要準備本金 120元,交易的結果是獲利800元,以這樣的例子來說,300/90 比 800/120,那當然是後者資金有效率了

 

關於同時運作四種不同邏輯的情形,讀友經驗是可能會混亂,可能會互相衝突。但是,我們要的就是衝突,如果四個策略常常同向,才該注意,這樣就會失去風險分散的效果。而實際運作上,比四種還多上太多了,夠分散的邏輯策略十個、幾十個都常常運用。

 

關於策略的刪減,以ABCD四個交易員的表現來說,A和C表現較好,那是否選擇AC兩個就好了? 這有兩個問題,第一,現實交易上,我們無法事先得知A和C表現是比B及D好,換句話說,我們若事先就知道誰什麼時間表現最好,那段時間不就梭哈押他就行了嗎? 那就不需要多策略了,當然是作不到。第二,如果A+C表現如預期的比B+D好,還是不能表示AC會比ABCD好,因為多個策略帶來的drawdown分散效果不同,例如AC的drawdown可能也是40,那AC和ABCD的P/D是480/40 & 800/40,當然還是ABCD好。這個部份,要延伸的主題是怎麼選擇各策略以及相關性的測試,下篇再紀錄了。

 

關於遇上系統性風險,讀友經驗可能會全賠,這當然可能,也就是我們要瞭解drawdown的目的,但一個好的分散組合,或許一兩天偶爾會全賠,但拉長時間看應該是有的賺有的賠,而更長的時間看應該是都要賺,才是正常有效的分散,所以我們才研究那麼多種策略來搭配。

 

以上,請讀友想法繼續交流討論囉。

 

 

2014年6月20日 星期五

多策略組合的觀察

多策略組合標圖

 

由前篇 避免過度最佳化 提到了單一程式策略儘量專注著目標,不需要把多種盤勢邏輯統統放在一支改成大雜燴,那很容易走進最佳化的陷阱,而此篇要紀錄的是各程式所合成的策略組合觀察。

 

一般說來,走到衡量整體組合的程式交易者已經作了非常多的事情了,經過策略邏輯的設計、實戰、修改,瞭解自己偏好的交易型態,瞭解自己能夠接受的風險程度,才有辦法一支一支的打造出合適的策略,再將各支策略組合觀察整體績效,觀察的第一重點就是利潤風險比。

 

以下圖為例,有四支交易策略A、B、C、D,及其個別的獲利風險

 

策略組合

 

而這四支策略組合在一起時的獲利是各別策略獲利的加總,但Drawdown則是大為降低,組合的獲利風險比為800/40=20倍,比起原先各別策略的P/D都要高的多,這是我們要的東西,原先一支策略A估計的獲利300就要準備承擔30的風險,現在組合有800的獲利卻僅要估計40的風險

 

在這個例子中,要特別衡量是組合後的Drawdown 40,與原先個別策略的Drawdown加總 90 (30+15+20+25),所計算的比例 40 / 90 = 44.4%。這個比例的意義是組合的效果,各策略因為彼此不同的損益期間表現,所以在每段時間都有互相抵補的效果

 

當然也要各策略屬性不同、目標不同才會有效,不然每支策略賺的時候一起賺、賠的時候一起賠,那放在一起也沒什麼效果,這種情況的比例算出來會是高的,可能70%、80%以上。

 

調整組合的目標就是希望能夠再降低這個比例,希望能夠到40%、30%或更低,所以在打好基礎,有了一個基本組合後,開始慢慢調整整體組合,這時可能會發現某支不太會獲利的策略加進組合反而是蠻有效的,甚至沒什麼賺賠的策略放進組合,雖然總獲利沒增加,但是Drawdown降低了,那也是一個進步

 

而且加一支普通的策略所花費的工夫,比精雕細琢一支複雜策略來的輕鬆多了。由組合的角度看,或許普通策略更值得,各位讀友可以多加思考這樣的方法,同時再次避免了單一策略的過度最佳化

 

另外有一點可以多注意的是,若要增加部位時,同一策略的加碼往往不如再加進新的策略,當然,新策略並不是那麼好生,所以對於學習新邏輯、測試新想法,都是無法停止、要持續下去的。

 

 

 

附記1: 單一策略的評估主要有介紹三項方法,各自重要,而組合評估也同樣適用,此篇僅著重獲利風險比,而另兩種方法仍值得觀察參考。

 

附記2: 此篇紀錄策略組合的評估方法及好處,工具利用可以是MultiCharts的Portfolio backtester或EXCEL自行計算(由每日的測試損益推算),這部份下篇再紀錄了。

 

 

 

FXB

《本文與 Bituzi 同步刊登》

 

 

2014年6月13日 星期五

無人知是荔枝來

 

荔枝
一騎紅塵妃子笑,無人知是荔枝來

差官快馬加鞭趕到長安,大家都以為是有重要的軍情機密,而楊貴妃卻笑了,她知道其它人不知道的事,這是荔枝來了。

 

荔枝在六七月份是盛產期,圓潤多汁,味香甘甜,初夏品嚐一下荔枝也是一種小確幸,感覺真是好。不過在期貨交易筆記裡要紀錄的是交易,在這段期間裡,市場有一天會送荔枝,知道的人會笑,其它人不知道發生什麼事。

 

日期是六月最後一個交易日,台股在近三年的這個日子表現都很好。還記得2013年6月28日發生了什麼事嗎? 尾盤急拉了近百點,事後的解讀大都指向這是作帳行情,確實是很有可能,不論基金、自營、公司派等等,六月底就要作一次績效結算上半年的損益,能漂亮點當然是更好,所以尾盤一口氣就大家一起拱上去。

 

L不是經理人,也沒想要談股票,我們的目標是指數,在這樣的一個日子會有這樣的現象,當然我們也要特別注意,過去已有發生過,今年還是可能會再發生。不過知道了作帳行情要怎麼利用,就是各自發揮了,或許作短線股票、或許作期貨極短當沖之類的。

 

這不是一個交易方法,頂多算是市場的觀察,如果讀友有所準備,而當天也出現這樣的盤勢,那就好好把握機會,吃一下荔枝吧。

 

 

2014年6月7日 星期六

避免過度最佳化

 

help

 

程式交易策略的設計有個大難題,不論是新手或老手都會一直感到困擾的問題是: 我的程式是否過度最佳化了?

 

以我們現在開發程式交易策略的方式,是將歷史資料作為數據,套用各種不同的邏輯來測試,希望能找到一種通則可以適用在對未來的預測。這樣的方式是利用歸納法找出通則,而通則是表示有一定的機率,也可以當作是我們回測的勝率。

 

但若將前述各種不同的邏輯條件增加的越來越多,就會越來越像是對數據作細節的描述,可以得到很漂亮的測試,但對未來的預測能力必然不如對過去的好,這很像是考試前把所有的考古題答案背下來,而不是真的瞭解怎麼解答,那當考試時題目稍有改變就不會寫了。

 

有指標就一定有參數,有參數就一定要作選擇,選擇參數的個數及個別的範圍。還有更大的考量是,要怎麼判斷是否也用了太多指標以致於最佳化了? 或許它真的就是這麼準,也沒什麼不可能。

 

那怎麼辦?

目前並沒有主動正向的建議或準則說明該使用多少參數或指標個數,只有被動的再去測試,常用的方法是forward backtesting,就是把數據切兩部份,一部份測試合適參數,另一部份作為未知數據來測試結果。假設同一組參數在這兩部份的運作情形差異不大,那很可能表示這組參數是夠穩健的,若在兩部份的差異很大,那好險有先作測試…

 

這邊說的差異大不大要如何判斷? 可以利用之前談過的交易策略評估,參考連結

交易策略評估-Kelly formula

交易策略評估-獲利風險比

交易策略評估-損益期間

(交流會的朋友知道怎麼從測試報表中,較快速的選擇合適參數了)。

 

 

以上,是針對單一策略作forward backtesting來判斷是否過度最佳化,但作了也評估過了,能表示未來績效會和測試時一樣好嗎? 當然,還是不一定的,唯一可以確定的是對這支策略的信心和瞭解更加提昇了,這也是很重要的。

 

除了forward backtesting之外,避免過度最佳化是從策略組合的角度來設計,簡單的說,就是讓各策略專注。專注在目標上,目標是長波段10%行情、中波段3%行情、當沖策略、極短線策略、震盪盤策略或是針對只作多空單方向的特殊策略等等。

 

在設計這些策略時,單一的目標要夠明確,例如想設計一個大行情必吃的策略,那小行情就不予理會,或許能作到避開損失就夠好了,千萬不要想連震盪小行情也吃的到,因為這樣很可能又會陷入多重邏輯的陷阱

 

以交流會談到的故事來說,動物界舉辦了鐵人三項比賽,項目是飛行、短跑和游泳,老鷹在飛行項目得了第一名,但是短跑和游泳都不行,獵豹在短跑得了第一名,但是另兩項不行,海豚則是游泳第一名,但另外兩項也不行。最後這項比賽的冠軍是一隻鴨子,三項都會一點,雖然都不怎樣。

 

這故事和程式交易策略有什麼關係? 假如我們希望設計一個任何狀況都適用的策略,什麼行情大小都要吃到,那麼就可能會設計出一個什麼都吃不好的鴨子,而好的作法應該是建立一個團隊,由老鷹、獵豹和海豚組合的超級戰隊。

 

這和避免過度最佳化又有什麼關係? 當我們專注在特定目標設計策略可以有較簡化的邏輯,同時在組合時又可以有效的截長補短,這個有不有效,主要是指降低整體drawdown,也就是看老鷹、獵豹和海豚彼此合不合,這個戰隊能否發揮綜合效果,這部份下篇再紀錄了。