20,934 個圖表型態,零個通過檢定
把 S&P 500 的成分股在 2000 到 2017 年間的歷史整份重建,偵測出 20,934 個經典幾何型態,用三層比較基準與多重檢定校正檢驗它們對後續報酬有沒有可辨識的資訊。245 個樣本數足夠的檢定格中,通過的有 0 個。範圍只涵蓋型態學 —— RSI、MACD、KD 這類指標沒有被測過。這篇文章講的是那個零、一個被我自己推翻的中間結論,以及一個這份研究回答不了的問題:就算你真的贏了大盤,那個超額報酬值不值得你付出的代價。
作者:Elnath Finance Academy
技術分析教科書裡談圖表型態的那一塊,給了一組看起來很具體的說法:頭肩頂之後會跌、三角收斂之後會突破、雙底之後會反轉。這些說法有一個好處 —— 它們是可以被檢定的。
本研究把 S&P 500 的成分股在 2000 到 2017 年間的歷史逐月重建,在 674 檔個股的日線、週線與月線上偵測出 20,934 個九類經典圖表型態,切成 354 個檢定格(一個型態 × 一種週期 × 一個持有期 × 一個比較基準的組合),用三層比較基準與多重檢定校正檢驗它們對後續報酬有沒有統計上可辨識的資訊。
結論:245 個樣本數足夠的檢定格中,0 個通過。 中位命中率(型態出現後超額報酬為正的比例)50.45%。
但這篇文章真正想講的不是那個零。零本身並不意外 —— 它與弱式效率市場假說一致。真正值得寫下來的是過程:這份研究曾經得出相反的結論,有 16 個檢定格顯著,而且拿到沒看過的資料上還撐得住。那個結論看起來完全像個真的發現,而它是錯的。錯的地方不在資料、不在型態定義、也不在前瞻偏誤(look-ahead bias,不小心用到當下還不知道的資訊),而在一個幾乎不會有人去檢查的地方。
而且先講清楚一件事,免得後面幾節被讀成別的意思:這不是一篇說技術分析沒用的文章。 我自己就常用技術分析,也確實有一批人長期靠它獲利,有公開紀錄可查。第 7 節會完整處理這件事 —— 那些案例跟這份研究測的東西為什麼不衝突,以及它們各自能證明到哪裡。
這份研究測了什麼、沒測什麼
先把範圍講清楚,因為「技術分析」這四個字涵蓋的東西,比這份研究做的多很多:
| 內容 | |
|---|---|
| ✅ 有檢定 | 九類幾何型態 × 日/週/月三種週期 × 五個持有期 × 三層基準 = 354 個檢定格 |
| ⚠️ 算了,但沒當成檢定標的 | RSI、MACD、KD、布林通道、各期均線、ATR、ADX —— 24 個指標欄全部算完並落地。它們在管線裡只當市場狀態標記與 ZigZag 門檻的原料,從來沒有被定義成事件拿去檢定 |
| ⚠️ 算了,但沒當成條件變數 | 市場狀態(趨勢/盤整/轉換,加上波動度分層)。它被用來建配對對照組,但檢定格裡沒有這個維度 —— 所以本文答不出「同一個頭肩頂,在多頭和空頭裡表現有沒有差」 |
| ❌ 完全沒做 | 費波那契回撤、艾略特波浪、成交量型態、跨資產與跨市場訊號 |
所以本文的結論只涵蓋「幾何型態」這一塊。 把它讀成「技術分析無效」,或讀成「RSI、MACD 沒用」,都超出資料能支撐的範圍 —— 那些東西根本沒被測過。
那第二列和第三列為什麼沒做?第二列是規格問題:專案的架構文件把檢定格定義成「型態 × 週期 × 持有期」,指標從一開始就被定位成下游原料,不是檢定標的。第三列是缺口:原始的研究問題白紙黑字寫了「型態與市場狀態出現後」,但檢定格的定義漏掉了 regime 這個維度。前者是選擇,後者是疏漏,兩者我都攤在這裡。
缺的那幾塊,已經補上了
(2026-08-25 更新) 上表的 ⚠️ 和 ❌ 當時是一份待辦清單。三項都做完了,寫成續篇:49 種技術訊號,零個通過檢定。
| 當時列為 | 續篇的結果 |
|---|---|
| 市場狀態當條件變數 | 多週期趨勢展成 4 個狀態,三種組合各 2,940 格 —— 0 格通過 |
| 指標訊號(RSI/MACD/KD/布林/均線) | 30 類訊號,另加 13 類燭台型態,共 2,205 格 —— 0 格通過 |
| 費波那契回撤 | 6 類,用已凍結的 ZigZag 樞紐定錨 —— 0 格通過 |
合計 11,025 個檢定格、1,779,160 個事件,沒有任何一格通過事前登錄的門檻。
當時這一節的結尾是這樣寫的:
補完之後結論是什麼,我現在不知道,也不打算猜。……不管測出來是「有」還是「沒有」,都會照原樣寫出來。
那個承諾兌現了。而且續篇裡最重要的一段不是那個零 —— 是我差點發表的 5 個假發現:它們通過了所有既有檢查,出現的原因是我把一個對不上規格的地方改成符合規格。擋下它們的是打散對照組,因為對照組也給出 5 個。
如果你只想引用一句
請引用這一句,不要再簡化:
這九類圖表型態,用這一組凍結的定義,在 2000 到 2017 年的 S&P 500 大型股上,控制掉大盤漂移、個股特性與同期同類股之後,測不到可辨識的資訊。
比它短的說法,每一種都會多主張一點東西。特別要避開這兩種:
- 「型態學沒用」 —— 本研究測的是九類特定型態的一組特定定義,不是型態學這個家族。換個定義、換組參數、換到小型股,結論都可能不同。第 8 節第一點講的就是這件事。
- 「型態沒有實用性」 —— 本研究沒有測實用性,測的是資訊含量。沒有交易成本模型、沒有執行模型、沒有部位大小與風險控制(Limitations 第 5 點)。「測不到資訊」和「拿來交易會賠錢」是兩件不同的事,這份研究只回答前者 —— 而第 5 節那個隔夜跳空的發現顯示,就算某個型態有資訊,也不一定拿得到。
兩層內容,強度不一樣
- 發現是窄的。 九類幾何型態,在控制掉大盤、個股特性與同期同類股之後,測不到可辨識的資訊。就這樣,不能再多。
- 方法上的教訓是通用的。 第 2 節和第 6 節講的那些 —— 基準怎麼設、多重檢定怎麼算、虛無分布怎麼建錯 —— 適用於任何想拿歷史資料驗證一套方法的人,不管那套方法是型態、是指標,還是別的什麼。
所以,用技術分析贏過大盤有多難?這份研究答不了這一題 —— 它只測了其中一塊。它能答的是另一個更基本的問題:你很難知道自己有沒有贏。 而那個問題不分型態或指標,任何一種方法都得面對。
這是一篇實證研究與方法論文章。它描述一項檢定怎麼設計、得到什麼結果,以及這個結果的邊界在哪裡。它不是對任何證券或任何分析方法的推薦,也不是投資建議。
1. 檢定的到底是什麼
先把問題寫成一句可以被否證的話:
特定技術型態出現並確認之後,後續報酬的分布,是否與「沒有型態時」的分布有統計上可辨識的差異?
專案原始的研究問題比這一句寬 —— 它寫的是「技術型態與市場狀態出現後」。市場狀態最後只被用在配對對照組,沒有進入檢定格,所以本文實際回答的是上面那句窄的版本。這是前言那張表第三列講的缺口。
九類型態,全部照圖表學的傳統定義。程式先用 ZigZag(一種轉折點偵測法,門檻隨波動度 ATR 自動縮放,避免小波動被當成轉折)把價格序列縮成一串轉折點,再從轉折點的相對位置比對幾何形狀。2000 至 2017 年間偵測到的數量:
| 型態 | 數量 |
|---|---|
| 上升楔形 rising wedge | 5,999 |
| 雙頂 double top | 3,520 |
| 雙底 double bottom | 3,415 |
| 下降楔形 falling wedge | 2,864 |
| 對稱三角 symmetric triangle | 2,297 |
| 頭肩頂 head & shoulders | 947 |
| 逆頭肩 inverse head & shoulders | 852 |
| 上升三角 ascending triangle | 739 |
| 下降三角 descending triangle | 301 |
| 合計 | 20,934 |
型態不是用眼睛挑的,是程式依固定規則標出來的。以下是頭肩頂的三個實例,點圖可放大:
順帶一提,AVY 那張值得多看一眼:教科書上頭肩頂是看跌型態,而它確認之後價格直接往上走。這種事不是例外,是第 3 節那張表的日常。
資料被切成三段,而且只用了第一段
這件事會影響後面每一節,先講清楚:
| 區間 | 用途 | 這份研究動用了嗎 |
|---|---|---|
| 2000–2017 | 開發期(dev tier)。所有分析、所有嘗試都在這裡做 | ✅ 全部的結果都出自這一段 |
| 2018–2021 | 驗證期(validation tier)。只用來檢查開發期找到的東西撐不撐得住 | ⚠️ 用過一次,見第 6 節 |
| 2022 以後 | 最終保留樣本(final holdout)。全程鎖住,整個專案只能開一次 | ❌ 從未開啟 |
會這樣切,是因為在同一批資料上「找答案」和「驗證答案」不能是同一件事。找的時候你會不自覺地試很多種組合;驗的時候必須拿一批你在找的過程中完全沒碰過的資料,否則驗出來的只是你自己的痕跡。
三件在跑統計之前就先釘死的事
它們是這類研究最常見的失敗點。
第一,可用時點是「收盤跌破頸線」那一根,不是形狀完成那一根。 頭肩頂的右肩要等到頸線被跌破才算確認;在那之前,你只是在事後看圖說故事。而且確認時點不得早於所有轉折點都已經定案的時刻 —— 判斷一個高點是不是轉折點,本身就需要後面的價格才知道,直接拿它當「當下已知」是這個領域最經典的前瞻偏誤來源。
第二,所有參數在跑統計之前凍結。 門檻、容差、視窗長度全部依圖表學慣例設定,寫進設定檔後不再更動。「這個型態偵測到太少,我放寬一點容差再跑一次」是一個看起來無害、實際上會直接製造出顯著結果的動作。
這一條也帶來這份研究最根本的限制,我先在這裡點出來、第 7 節再展開:凍結定義是型態能被檢定的前提,但凍結的那一刻,它就不再是一個活人實際在做的那件事。 同一張圖,一百個人有一百種讀法;程式只有一種。
第三,測的是資訊含量(型態帶不帶資訊),不是策略可行性(拿它交易能不能賺)。 這兩件事差很遠。就算某個型態統計上顯著,它也可能因為交易成本、滑價、或第 5 節會講的隔夜跳空而完全無法執行。反過來,「無法執行」也不能反推「沒有資訊」。本研究只回答前者。
2. 三件會讓回測看起來有效的事
如果一份型態回測給出漂亮的結果,在相信它之前,先看這三件事有沒有被處理。
2.1 倖存者偏誤:樣本裡只剩活到今天的贏家
拿今天的 503 檔成分股回溯 2000 年,是這個領域最普遍的錯誤。那份清單裡的公司,定義上就是撐過了 26 年的贏家;破產的、被併掉的、被踢出指數的,全都不在裡面。任何在那份樣本上跑出來的型態,都天生站在一個只會上漲的舞台上。
本研究改用 point-in-time 成分股(每個時點「當時實際在指數裡」的名單):由維基百科條目的歷史修訂版本(每月一個快照)與成分股變更紀錄合成。全歷史累計 985 個不重複代號,不是 503。
這個數字本身就值得停一下:過去 26 年間進出 S&P 500 的公司,將近是任一時點成分股數的兩倍。
2.2 基準:大盤本來就漲
單看型態出現後的原始報酬毫無意義。具體有多沒意義,可以直接算給你看 —— 在本研究的樣本裡(2000 至 2017 年、S&P 500 成分股、含息、扣掉資料明顯錯誤的日子),隨機挑一個成分股的交易日買進、持有 20 個交易日,平均報酬是 +1.08%,其中 57.4% 的情況是正的(1,358,968 筆觀測)。
那不是型態帶來的,那是這段期間整個市場的漂移。任何宣稱「這個型態 57% 會漲」的說法,如果沒有先扣掉這一層,就等於什麼都沒說。(順帶一提,這個 +1.08% 本身也帶著第 8 節會講的倖存者偏誤,真實的漂移應該更低一些。)
所以本研究用三層比較基準,一層比一層嚴:
| 基準 | 計算 | 控制掉什麼 |
|---|---|---|
| 市場調整 | 原始報酬 − 同期 SPY(追蹤 S&P 500 的 ETF)報酬 | 大盤漂移 |
| 無條件對照 | 原始報酬 − 該檔自己的全歷史平均 | 個股特性 |
| 配對對照 | 原始報酬 − 同一天、同樣市場狀態、同一類股的對照組平均 | 日期 + 市場狀態 + 類股輪動 |
配對對照是關鍵的那一層。 如果某個型態只是碰巧比較常出現在多頭年份的科技股身上,這一層會把那個效應整個扣掉 —— 它拿同一天、同樣市場狀態、同一個類股裡「沒有出現型態」的股票當對照組。
2.3 多重檢定:一共做了 354 次
型態 × 週期 × 持有期 × 基準,總共 354 個檢定格。一個檢定格就是一個具體問題,例如:「日線的雙頂確認之後,持有 20 個交易日,用配對對照當基準,超額報酬是不是不等於零?」其中樣本數足夠可靠(事件數 ≥ 30)的有 245 個。
在完全沒有效果的世界裡,用 5% 的顯著水準做 245 次檢定,純粹靠運氣就會有大約 12 格看起來「顯著」。
這是本研究最有說服力的一組數字。同一批資料,三種嚴謹度:
| 怎麼問 | 「顯著」的格數 |
|---|---|
| 平均超額報酬的 95% 信賴區間不含 0 | 32 / 245 |
| 對正確的虛無分布檢定,未校正 p < 0.05 | 13 / 245(純運氣期望值 12.2) |
| 經 Benjamini–Hochberg FDR 校正(q = 0.10) | 0 / 245 |
第一列就是絕大多數型態回測實際做的事:把後續報酬減掉大盤,檢定它是不是不等於零。這樣做會得到 32 個「發現」。
第二列修掉了第一列的一個隱藏錯誤 —— 扣掉大盤之後,「沒有效果」的情況下也不會剛好是 0。型態不是隨機出現在日曆上的,它們集中在特定的市場環境;隨機挑一批「時間分布長得一樣」的日子,平均超額報酬本來就不會是零。所以本研究不拿 0 當標準,而是實際做出虛無分布(null distribution —— 「型態完全沒有資訊時,這個數字會長什麼樣」的分布):用 randomization test 把所有型態的日期整體平移,重算幾千次,看真實值落在那堆重算結果的什麼位置。修掉這一項,32 格掉到 13 格。
第三列做多重檢定校正。用的是 Benjamini–Hochberg 法,控制的是 FDR(false discovery rate —— 被你宣告為發現的那些裡面,有多少比例其實是假的),門檻設 q = 0.10。13 格幾乎剛好等於純運氣的期望值 12.2 格 —— 校正之後,一格都沒剩。最小的 q 值是 0.780,離門檻遠得看不到。
這件事有一個交易圈本來就在講的版本,第 7 節會回來談:用一百招各賺一次,跟用一招賺一百次,統計上完全不是同一件事。
3. 結果
以最嚴的配對對照基準、日線、持有 20 個交易日(約一個月)為例。效果量(超額報酬)是扣掉基準與虛無水準之後剩下的部分;命中率是這些事件裡超額報酬大於零的比例;q 值越接近 1,代表這一格越不可能是真的發現(門檻是 0.10):
| 型態 | 事件數 | 效果量 | 命中率 | 95% 信賴區間 | q 值 |
|---|---|---|---|---|---|
| 頭肩頂 | 532 | +0.01% | 48.5% | −0.51% ~ +0.46% | 0.99 |
| 逆頭肩 | 497 | −0.33% | 50.9% | −0.85% ~ +0.15% | 0.96 |
| 雙頂 | 1,929 | −0.17% | 48.6% | −0.49% ~ +0.12% | 0.96 |
| 雙底 | 1,916 | −0.13% | 48.9% | −0.38% ~ +0.17% | 0.96 |
| 上升楔形 | 3,150 | −0.02% | 50.9% | −0.22% ~ +0.33% | 0.98 |
| 下降楔形 | 1,340 | +0.51% | 46.7% | −0.55% ~ +1.25% | 0.93 |
| 上升三角 | 443 | +0.16% | 54.2% | −0.26% ~ +0.67% | 0.96 |
| 下降三角 | 173 | +0.93% | 53.2% | −0.35% ~ +1.94% | 0.91 |
| 對稱三角 | 1,055 | +0.37% | 49.9% | −0.13% ~ +0.90% | 0.96 |
九條信賴區間全部跨過零 —— 也就是說,每一格的真實效果都可能是零、可能是正的、也可能是負的,資料分不出來。
跨全部 245 個可靠檢定格的整體分布:
| 指標 | 值 |
|---|---|
| 中位 |效果量| | 0.26% |
| 第 90 百分位 |效果量| | 1.83% |
| 中位命中率 | 50.45% |
| 命中率落在 45%–55% 之間的格數 | 198 / 245(81%) |
| 最小未校正 p 值 | 0.0055 |
| 最小 q 值 | 0.780 |
中位命中率 50.45%。 這個數字要記住的不是它接近一半,而是它接近一半到了幾乎難堪的程度 —— 在 245 個檢定格裡,五分之四的命中率落在擲硬幣的 ±5 個百分點之內。
值得注意的是方向也不整齊:頭肩頂(傳統上被視為看跌型態)在這裡的超額報酬是 +0.01%,雙底(傳統上看漲)是 −0.13%。這不是「型態反著做有效」,那兩個數字都在雜訊裡。它只是說明,當效果量小到這個程度時,正負號本身沒有意義。
4. 檢定力:這個「零」不是因為測不出來
一個測不出東西的檢定,跟一個「沒有東西可測」的世界,會給出一模一樣的報表。所以必須分開它們。
分開它們的方法是做檢定力分析(statistical power —— 一個真實存在的效果,這套檢定抓得到的機率):拿真實的事件結構(雙頂,n = 3,147)注入一個已知大小的效果,看檢定抓不抓得到:
| 注入的效果 | 偵測率 |
|---|---|
| 0.5% | 83% |
| 1.0% | 100% |
| 2.0% | 100% |
同時,在虛無為真(確定沒有效果)的情況下,偽陽性率是 0%(名目值 5%,所以這套檢定偏保守)。
如果真的存在 1% 的效果,這套檢定會 100% 抓到它。 而實際觀測到的效果量,中位數只有 0.26%,第 90 百分位也才 1.83%。
換句話說:不是望遠鏡不夠亮,是那個位置上沒有星星 —— 至少沒有大到 1% 的星星。
5. 型態標記的是「有消息的日子」,不是預測消息
這是本研究最具體的一項發現,也是我認為最有用的一段。
把每天的價格變動拆成兩段:
其中隔夜跳空是「開盤 ÷ 前一日收盤 − 1」(涵蓋收盤後到隔天開盤前的所有消息),盤中變動是「收盤 ÷ 開盤 − 1」。
第一個結果:隔夜那一段佔了日變動總變異的 60.6%。 超過一半的股價變動,發生在市場關著的時候。
第二個結果更重要 —— 型態確認的那一天,特別容易是有大跳空的那一天:
| 指標 | 型態確認日 | 一般交易日 | 倍數 |
|---|---|---|---|
| 平均跳空幅度 | 1.29% | 0.69% | 1.87× |
| 跳空超過 2% 的比例 | 15.57% | 5.91% | 2.63× |
| 跳空超過 5% 的比例 | 5.53% | 0.96% | 5.76× |
| 落在全市場一起跳空的日子 | 1.09% | 0.40% | 2.70× |
而且 22.3% 的型態確認,光是隔夜那一段就佔了當日變動的一半以上。
「全市場一起跳空的日子」是這樣認定的:同一天有 20% 以上的成分股同方向大跳空,就歸類為總體經濟或系統性事件。這樣找出來的 27 天,全部對應已知的重大事件 —— 2020 年 3 月的 COVID 崩盤與反彈、2008 年 10 月的金融海嘯、2015 年 8 月的人民幣貶值閃崩、2020 年 11 月 9 日的輝瑞疫苗公布 —— 沒有一天是雜訊,代表這個分類方法自我驗證通過。
把這幾項放在一起,圖像就很清楚了:
型態不是預測了那些消息。是那些消息造成的價格移動,觸發了型態確認。 頸線之所以被跌破,很多時候是因為財報或總經數據在開盤前把價格直接推穿了它 —— 盤中根本沒有出現那個「跌破」的過程。這也解釋了為什麼配對對照那一層會把效果扣光:一旦把「同一天、同樣市場狀態、同一個類股」的共同衝擊拿掉,屬於型態本身的貢獻就沒了。
順帶一提,這件事對策略可行性的意涵,比對資訊含量更嚴重。有相當比例的型態確認發生在跳空裡,代表就算某個型態統計上顯著,任何在盤中才能發動的反應都已經來不及 —— 價格在市場開門之前就已經到了。
6. 我推翻掉的那個中間結論
接下來這一節,講的是這份研究做錯過一次的地方。它比前面所有結果加起來更值得讀 —— 因為那個錯誤不是粗心,而是一個結構性的陷阱:它讓報表上每一個數字看起來都正常,連專門用來抓錯的檢查都通過了。
第一版分析跑完的時候,結果是這樣的:開發期(2000–2017)16 格顯著,拿到驗證期(2018–2021,那批資料在找的過程中完全沒碰過)方向一致 15/16,其中 5 格重現成功。
這看起來完全像一個真的發現。溫和、不誇張、方向穩定、換一批資料還撐得住 —— 如果要我挑一份會讓自己上當的報表,長得就是這個樣子。
那全部是假象。
問題出在第 2.3 節那個虛無分布,建構方式錯了。
型態確認高度集中在特定的日子(統計上叫叢聚,clustering):開發期的 18,441 個事件分布在 3,836 個交易日上,每日中位數 3 個、最多 63 個,最忙的 1% 的日子包辦了 7.6% 的事件。原因不難理解 —— 大盤大跌的那一天,幾百檔股票同時跌破各自的頸線。同一天的事件共享同一個市場衝擊,彼此高度相關。
而原本的 randomization 是對每個事件各自獨立抽一個新日期。這把叢聚結構打散了:重抽之後的虛無世界裡,事件均勻地灑在日曆上、彼此獨立,平均起來的雜訊因此比真實世界小得多。
實測(持有 20 日、同一組事件):
| 重新指派日期的方式 | 虛無分布標準差 |
|---|---|
| 每個事件各自獨立重抽(舊) | 0.000667 |
| 全體一起平移同一個天數(新) | 0.001754 |
虛無分布窄了 2.63 倍。 後果很直接:一個真實只有 1σ(一個標準差,也就是完全在雜訊範圍內)的效果,會被算成 2.6σ —— 看起來就像個發現。而且這個偏差很有規律,所以錯誤的結果看起來才會那麼整齊、那麼像真的。
修正方式是改成全體一起平移:所有事件在各自股票的序列上平移同一個天數。這保留了事件數、同一檔股票內事件的相對間距、以及跨股票的同日叢聚;唯一被破壞的是「事件與真實市場日期的對齊」—— 而那正是這個步驟應該破壞的東西。
改完之後,三層基準全部歸零。
最值得記住的一點
這份研究從頭到尾都有跑虛無假設煙霧測試:把事件標籤打散,確認檢定不會再報告顯著(如果打散之後還說有發現,那流程一定有問題)。
那個煙霧測試在兩個版本下都通過。
原因是:打散後的資料,跟拿來比對的虛無分布,是用同一套邏輯建構的。兩邊同時錯,就互相抵消了。煙霧測試能抓「流程會不會把純雜訊看成發現」,但它抓不到「虛無分布本身建構錯誤」這一整類問題 —— 因為錯誤同時存在於被測物和量尺上。
最後抓到它的不是任何一個測試,而是一個更笨的動作:直接去量虛無分布的寬度,然後跟一個保留了叢聚結構的版本比大小。
如果這篇文章只留下一句話,我希望是這句:綠燈全亮不代表沒事,只代表所有的燈都接在同一條線上。
7. 那為什麼還是有人靠技術分析賺錢
前面六節如果讀起來像「技術分析沒用」,那是我沒寫清楚。我自己就常用技術分析。 而且確實有一批人長期靠它獲利 —— 這件事不需要爭論,有公開紀錄可查。
幾個公開程度不同的案例:
| 案例 | 是什麼 | 可查證程度 |
|---|---|---|
| 海龜實驗(1983–84) | Richard Dennis 與 William Eckhardt 打賭「交易能不能教」,招募素人、教一套完全機械化的突破規則 | 高:規則後來由參與者公開出版,多本專書記載。個別學員績效說法不一 |
| U.S. Investing Championship | 1980 年代開辦至今的真實帳戶交易競賽,歷屆冠軍包含 Marty Schwartz、David Ryan、Mark Minervini,都是公開的技術面操作者 | 中高:競賽與名次公開;報酬數字多為主辦與媒體轉述 |
| Paul Tudor Jones 與 1987 | 大量使用圖表分析,在 1987 年崩盤前站對方向 | 中:主要見於《金融怪傑》與 1987 年紀錄片《Trader》 |
| 系統化順勢基金(Man AHL、Winton、Millburn 等) | 用價格資料驅動的規則型策略,數十年的受監管績效紀錄 | 最高:受監管、經審計、定期公告 |
上表只描述這些案例是什麼、以及查得到多少,不引用具體報酬數字 —— 那些數字多半沒有獨立審計,轉述一次就多一層失真。原始出處如下,請自己去看:
- 海龜實驗 —— 規則全文由參與者 Curtis Faith 在取得 Richard Dennis 同意後免費公開,官方站是 originalturtles.org;公開的理由寫在文件開頭:對抗市面上賣系統與講座的詐騙。另見 Curtis Faith《Way of the Turtle》(McGraw-Hill, 2007)與 Michael Covel《The Complete TurtleTrader》(HarperBusiness, 2007)。
- U.S. Investing Championship —— 主辦官網 financial-competitions.com,由 Norman Zadeh 主持,1983 年開辦、中斷後 2019 年重啟。參賽者須綁定可查核的券商帳戶,依帳戶百分比報酬排名 —— 這是由主辦方查核,不是獨立審計,兩者不一樣。Minervini 2021 年奪冠的新聞稿:PR Newswire。
- Paul Tudor Jones —— Jack D. Schwager《Market Wizards》(New York Institute of Finance, 1989;Internet Archive 有借閱本);紀錄片《Trader》(PBS, 1987,導演 Michael Glyn,IMDb)。這部片後來由本人要求撤出流通,現在網路上流傳的多是非官方轉錄,引用時要知道這件事。
- 系統化順勢基金 —— Man AHL(1987 年成立)、Winton(1997 年由 David Harding 成立)。兩家都是有數十年公開紀錄的機構級系統化交易公司,這也是上表把它們列為可查證程度最高的原因。
把這些案例跟這份研究放在一起看,會得到四個結論,而它們彼此並不衝突。
一、他們做的事,跟這份研究測的東西不是同一件事
看那張表最右邊那一欄:可查證程度最高的那一類,是規則型順勢策略,不是圖表型態。 海龜的規則是「突破 N 日高點就進場,用波動度決定部位大小,跌破就出場」—— 裡面沒有頭肩頂、沒有頸線、沒有楔形。
而討論度最高的那幾位,用的也不是單一型態。他們的做法把成長條件、相對強度、底部結構、和嚴格的風險控制綁在一起;型態在那個流程裡是扣扳機的那一下,不是優勢的來源。
這正是本研究的範圍限制在起作用:我測的是「這個幾何形狀本身帶不帶資訊」。答案是不帶。這跟「把型態當成一整套流程裡的觸發條件有沒有用」是兩個不同的問題,而我沒有測後者。
二、你看到的名字,是從一個很大的池子裡被挑出來的
這件事我要講得精確一點,因為它很容易被寫成「那些人只是運氣好」—— 我不是那個意思。
回去看第 2.3 節:245 個檢定格,純粹靠運氣就會有大約 12 格看起來顯著。競賽與名人榜,是同一個結構在真實世界的版本。 每一屆競賽有幾百人報名,被報導的是名次表最上面那一行;沒有人統計那幾百人的整體分布,也很少有人追蹤前一屆的冠軍後來怎麼了。
這不代表冠軍沒有本事。它代表的是:光看被挑出來的那幾個,你分不出「本事」和「大樣本的尾巴」各佔多少。 兩種解釋在那份資料上都成立,而且很可能兩者都佔了一部分。
要分開它們,需要的東西跟這份研究需要的一模一樣:事前定好規則、完整記錄所有嘗試(不是只記得成功的那幾次)、有對照組。這也是為什麼一份公開的交易日誌比任何一次冠軍都有說服力 —— 前者記錄了全部,後者只記錄了尾巴。
三、同一張圖,一百個人有一百種讀法
技術分析真正有趣的地方,是它不是一套固定規則。同一張日線圖,兩個人可以一個看到即將完成的底部、一個看到還沒跌完的下降通道;換到週線又是另一個故事,月線再一個。每個人手上那一套,是自己花很多年磨出來的,別人拿去用不見得一樣。
這件事對本研究是致命的,我必須講明白: 我為了讓型態可被檢定,必須先把定義凍結成一組固定參數(第 1 節)。凍結之後它才測得動 —— 但凍結的那一刻,它就不再是一個活人實際在做的那件事了。
所以誠實的說法是:這份研究能否證的,是「一個固定的、寫得出來的型態規則」;它證不了也否不了「一個活人累積多年、隨盤面調整的判斷」。 後者不是我用了錯的方法去測,是它在方法上就不可被這樣測 —— 因為它每一次都不完全一樣。
那不是替技術分析開脫。那是一把雙面刃:不可檢定,同時也代表不可驗證。 你沒辦法向別人證明它有效,別人也沒辦法向你證明它無效 —— 包括你自己在內。
四、一招用一百次,勝過一百招各用一次
交易圈有一句反覆出現的話:用同一招賺一百次,勝過用一百招賺一百次。
這句話通常被當成心法在講。但它其實就是第 2.3 節那個統計問題,只是換了個講法:
- 一百招各賺一次 = 一百次檢定。裡面必然有幾次是純運氣,而你事後分不出是哪幾次。
- 一招賺一百次 = 一次檢定,n = 100。這個東西統計上可辨識 —— 而且更重要的是,你自己有辦法知道它到底行不行。
FDR 校正做的事,就是把第一種情況的帳算清楚。而「只做一招」之所以在真實世界站得住,有很大一部分原因不是那一招特別強,而是它讓你有機會累積到足夠的次數,去發現那一招其實不行。
用一百招的人永遠不會發現這件事。他只會記得成功的那幾次。
8. 這證明了什麼、沒證明什麼
三個層次,強度遞減。
一、這不是「技術分析無效」的證明 —— 連「型態學無效」都算不上。 本研究測的是九類特定幾何型態、一組凍結的參數、在 S&P 500 大型股、日/週/月三種週期上帶不帶資訊。換一組參數、換一種型態定義、換到小型股或其他資產類別,結論都可能不同。而指標類方法(RSI、MACD、KD、布林通道、均線)與費波那契根本沒有被測過,市場狀態這一維也沒進檢定格。任何把本文結論外推到技術分析整體的說法,都超出資料能支撐的範圍 —— 前言那張表與第 7 節整節都在講這件事。
二、但它與弱式效率市場假說一致。 如果這些型態帶有可辨識的資訊,以 20,934 個型態、1% 效果量 100% 的檢定力,應該看得到。看不到,最簡單的解釋是那些資訊已經反映在價格裡了。
三、最具體、也最站得住腳的是第 5 節那個發現。 型態確認日的大跳空機率是一般交易日的 5.76 倍、落在總經事件日的機率是 2.70 倍。型態在標記消息,不在預測消息。
這份研究本身的問題
誠實地列出來,並標明每一項讓結果看起來更好還是更差:
-
範圍:只測了型態學,而且缺了市場狀態這一維。 這一條比底下任何一條資料問題都更根本。指標類方法完全沒測,市場狀態算了但沒進檢定格。這不是偏誤,是缺口 —— 它不會讓現有數字偏高或偏低,但會讓結論的適用範圍比讀者第一眼以為的窄很多。
-
2007 年以前的成分股名單不完整。 2000 年只重建出 447 檔(真實約 500)。缺的是「當時在指數裡、2007 年前離開、而且離開沒被記錄」的公司 —— 多半是輸家。這個方向對本研究不利:它會讓早期樣本的型態看起來比實際更有效。
-
行情資料缺下市股。 985 檔裡只有 674 檔(68%)拿得到價格資料。所以這一版的結果仍然帶著倖存者偏誤(survivorship bias),方向同樣是讓型態看起來更有效。
-
型態定義有主觀性。 幾何規則是眾多合理定義之一。參數已在分析前凍結,但不同參數會得到不同結果(見第 7 節第三點)。
-
沒有計入交易成本。 本研究測的是資訊含量,不是策略可行性。
-
只涵蓋 S&P 500 大型股。 不可外推到小型股、非美股或其他資產類別。
-
資料商會回頭修訂歷史資料。 今天下載的 2010 年資料,不等於 2010 年當時看得到的資料。這一層無法消除。
值得單獨講的是第 2 和第 3 點的方向:兩項最大的資料偏誤都是讓型態看起來更有效的方向。 而在這樣的條件下,結果仍然是零。
最終保留樣本仍然沒有動用
第 1 節那張表裡的第三段 —— 2022 年以後的資料 —— 整段鎖住,整個專案只能開一次,由程式強制執行。
開發期 0 格顯著,代表沒有任何候選項可以拿去做最終檢驗。所以那一次機會沒有被消耗,資料仍然鎖著。這件事本身也是設計的一部分:如果允許「反正沒發現,那就整批拿去最後那段再跑一次看看」,那段保留資料就等於不存在了。
這裡有個容易被誤讀的地方,講精確一點。 型態偵測本身跑遍了全部歷史,包含 2022 年以後 —— 資料夾裡確實存在保留期的型態紀錄。這跟「保留樣本沒動用」不矛盾,差別在分層:
- 型態偵測是價格的確定性函數,不碰前向報酬。 在 2023 年的價格上畫出一個頭肩頂,不會透露那個型態之後漲還是跌。
- 被鎖住的是統計層。 報酬、基準、檢定全部只看研究期;保留期的結果從來沒有被算出來過。
不過真正的保護其實不是這一條。就算報酬沒被算出來,人眼看過保留期的圖,仍然可能回頭影響參數選擇 —— 那是這類研究裡最難防、也最難自我察覺的洩漏。擋住它的是第 1 節第二點:型態定義的每一個參數,都在任何統計跑起來之前就凍結了。 沒有那條規則,「保留樣本」保留的就只是數字,不是判斷。
9. 難的不是市場,是量測 —— 以及那個量測值不值得
回到一開始的問題:用技術分析贏過大盤有多難?
這份研究答不了整題 —— 它只測了九類幾何型態,指標與市場狀態都不在裡面(見前言的範圍表)。它給不出「多難」的數字。但它給出了兩個更實際、而且不限於型態的答案。
第一,在你有沒有贏這件事上,你的判斷力比你以為的差很多
同一批資料、同一組型態、同一個人,第一次跑出來是 16 格顯著、換一批沒看過的資料方向還一致 15/16;修掉一個藏在虛無分布裡的錯之後,變成 0 格。中間差的不是資料,不是誠實度,也不是努力程度 —— 是一個在報表上完全看不出來、連煙霧測試都抓不到的技術細節。
而那還是在最有利的條件下發生的:完整的資料、事前凍結的參數、245 個檢定格的完整清單、可以重跑幾千次的機器。
真實世界只會更難量。真實世界裡沒有那份完整清單可以拿去做 FDR 校正 —— 你只會記得試過的那幾個想法裡,哪一個看起來有用。沒有凍結的參數,只有「我再調一下」。沒有對照組,只有「那一季我賺了」。而且每一筆都要付交易成本,還要面對第 5 節那個問題:超過一半的價格變動發生在你不能動作的時候。
第二,就算你量得準、也真的贏了,還有一個這份研究回答不了的問題
指數部位的持續投入成本接近零 —— 這是定義上的,不是實證發現。任何主動的做法,要跨過的門檻就不只是大盤報酬本身,還有它自己吃掉的時間、心力與注意力。
所以真正的問題不是「能不能取得超額報酬」。能,這件事有公開紀錄可查(第 7 節)。真正的問題是:
那個超額報酬,扣掉你為它付出的時間、心力與機會成本之後,還剩多少?而剩下的那些,值不值得你付?
這個問題我不會替任何人回答,這篇文章也不打算回答。 它的答案取決於你有多少時間、那些時間拿去做別的事值多少、以及你有多享受這件事本身 —— 那是三個只有你自己知道答案的變數。有人算完覺得非常值得,有人算完覺得不值得,兩邊都可能是對的,因為他們代進去的數字不一樣。
我能做的只有一件事:把「你到底有沒有贏」這個問題,變得比較量得出來一點。
我把這份研究完整寫下來,包括那個被推翻的中間結論,是因為在這個領域裡,唯一比「找到有效方法」更有價值的東西,是一套能讓你發現自己沒找到的流程。
前者不一定存在。後者可以自己蓋。
資料來源
這份研究自己用的資料,以及各自的限制:
| 資料 | 來源 | 注意事項 |
|---|---|---|
| S&P 500 成分股名單 | 維基百科 List of S&P 500 companies 條目的歷史修訂版本(2007 年 7 月起,每月取一個快照) | 2007 年之前只能靠變更紀錄往回推,涵蓋不全 —— 就是第 8 節第 2 點那個缺口 |
| 成分股變更紀錄 | 維基百科 Historical components of the S&P 500 | 社群維護、非官方;早期紀錄有缺漏 |
| 日線開高低收量 | Yahoo Finance(透過 yfinance) | 不含已下市個股,這是本研究倖存者偏誤的主要來源(第 8 節第 3 點) |
有一件事必須講明白:官方的成分股歷史是 S&P Dow Jones Indices 的專有資料,要授權才拿得到。 這份研究用公開來源重建它,換來的代價就是第 8 節列的那些缺口。那不是疏忽,是這個預算下的已知取捨 —— 而缺口的方向已經量化過,寫在 Limitations 裡。
研究區間 2000 年 1 月 1 日至 2017 年 12 月 31 日,對象為當時實際在 S&P 500 成分股名單內的個股,日線、週線與月線。所有數字由分析程式從原始結果檔重新計算產生,未經人工轉錄。文中型態圖為研究期內實例。
免責聲明
本網站內容由 Elnath Finance Academy 製作,僅供一般性資訊與教育目的,不構成投資建議,也不是針對任何個別讀者的個人化推薦。Elnath Finance Academy 並非註冊投資顧問(RIA),亦不提供受監理的投資顧問服務。所有數據與分析可能存在延遲或誤差,過往表現不代表未來績效。投資涉及風險,可能損失本金;任何投資決策請自行判斷並諮詢合格的專業人士。