如何做回測績效檢討?

因為你的疏忽,錯過了遇見聖杯的機會!回測的時候,究竟要注意哪些重點?發現策略效果不好,要怎麼優化呢?

eq2 3

跟長期關注blog的朋友們說聲抱歉,最近真的有點久沒更新了!
我想說先把Hahow上的課程照顧好,所以之前的心力都在上面,
不過目前課程代碼已經穩定許多,問題變少
終於有時間來寫寫blog了!

一個有趣的問題

有同學於論壇中問我,為何他的策略,差幾天選股,回測跑出來差這麼多?
請大家先看數據,從數據中找出原因吧!看你想的跟我想的是不是一樣的!

以下是策略一的獲利狀況

其間報酬率(%)股票檔數
2017-06-11 – 2017-08-10-0.8815
2017-08-10 – 2017-10-09+9.066
2017-10-09 – 2017-12-08+8.8410
2017-12-08 – 2018-02-06-10.438
2018-02-06 – 2018-04-07-13.091
2018-04-07 – 2018-06-06+14.8413
2018-06-06 – 2018-08-05+0.0313
eq1 3

看起來不是非常理想,但同學做了一點點的修改,
把起始日期從原本的 2017/6/11 換成 2017/6/1 號,
結果變成了超好的策略:

其間報酬率(%)股票檔數
2017-06-01 – 2017-07-31-2.3620
2017-07-31 – 2017-09-298.767
2017-09-29 – 2017-11-2817.266
2017-11-28 – 2018-01-273.0415
2018-01-27 – 2018-03-288.219
2018-03-28 – 2018-05-275.4516
2018-05-27 – 2018-07-264.076
eq2 1 1

回測才相隔十天,並且適用同一個選股策略,
究竟什麼造成了如此大的差異呢?
大家先不要看我的答案,看看能不能用上面的數據,自己找出原因吧!

——公佈答案——

同學最初覺得跟換股時間對報酬率有極大的影響,
但追根究底的原因,其實是「股票檔數」對於報酬率影響很大!

我們就第一張圖進行檢討,
其實仔細看的話,
會發現其實每個時間段表現,除了紫色(2/6~4/7),其它時間都有穩定上升
代表策略能夠發揮功效

那圖1紫色時間段的問題再哪?
其實最主要的原因,紫色的時間區見內(2018-02-06 – 2018-04-07)
策略只選擇了一檔股票而已
沒有平均分散風險,造成毀滅性的虧損
解決的方法很簡單
就是讓策略每個時間段都選到一些股票,就不會有此問題了~

股票檔數是非常非常重要的一個數據!
它代表了策略的潛力~
例如策略每次都選了很多檔股票進行持有,而長期績效勝過大盤
代表這個策略非常有潛力!

我們課程上的「資優生策略」就算是非常有潛力的璞玉,一次會選出非常多檔股票
這些股票並不是拿來讓同學們直接買入,而是可以再進一步根據條件作篩選,選出數10~20檔股票!
不但股票檔數變少,績效也有可能上升!

策略製作最重要的關鍵就在於:股票檔數
假如條件太嚴苛,則可能導致選出太少檔股票,無法分散風險

我們課程中教的是以「條件來篩選」,例如 某某值大於多少 這樣子
有時候篩選不到股票,要預防這樣的問題,可以用以下的方式

condition1 = ...(課堂中的條件)
condition2 = ...
condition3 = ...
...
conditionn = ...

以上是上課用程式寫出來的條件,或是可以添加一些自己的條件,利用這些條件,幫股票做評分:


score = condition1 * 1 + condition2 * 1 + condition * 1 ... + conditionn * 1
selected_stocks = score.nlargest(20)

這邊的數字「1」都可以改成其它的權重,來代表該參數的重要性
這樣我們就可以很穩定的每次都選出20檔股票囉~

財報狗的選股清單就是用類似的方式選出來的~
有興趣的話可以試試看喔!
假如您沒有買課程的話也沒關係,概念上是一樣的喔~希望這篇文章能帶給您一些啟發~

FinLab - 韓承佑

嗨大家好,我是韓承佑,FinLab創辦人,畢業於巴黎薩克雷大學資工博士,目前擔任臺灣量化交易協會 學術顧問、台北商業大學 創新育成中心 創業技術顧問與上市科技公司 量化交易顧問。當初,我喜歡寫程式、無意間因為軟體比賽接觸Fintech,從此開始了財經跟程式的學習之路。我們成立 FinLab 量化投資部落格,用自己研發的軟體,對台灣股市做大量快速的實驗。希望可以在量化投資的路上,當大家的「武器製造商」!