[投稿] 由工程師觀點看歷史數據回測

作者: SweetLee (人生如戲)   2014-02-04 00:31:45
小弟股齡17年 但之前玩法幾乎都是買定存股領股息 手上一堆十年以上股票
當時每年基本上只看盤兩次 三月和九月 更換一兩檔持股 所以幾乎算是新手
去年想開始專職玩股票 於是開始研究中短線
身為一個工程師 職業習慣又最沒大腦的研究方法八成就是:
(1)想或找一個操作策略 (2)寫成程式判斷 (3)用歷史數據回測 (4)若失敗則回到1
雖然花在研究的時間還不多 但還是分享一些跟回測有關的心得
並不是操作策略 而是一些跟做回測有關的觀念和想法
最主要也讓各位高手看看小弟的思考上有沒有錯誤的觀念 讓小弟修正 並整理思緒
1) 買入和賣出價位
這個比較基本
之前板上看到有人用"今天收盤"的數據求出買賣訊號之後 又用今日收盤價買入
這樣的回測數據根本沒有參考價值
小弟我因為上班 開盤時間無法看盤
所以回測基本上是用買賣訊號出現後隔天的"開盤價"進出的
上一段太基本了 補充一點 這裡會延伸出一個問題
如果是像小弟這種依據收盤資訊來跑操作策略的回測 有個大弱點: 停損
例如停損設5% 但第一天跌了7% 第二天開盤價賣出 可能跌停 那是損失兩個停板!!
更慘的情況是第一天指標顯示"買入" 第二天開盤價+7%買到 卻收在跌停價
指標轉為賣 於是第三天開盤價賣出可能是跌停價 24小時內損失三個停板!!
所以要小心的是 用每天的收盤資訊跑程式選股 應避免玩飆股
不然十年內發生一次快速轉折可能讓你模擬結果的年化報酬率直接降低2%
2) 回測的時間區段
用一年的資料回測肯定是不夠的 小弟認為最少要十年
例如2013年可能順勢操作的策略很難做 可是其他年可能很好做 每年都不太一樣
實際上 除非是玩很活潑的股票 不然只用10年 取樣數其實還不太夠
如果有計入手續費和證交稅 通常跑出來不錯的操作策略每年週轉率不會太高(小於10)
也就是十年內進出不到100次的取樣 統計上的信賴度其實還沒算很高
可能運氣好差個一兩次30%50%的波段 整個年化報酬率就差了3%
補充另一點是小弟個人的做法 就是模擬的區段開始價位要等於(或接近)結束價位
以大盤為例 若模擬區段的起始是7000點 結束也要7000點左右
現在大盤約8500點 要模擬要找個大約8500的起始點來模擬
為什麼? 這是要避免高風險操作
如果今天跑的模擬區間是5000點到8000點 A策略賺60% B策略賺120% 這樣B比較好嗎?
不盡然 搞不好其實A策略是買進0050持有 而B策略只是A策略開兩倍槓桿而已
當遇到另一段區間是8000點跌回5000點時 A策略賠37.5% 而B策略賠75%
更慘的是 總合起來從5000到8000再回到5000 A策略是賺0% 而B策略是賠45% 哪個好?
如果模擬有計入配股配息A策略可能還有年化5%報酬率 而B策略仍是賠的
所以呢 模擬區間小弟個人的習慣是找起始點和結束點價位差不多的區段
但這又跑出另一個問題 就是台股長期而言是會漲還是持平的?
如果從大盤指數100點開始看 台股長期是上漲的
但是以小弟的股齡來看 我沒看它長期在上漲(79年台股就破萬點了 目前未創新高)
如果認為台股長期是會上漲的 則應該找指數上升趨勢符合長期趨勢的區段
但是以目前台股的歷史看來 取樣數還差很多
或許明年就會突然漲一波 從此不回頭(等小弟經濟學好一點再來研究這個問題)
也或許小弟有生之年內 都不會碰到那種黃金時期吧
3) 持股率和報酬率之計算
因為小弟自己寫的模擬系統不是用買進和賣出訊號 而是用"持股率"
所以有持股10% 50% 100%之類的操作
這會引伸出一個問題 就是你模擬的策略的報酬率 並不是 (賣出價/買入價-100%)
正確的計算應該是 (賣出價/買入價-100%)*持股率
有一種簡化的例子 一種賭博的方法 每次輸就加倍賭注的賭法
一開始下1元 有1/2的機率賺1/1=100%
輸了再下2元 則有(1/2)^2=1/4的機率賺1/(1+2)=33%
依此類推 1/8的機率賺1/(1+2+4)=14% 有1/16的機率賺6.6%
光前三項加起來就有60%以上的報酬率了 聽起來很棒對不對?
但其實這是個公平的賭局 期望值是1 長期報酬率是0%
如果你把實際總資本算進去 例如總資本是1024元
那麼其實下注1元賺1元只有1/1024=約0.1%報酬率 輸了加倍下注賺回一樣都是0.1%
那麼其實只有0.1%*1/2 + 0.1%*1/4 + 0.1%*1/8 + .... +(-100%)*1/1024 = 0%
所以這才是正確的報酬率算法
會提到這個 是這幾天看了一本平民股神的書
他說到他的操作方式根本不怕破產
其實是因為他平常都只拿幾百萬在玩股票 持股率佔他的總資產很低
(這是正確的資金控制)
所以雖然他的操作方法常常賺好幾成甚至上倍 但他操作風險很高 是不敢梭哈的
不然以這種幾成的報酬率 玩了四十年 怎麼會只有幾億資產?
他70萬本金開始玩 假設現在有7億資產 漲了1000倍 分40年 年化報酬率是18.85%
這還是他有經歷過民國七十幾年的大多頭黃金時期所平均出來的報酬率
其實他這幾年應該賺不少 因為他說他資產大多放在房地產上
回歸正題 操作策略的報酬率 不應該以持股的報酬率來計算 而要再乘上持股率
尤其是有加碼或攤平特性的操作策略 不然你會高估了那個策略讓你資產增加的威力
這三點不小心寫得有點囉嗦
本來想要寫五點的 後面還有兩項想討論回測實驗落入fit最佳參數的問題 還有"股感"
這兩點更長 更多可以討論 為了不讓大家覺得太囉嗦 就先打住
避免最佳參數及股感的問題 讓小弟我最近使用的策略不再跑大量的回測了
目前小弟使用中的是一個使用"高斯分佈隨機漫步"理論"公式推導"的操作方式
跑過回測 績效普通而已 但其他策略都很難通過小弟的"避免最佳參數"測試 只好用這個
最近看了傑西李佛摩和平民股神的書 讓小弟開發新策略的方向轉向"股感"而不是"模擬"
股感這東西很難講 就像西洋棋大師(靠直覺的股感)vs超級電腦(靠程式判斷的模擬)一樣
(一言難盡 詳細觀念請參閱"快思慢想"一書)
目前10%資金用來練"股感" 90%資金繼續舊操作方式
等小弟花點時間練一下股感 再來看能不能替換掉目前隨機漫步的操作策略
當然也可能最後終究還是要回到寫程式跑模擬這一途
作者: hihieveryone (逐浪人)   2014-02-04 01:36:00
很糟糕掰了

Links booklink

Contact Us: admin [ a t ] ucptt.com