把問題縮到最小。
今天收盤了。明天開盤,我要不要買某一檔股票?
這個問題聽起來很小,但你認真去拆,會發現它其實是兩個問題疊在一起。而這 30 天,我要做的就是把它們拆開、各自蓋起來、各自驗證,最後串成一條每天會自己跑的產線。
先講我要蓋的東西:**一條每天收盤後自己跑、隔天早上吐出一張下單清單的產線。**收盤後算,隔天開盤進場。不做當沖,不碰逐筆撮合。
「明天要不要買 2330」拆開來是:
一、在所有股票裡,2330 算不算強的?
這是選股。它問的是相對強弱——同樣一個月裡,哪些股票會比別人漲得多。這一層只看個股自己的東西:營收有沒有成長、技術面在什麼位置、法人有沒有在買。
二、現在是適合持股的時候嗎?
這是擇時。它完全不看個股,只看整個市場:現在該滿倉、半倉,還是縮到只剩三成。

這兩件事的資料來源不同、更新頻率不同、驗證方式也不同。但更重要的是:混在一起你就永遠不知道錢是誰賺的。
假設你做了一套系統,回測結果很漂亮。那是因為選股模型真的挑對了強勢股,還是因為它剛好在多頭時期滿倉、空頭時期空手?如果是後者,你其實只做了一個均線擇時策略,選股那一百多個特徵完全是裝飾。
反過來也一樣:如果選股很強但擇時亂做,你會以為選股沒用而把它砍掉。
所以這 30 天,兩層要分開蓋、分開驗證。選股層輸出排名,擇時層輸出曝險比例,最後才把兩層乘起來。
台股的日線我還在爬,20 年跑完要五個多小時,這段 Day 5、Day 6 會講。所以今天先用手上已經完整的資料示範:S&P 500,2006 年到現在,5,177 個交易日。
規則簡單到有點無聊:**指數站上 200 日均線就持有,跌破就空手。**訊號用昨天收盤算,今天才進場——這個 shift(1) 就是「不偷看未來」最基本的形式。

先看下面那張回落圖,這是擇時真正在做的事:**最大回落從 −56.8% 降到 −23.1%。**2008 年那種腰斬被砍掉一大半。
再看上面:**累積淨值 6.0 倍變成 3.1 倍。**你有四分之一的時間不在市場上,而市場長期往上,所以你必然少賺。年化報酬 9.10% 掉到 5.73%。
到這裡的故事是「拿報酬換回落」,聽起來還算划算。但把它拆成年度來看就不太一樣了。

2006 到 2025 這 20 個完整年度:
更值得看的是那三個箭頭。大盤收黑的年份總共五年(2008、2011、2015、2018、2022),但擇時只在其中兩年幫上忙——2011、2015、2018 這三年大盤收黑,擇時的結果比買進持有更差。那三次都是跌破均線之後很快漲回去,訊號讓你在低點賣出、再用更高的價格買回來。
所以擇時不是「更好的策略」,它是一份保險:平常年年繳保費,遇到 2008 那種持續性空頭才理賠。而且保費不便宜——20 年繳了 14 次。
那它到底該不該買?這就要看保費多少。
20 年裡這條規則進出場 125 次,平均一年 6.1 次。每一次進出都要付手續費和稅。
我把來回成本從 0% 掃到 0.5%,看夏普值怎麼變:

成本 0 的時候,擇時的夏普是 0.60,買進持有是 0.55——擇時確實比較好。
但成本超過大約 0.10%,優勢就沒了。
而台股來回一趟大約 0.44%(手續費打 6 折加上賣出的 0.3% 證交稅)。在這個成本結構下,同樣一條規則的夏普只剩 0.36,遠輸給買進持有的 0.55。
這就是我想在 Day 1 就講清楚的事:**擇時不是免費的,而且台股的收費特別貴。**一個在美股勉強打平的規則,搬到台股就直接出局。
要讓擇時真的有價值,你得同時做到兩件事:訊號比 200 日均線更好,而且換手比它更低。這兩件事分別是 Day 18 到 Day 22 的主題。
我以前做過一套月頻的系統:每月 10 號公布月營收,11 號買,下個月 10 號賣。一年交易 12 次,規則乾淨,也好回測。
改成日頻是因為上面那個拆解。月頻的做法把選股和擇時綁死了——進場的理由是「這檔營收好」,出場的理由是「一個月到了」。市場在這中間發生什麼事,系統完全不理會。
日頻讓兩層各走各的節奏:選股訊號的資訊還是月頻的(月營收就是一個月更新一次),但分數每天重算,因為技術面、籌碼面天天在變;擇時層則是純日頻。
代價很直接:**換手率會暴增。**月頻一年 12 次,日頻加上擇時可能變成 50 到 100 次。用剛才那個 0.44% 去乘,50 次就是 22% 的成本。
所以 Day 3 我要先把這個成本門檻算出來,當作後面每一個「我加了 X」的及格線。跨不過去的東西,再漂亮都不能留。