如何做回測績效檢討?股票檔數才是策略勝負關鍵
因為你的疏忽,錯過了遇見聖杯的機會!回測的時候,究竟要注意哪些重點?發現策略效果不好,要怎麼優化呢?

跟長期關注 blog 的朋友們說聲抱歉,最近真的有點久沒更新了! 我想說先把 Hahow 上的課程照顧好,所以之前的心力都在上面, 不過目前課程代碼已經穩定許多,問題變少 終於有時間來寫寫 blog 了!
一個有趣的問題
有同學於論壇中問我,為何他的策略,差幾天選股,回測跑出來差這麼多? 請大家先看數據,從數據中找出原因吧!看你想的跟我想的是不是一樣的!
以下是策略一的獲利狀況
| 其間 | 報酬率(%) | 股票檔數 |
|---|---|---|
| 2017-06-11 – 2017-08-10 | -0.88 | 15 |
| 2017-08-10 – 2017-10-09 | +9.06 | 6 |
| 2017-10-09 – 2017-12-08 | +8.84 | 10 |
| 2017-12-08 – 2018-02-06 | -10.43 | 8 |
| 2018-02-06 – 2018-04-07 | -13.09 | 1 |
| 2018-04-07 – 2018-06-06 | +14.84 | 13 |
| 2018-06-06 – 2018-08-05 | +0.03 | 13 |

看起來不是非常理想,但同學做了一點點的修改,
把起始日期從原本的 2017/6/11 換成 2017/6/1 號,
結果變成了超好的策略:
| 其間 | 報酬率(%) | 股票檔數 |
|---|---|---|
| 2017-06-01 – 2017-07-31 | -2.36 | 20 |
| 2017-07-31 – 2017-09-29 | 8.76 | 7 |
| 2017-09-29 – 2017-11-28 | 17.26 | 6 |
| 2017-11-28 – 2018-01-27 | 3.04 | 15 |
| 2018-01-27 – 2018-03-28 | 8.21 | 9 |
| 2018-03-28 – 2018-05-27 | 5.45 | 16 |
| 2018-05-27 – 2018-07-26 | 4.07 | 6 |

回測才相隔十天,並且適用同一個選股策略, 究竟什麼造成了如此大的差異呢? 大家先不要看我的答案,看看能不能用上面的數據,自己找出原因吧!
——公佈答案——
同學最初覺得跟換股時間對報酬率有極大的影響, 但追根究底的原因,其實是「股票檔數」對於報酬率影響很大!
我們就第一張圖進行檢討, 其實仔細看的話, 會發現其實每個時間段表現,除了紫色(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檔股票囉~
財報狗的選股清單就是用類似的方式選出來的~ 有興趣的話可以試試看喔! 假如您沒有買課程的話也沒關係,概念上是一樣的喔~希望這篇文章能帶給您一些啟發~