Darvas箱型的QQQ擇時、避開訊號與個股版,這次都沒有通過完整驗證。本文以反面教材為主。中心設定的QQQ擇時年化6.0%、日夏普0.63;同期含息持有為20.1%、0.92。方向在圖上看得清楚,仍要付出空手與進出成本。
個股版年化1.8%,九格中0格贏基準,沒有把指標解讀轉成穩定的選股優勢。第一張圖把三種中心設計與含息持有放在同一起點;點圖可查看原尺寸,完整數值在下方下載區。
本文提供研究結果,沒有推薦這些買賣規則。想自行重跑,可先 設定 FinLab 環境,再 下載研究程式(.py);其他檔案見 研究下載區。
Darvas箱型怎麼形成
Darvas箱型把整理區間的上界當成突破參考,下界當成出場參考。回頭看一張上漲股票圖,很容易畫出一層又一層的箱子;實際交易要多回答一件事:在哪一天,箱頂與箱底才真的確認?如果把後來才完整的箱子畫回較早日期,回測就會提前知道答案。
本次先找出相對前一段觀察窗的新高,當作候選箱頂,再等指定天數沒有更高高點才確認。箱底取候選日至確認日的最低價。只有確認以後,箱子才可以決定進出;相同高價不重設等待時間,真正創出更高的區間新高才重新建立候選。這些細節都在開跑以前固定。
| 事件 | 程式 |
當時還不能 |
|---|---|---|
| 出現 |
建立 |
立刻 |
| 等待 |
更新 |
預先 |
| 確認 |
凍結 |
把可交易 |
| 收盤 |
進入或維持 |
假設能回到 |
| 收盤 |
離開 |
保證 |
較新的箱子確認後可以替換舊邊界;還在等待的新候選,不會提早取代目前可用的箱子。股價只是在箱內移動時,原本的持有狀態繼續保留。本次沒有另外加成交量、盈餘成長或大盤多頭濾網,也沒有因為某一筆交易虧損就換一種箱底定義。
Darvas與唐奇安通道有什麼不同
海龜與唐奇安突破常以最近一段時間最高價當作進場門檻,視窗往前走,通道也跟著改變。這次的Darvas需要候選高點經過確認,再保存一個具體箱子。因此確認延遲、箱底位置與何時換新箱,都是策略的一部分,不能只因為兩者都談突破,就當作同一個規則。
確認要等,強勢股可能已經先漲出去;箱底若長時間沒有更新,回檔到出場界線的距離也可能很大。等待較短時,可以較早形成箱子,卻可能把還沒整理好的價格區間當成完成;觀察窗較長時,新高較有代表性,也可能讓進場機會減少。九格參數就是同時檢查這兩種取捨。
本次沒有挑選書中或網路上最漂亮的個股圖重播。個股版每天從當時符合流動性條件的公司套用同一公式,進出後等權持有,並保留不成功的交易。這樣回答的是固定規則的組合表現,和事後說明某檔知名強勢股為何成功,是不同的研究問題。
箱型突破的交易成本與空手代價
個股的合格集合、箱型狀態每天都會變,換手可能比單一QQQ進出多得多。分散持股不會消除共同市場下跌,也不會讓箱型突破後的假突破變成免費。美股雖然採零佣金預設,仍另外加入買賣各百分之○點一,觀察價差與執行成本對結果的影響。
避開訊號的QQQ對照則量出等待箱型時放棄的市場參與。它在原策略空手的日子持有,其他日子空手,沒有放空。若正向規則只抓到少數上漲片段,這條路徑可以看到剩下時段的報酬;但反向也要獨立通過相同檢查,不能只挑其中一段表現較好的年份。
突破當天的最高、最低與收盤價都要等收盤才完整。實驗因此在下一交易日收盤成交,不假設看到箱頂被突破的同一瞬間就能買到該價位。若隔夜直接跳高,成本會反映在下一次實際價格裡;若跳空跌破箱底,也可能在更低的位置才離場。
Darvas(1960)的《How I Made $2,000,000 in the Stock Market》是箱型方法出處。本次將新高與確認天數數值化,不把這組程式參數說成原著唯一寫法。原始出處。
三種持有方式的完整結果
| 中心 |
年化報酬 | 日夏普 | 最大 (最大 |
前/ |
九格贏 |
在場比例 |
|---|---|---|---|---|---|---|
| QQQ |
6.0% | 0.63 | -15.5% | 0.61 / 0.66 | 0 / 9 | 40.3% |
| QQQ |
13.3% | 0.71 | -35.1% | 1.05 / 0.41 | 0 / 9 | 59.7% |
| 個股等權 | 1.8% | 0.20 | -68.7% | 0.39 / -0.01 | 0 / 9 | 99.9% |
| QQQ |
20.1% | 0.92 | -35.1% | 1.22 / 0.63 | — | 100% |
年化報酬把整段複利換算成每年平均成長,最大回撤是淨值從先前高點到低點的最大跌幅。日夏普以日報酬平均除以標準差,再乘以二百五十二的平方根,不扣無風險利率。這三個指標回答不同問題,夏普較高仍可能賺得較少。
互動報告是中心設定的QQQ擇時,沒有從九格挑最好的一格;另一份下載報告是中心個股版。表格保留整段共同期間,包括第一次交易以前的現金日;報告可能由首筆成交開始,內建夏普也有自己的無風險利率設定,所以本文比較統一採另算的零利率口徑。
九格參數與前後半段
新高觀察窗四十、六十、八十日,等待二、三、五個後續交易日未創更高價才確認;中心六十/三日。箱底取候選高點日至確認日之間最低價。全部組合在看結果以前已固定。每個設計至少七格日夏普高於同期QQQ,中心設定在交易日對半切的兩段也必須各自領先;這是歷史穩健性篩選,沒有把後半段稱為從未看過的樣本外。
成本、現金與拿掉最好一年
美股sim()預設手續費與交易稅皆為零,另把每邊百分之○點一加入中心設定,作為執行成本壓力。沒有再假設其他滑價,沒有計算資本利得稅,也沒有估算策略容量。
淨值圖、九格、前後半段與互動報告均採零佣金。表中每邊0.1%成本與零佣金扣BIL是分開列出的比較。
| 中心 |
每邊 |
扣成本 |
零佣金扣BIL |
拿掉 |
剩餘 |
|---|---|---|---|---|---|
| QQQ |
5.1% | 0.55 | 0.39 | 2023 | 0.51 / 0.78 |
| QQQ |
12.4% | 0.67 | 0.60 | 2024 | 0.60 / 0.88 |
| 個股等權 | -3.5% | 0.01 | 0.12 | 2023 | 0.06 / 0.78 |
QQQ扣除BIL每日含息報酬後的日夏普為0.81。策略空手時現金報酬為零,沒有默默加上美國短債收益;扣BIL只是另一種比較口徑,沒有改變實際持有內容。
同平均曝險對照每天固定維持策略平均在場比重的QQQ,其他現金報酬為零,不扣該對照調倉成本。訊號持有版的這個對照日夏普為0.92,策略為0.63。這能檢查較少在場帶來的較小波動,有沒有被誤認成選時能力。
拿掉最好一年時,先以中心策略各日曆年報酬找出最好的一年,再從策略與基準刪除相同日期,保留其餘日報酬,不在被刪年份兩端插入額外報酬。這是額外壓力測試,前面九格或分段沒有過,不能靠這一項補救。
股票池、成交與研究限制
資料截至2026-11-09,重跑日2026-11-11,使用finlab 2.3.8。美股使用us_price的還原開高低收,QQQ使用us_fund_price;基準以QQQ還原收盤價直接計算含息買進持有,不經sim(),不扣基準交易成本。所有圖表起點都為一,空手日也保留。
個股以FinLab普通股分類限制欄位,還原價高於五美元,六十日平均還原價乘成交量大於五百萬美元,並取每日成交額前一百檔,平均至少要有二十筆觀察。若先前二百五十二日曾有單日絕對漲跌達百分之五十,就從隔日起排除;這能排除先前的極端異動,無法預先避開第一次事件。普通股分類是目前的證券類型篩選,歷史分類變更仍可能造成限制。
個股每天對同時符合資格與指標狀態的公司等權,沒有挑後來漲最多的公司,也沒有用全期間最大漲跌一次刪掉歷史輸家。訊號收盤後形成,下一交易日收盤成交。這次沒有使用財報、分析師快照、現在的指數成分名單或個別投資人的私人策略;產業並未另外中性化,也沒有借款加槓桿。美股普通股分類排除ETF、基金、ADR與特別證券,未另排除金融業等產業;有合格價格欄位的下市股保留,但未逐檔稽核下市報酬完整性。台股特有的KY、全額交割分類未用於美股。
每檔個股目標權重為當時持股數的倒數,沒有再加固定單檔上限,只剩一檔時可能達百分之一百;ETF規則最多全額持有QQQ,否則全額現金。各中心設定的換手估計如下,比例可以超過百分之一百,表示月內反覆換倉。
| 中心 |
交易 |
平均月目標 |
最高月 |
|---|---|---|---|
| QQQ |
40 | 33.2% | 150.0% |
| QQQ |
40 | 33.2% | 150.0% |
| 個股等權 | 2152 | 220.3% | 442.7% |
中心個股版平均持有14.3檔。目標權重周轉估計採每天目標權重變化絕對值總和的一半,再按月相加。這個數字沒有把持有期間價格漂移等細節還原成實際成交金額,不能直接當成真實帳戶的金額周轉率。
全段屬於樣本內研究。開跑前固定規則,可以減少本批看完結果才換條件,但題目本身仍是知道市場歷史後選的,切前後半也無法把後段變成真正未見資料。Bailey等人(2017)討論回測過擬合;本次未估計該文的過擬合機率。Moskowitz、Ooi與Pedersen(2012)研究期貨趨勢,不能替這個指標背書。
用AI重跑固定規則
透過上方FinLab設定入口,讓Claude Code、Codex或Gemini CLI載入FinLab skill後,可以用白話要求:「使用這篇下載的研究程式,保留期間、中心參數與九格設定,重跑Darvas箱型三種持有方式及成本對照。」這段要求的用途是重現既有實驗;若AI另外生成一套進出條件,即使名稱相同,算出的結果也不是本篇的重跑。
將完整研究程式存成工作目錄的research.py,以下片段執行中心個股版,完整網格則使用該程式的命令列選項。程式的執行範例已列出finlab、numba與TA-Lib套件,登入由FinLab引導完成。
顯示程式碼
import finlab
from research import load, signal, backtest
finlab.login()
prices, eligible = load("us")
state = signal(prices, "darvas", 60, 3)
position = (state & eligible).loc["2017-01-03":"2026-11-09"]
report = backtest(position)
report.to_html("darvas_stocks_report.html")AI代理使用說明介紹技能安裝與研究流程;程式交易指南整理從規則到回測的步驟,回測方法說明成交、成本與偏差,結果名詞可查量化詞彙表。
Darvas箱型常見問題
哪一組參數最好? 本次的中心在看結果以前固定,沒有用熱圖最好的格子替換原設定。九格用來觀察鄰近條件是否穩定,不用來挑一個歷史冠軍。
最大跌幅較小,就表示指標有效嗎? 長期空手也會降低波動與跌幅,所以還要比較年化報酬、同平均曝險與分段結果。較少參與市場的代價,不能只用一張平順圖略過。
避開訊號是放空嗎? 這裡只是原本空手的日期持有同一檔ETF,其他時間持有現金,沒有建立負部位,不能推論融券或借券交易的績效。
個股可以只挑幾檔看起來最強的嗎? 那會改變股票池與集中程度,且容易事後挑選成功範例。本篇測的是當時合格公司的固定等權規則,不能保證某一檔公司結果相同。
表格和互動報告的夏普為什麼可能不同? 表格統一採零無風險利率的日夏普與完整共同期間,互動報告依自己的慣例與首筆成交起點計算。比較策略時必須讓兩邊使用同一口徑。
可以改成分鐘K嗎? 需要另一份資料、確認週期與成交假設。日線無法得知盤中高低先後,更無法保證照指標界線成交,這次結果沒有涵蓋該問題。
相關研究可看技術指標台股總覽,以及黃金交叉回測、海龜交易回測與量化交易指南。這些頁面分別測不同機制,沒有把其他規則的優點當成本篇的驗證。研究團隊與產品背景可看關於FinLab。
研究下載
| 檔案 | 內容 |
|---|---|
| 下載 |
設定 |
| 下載 |
每日 |
| 下載 |
全部 |
| 開啟 |
瀏覽器 |
| 開啟 |
瀏覽器 |
投資有風險,過去績效不代表未來表現。本內容僅供教學與研究,不構成投資建議,請依個人風險承受度審慎評估。本文沒有推薦個股,也沒有保證指標界線可以成交或歷史優勢會延續。
最後更新:2026-11|回測區間:2017-01-03至2026-11-09|作者:FinLab量化研究團隊。團隊以FinLab資料維護台股、美股的可重跑研究。
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始





