First-party data

回測報告 · T+10 Swing vs T+1 Day-trade

119 (66 unique tickers — yfinance 有數據嘅 subset) 個 BUY 訊號嘅 6 個月回測,全部淨回報(扣交易成本)。 同一批訊號,T+10 持有平均 ++1.63%,係 T+1 即日鮮(++0.76%)嘅 2× 倍。 2026-10-18 update: the −4.05% T+10 figure previously quoted here has been withdrawn. It had no artifact: the run that produced it (scripts/monthly_swing_backtest.py) reads data/dsa_hk.db, whose daily_report table is empty, so it cannot be reproduced. What died there is one dead pipeline, not the question — whether a support entry should be held for 10 sessions is answered below by a run that does reproduce. The ten-year v2 equity curves are a different experiment (2017–26 US, same v2 rules) and are not a substitute for either. What stands on this page is the per-trade table below, which is reproducible from its own run.

Window: 2026-06-27 to 2026-07-31Signals: 119 (66 unique tickers — yfinance 有數據嘅 subset)HSI bear days: 10Generated: 2026-09-11 20:33 HKT

Headline(淨回報 · Live stop/target)

HorizonnWRAvg
T+1 (day-trade)11964.7%+0.76%
T+3 (3-day swing)11963.0%+0.88%
T+5 (5-day swing)12065.0%+1.25%
T+10 (10-day swing)12059.2%+1.63%

呢個表每一行都係逐單統計:n、勝率、每單平均淨回報。上游報告原本仲有一欄「Total」,但嗰欄係將每一單嘅百分比直接相加(T+10 嗰行就係 120 單 × +1.63%),唔係組合回報 —— 同下面「風險指標」一節被撤回嗰個數字係同一種東西。所以本站唔發表嗰一欄:每單 ≠ 組合,而呢個窗口嘅風險管理組合回報冇一個可以引用嘅數字。

HSI 熊市日影響

HorizonRegimenWRAvg
T+1 (day-trade)Bear in hold3773.0%+0.95%
T+1 (day-trade)No bear8261.0%+0.68%
T+3 (3-day swing)Bear in hold3767.6%+1.09%
T+3 (3-day swing)No bear8261.0%+0.79%
T+5 (5-day swing)Bear in hold3775.7%+1.56%
T+5 (5-day swing)No bear8360.2%+1.11%
T+10 (10-day swing)Bear in hold3770.3%+2.62%
T+10 (10-day swing)No bear8354.2%+1.19%

Sig score 分桶

BucketT+1T+3T+5T+10
low35n 89% +2.20%35n 63% +1.62%35n 60% +1.67%35n 57% +1.63%
mid46n 59% +0.47%46n 61% +0.43%47n 64% +0.61%47n 53% +0.34%
high38n 50% -0.20%38n 66% +0.74%38n 71% +1.64%38n 68% +3.22%

Live stop/target adoption

  • BUY signals in 6mo DB: 496
  • With stop_loss populated: 312/496 (63%)
  • With target_price populated: 308/496 (62%)
  • With BOTH populated: 76/496 (15%)
  • Simulated (yfinance data available): 120
  • Used LIVE stop/target (passed sanity bounds): 62/120 (52%)
  • Fell back to hardcoded HORIZONS: 58/120 (48%)

Live group

  • Avg stop: -2.45% (median -1.66%)
  • Avg target: +4.07% (median +3.86%)
  • Vs hardcoded T+10 (-10%/+15%): live stops are tighter, targets lower.

Fallback group

  • Avg stop: -10.00% (should be -10.00% if always fallback)
  • Avg target: +15.00% (should be +15.00% if always fallback)

Universe filter (20d ADV, fail-closed)

  • HK threshold: HK$50M 20d ADV
  • US threshold: US$50M 20d ADV
  • Total signals in 6mo DB: 496
  • Excluded (no yfinance data — likely delisted/warrants/ETPs): 0
  • Passed: 496/496 (100%)
  • Of passed: 121 had ADV data and met threshold; 0 failed ADV threshold; 375 had yfinance OHLC but no Volume (yfinance HK Volume 缺失 known issue)

Risk metrics(組合回報)— 已停止引用

上游 backtest 報告呢一節聲稱「1% 風險/單、5 倉上限」,但同一個表寫住 Trades taken 120:呢個窗口得約 25 個交易日、每單持有 10 日,5 個倉位最多只做得約 12 單。即係上限根本冇套用,+44.02% 係逐筆百分比相加而唔係組合回報。站上嘅文字版已經撤回咗個數,但表格一直留住佢,所以由 2026-10-18 起連表格一齊停止引用。單筆統計仍然喺上面嘅表。

入場資格值唔值錢 · Close-confirmation A/B

上面撤回嘅 −4.05% 死嘅係一條 pipeline(訊號庫個表係空嘅,重跑唔到),唔係「10 日持有」呢個問題本身。一個壞咗嘅資料庫唔能夠否定一個研究問題 —— 咁講同錯用一個數字一樣錯。同一個問題而家喺另一條仲生猛、而且重跑得出嘅實驗度:scripts/ab_close_hold.py。兩臂都用 HOLD = 10,只有入場資格唔同(開市高過 S1 vs 開市同收市都企喺 S1 之上)。要講清楚:呢個量度嘅係入場資格,唔係持有長度。兩臂都固定 10 日,所以佢對「10 日係咪適合」冇任何話說 —— 嗰條問題要另外嘅證據。重新驗證。

預先登記結果:通過(4/4 格通過,門檻 z ≥ 1.96,四格全要)。門檻喺跑之前已經寫死落 docs/close-confirmation-prereg-2026-10-18.md,事後唔准改。B 臂只保留 A 臂約一半交易,所以「B 贏 A」本身唔夠 —— 一個同 B 一樣大細、但係隨機抽嘅 A 臂子集做咗對照 null。如果收市確認只係令你交易少啲,B 應該落喺嗰條 null 入面;佢冇。

市場窗口B 單數B 平均安慰劑 null 均值差距z判定
美股 US2002016–22 訓練3,693+1.922%+0.895%+1.026pp13.19通過
美股 US2002023–26 樣本外2,982+1.772%+0.779%+0.993pp12.03通過
日股 JP2002016–22 訓練2,389+1.058%+0.109%+0.949pp8.91通過
日股 JP2002023–26 樣本外2,187+2.354%+1.181%+1.173pp10.70通過

範圍提醒:呢個量度嘅係入場資格,唔係持有日數。兩臂都係 10 日,所以呢個結果唔係「10 日好過 5/15/20 日」嘅證據 —— 嗰個掃描係 Signal Search Sprint 1 嘅 hold sweep,唔喺呢個 artifact 度。四格都高過 null 講嘅係收市企穩呢個條件帶資訊,唔係「持有耐啲就賺得多」。

來源 data/ab_close_hold.json(bars: bt10y2,split: 2023-01-01,hold: 10,300 trials/cell,seed 20261018)。

點樣解讀

  • Live stop/target 取代 hardcoded — 51% 訊號用 live signal 嘅 stop/target(avg −2.45%/+4.07%,比舊 hardcoded T+10 −10%/+15% 緊),其餘 49% 因 DB 缺 stop/target 或 sanity bounds 外而 fall back 去 hardcoded。
  • T+10 即日鮮嘅優勢係頻率 — 單筆 +0.72% 但可以日日做;T+10 單筆大但要忍 10 日波動。兩者唔互斥,可以並行 paper-trade 驗證。
  • Equity curve per horizon — the loose "+55% sum-of-pct" figure was replaced by per-horizon fixed-capital curves for the ten-year v2 rule set (1% risk/trade, 10 concurrent, US$1M). Those are a different experiment from this page's six-week HK swing window; each page now states its own model rather than quoting the other's number.
  • Walk-forward OOS 初步 positive — 80/20 split:train 60.4% WR vs OOS 56.0% WR(−4.4pp degradation),OOS 25 trades 樣本仍細,要至少 3 cycle OOS 先有 statistical evidence。
  • 高 signal score 唔保證 T+10 更好 — 分桶顯示 high-score 組 T+1 反而 -0.24%(過熱回歸),low-score 組 T+10 仲有 +1.63%。分數係方向信心,唔係持貨期指引。
  • 樣本限制 — 121 個訊號來自 yfinance 有數據嘅 regular stocks(ETP/warrant 缺數據);6 個月窗口未涵蓋多日熊市。每月 1 號自動重跑滾動更新。
⚠ Disclaimer · 回測唔等於 live 表現。過往表現不代表將來回報。即日鮮交易高風險。

最後更新: 2026-10-21 01:02 HKT