選股條件說明

寶鑑33 與 寶鑑34 — 兩組偵測「下跌趨勢中的日線 D 值轉折」的純價格條件。 本頁與 docs/SCREENING_SPEC.md 同步,該文件為規格的單一事實來源。

名詞與索引定義

所有序列一律由舊到新排序
符號 意義
D9 KD 隨機指標的 D 值,參數 9 日(K=9,3、D=3)
MA{N} 收盤價的 N 日簡單移動平均(日線 SMA)
WMA{N} 收盤價的 N 週簡單移動平均(週線 SMA)
t 今日 — 最新一根「已收盤」的日 K
t-1 / t-2 1 日前 / 2 日前
w 本週 — 最新一根「已收盤」的週 K
w-1 / w-2 1 週前 / 2 週前

寶鑑33 日線轉折

條件 1–6,全部成立(AND)
# 條件 公式
1 9 日 D 值 > 1 日前的 9 日 D 值 D9[t] > D9[t-1]
2 1 日前的 9 日 D 值 ≦ 2 日前的 9 日 D 值 D9[t-1] <= D9[t-2]
3 1 週前的 2 週均價 < 2 週前的 2 週均價 WMA2[w-1] < WMA2[w-2]
4 1 日前的 6 日均價 < 2 日前的 6 日均價 MA6[t-1] < MA6[t-2]
5 1 日前的 12 日均價 < 2 日前的 12 日均價 MA12[t-1] < MA12[t-2]
6 1 日前的 24 日均價 < 2 日前的 24 日均價 MA24[t-1] < MA24[t-2]

邏輯意涵: 6 / 12 / 24 日均線與 2 週均線都還在下彎(空頭排列、仍在下跌), 但 9 日 D 值由跌轉升 — 條件 1 與 2 合起來構成 D 值的「轉折點」。 屬於下跌趨勢中的低檔反轉偵測。

寶鑑34 日線轉折 + 週線長空確認

寶鑑33 成立,再加條件 7–9
# 條件 公式
1–6 寶鑑33 全部成立 baojian33() == True
7 1 週前的 6 週均價 < 2 週前的 6 週均價 WMA6[w-1] < WMA6[w-2]
8 1 週前的 12 週均價 < 2 週前的 12 週均價 WMA12[w-1] < WMA12[w-2]
9 1 週前的 24 週均價 < 2 週前的 24 週均價 WMA24[w-1] < WMA24[w-2]

邏輯意涵: 在寶鑑33 的基礎上,再要求週線的 6 / 12 / 24 週均線也都在下彎, 確認中長期同樣處於下跌趨勢 — 鎖定「長空趨勢中出現日線 D 值轉折」的標的。

兩者的關係: 寶鑑34 是寶鑑33 的嚴格子集。任何符合寶鑑34 的股票必然也符合寶鑑33; Dashboard 與 Email 中標為「寶鑑33」的,是指成立但通過週線長空確認的標的。

訊號強度對應

Email/Dashboard/history JSON 共用
結果 通過條件數 門檻值 訊號 出現位置
寶鑑34 9 / 9 100 Email、Dashboard、CSV
寶鑑33(未達 34) 6 / 9 以上,且 1–6 全過 90 Email、Dashboard、CSV
近似(部分條件通過) 1–6 之中至少 1 項未過 80 以下(十位取整) 不顯示(僅存於 CSV 與回測母體)

Email 報告與「今日選股」頁都只列出寶鑑33 與寶鑑34 兩組真訊號。 「近似」是部分條件通過的標的,並非選股結果,因此不會出現在任何一個列表上; 它們只保留在掃描 CSV 與 data/history/ 的歷史紀錄中,作為回測的資料母體。 兩組訊號都沒有標的時,「今日選股」頁會顯示「今日沒有符合寶鑑條件的股票」。

實作細節

src/screener.py + src/indicators.py
  • KD 計算方式 — RSV(9) 之後,K 與 D 各以 1/3 平滑 (即原軟體「選股寶鑑」的 K=9,3、D=3 預設值)。 漲跌停鎖死導致 9 日最高=最低時,分母置為 NaN 並沿用前一根的 K/D, 避免無聲的除以零。
  • 週 K 的完整性 — 日線以 resample('W-FRI') 轉週線後, 若日線最後一筆日期早於該週的最後交易日(遇假日會從週五往前推), 該週視為未收盤並捨棄。因此 w 永遠是最新一根完整週 K。
  • 資料長度檢查 — 日線少於 27 筆、或已收盤週線少於 27 筆的股票直接略過。 24 期均線取到 [-3] 需要 26 根,規格取整為 27。
  • 不做短路求值 — 9 項條件一律全部評估,不因前面失敗就提前返回: 掃描 CSV 與歷史紀錄需要逐項結果,「今日選股」頁的表格也會逐項顯示 ✓/✗。 指標值為 NaN 時,該項比較結果視為不成立。
  • 「今日」的資料來源 — 每日掃描使用前一晚 17:30 預載的快取, 所以 t 等於前一交易日收盤,符合「已收盤日 K」的定義。
流動性前置過濾(不屬於策略條件): 掃描前會先濾掉 20 日均量低於 500 張的個股(1 張 = 1000 股)。 這是為了控制掃描成本與避免流動性不足的標的,屬於營運性過濾; 設定環境變數 MIN_AVG_VOLUME_LOTS=0 即可關閉,回到規格描述的全市場掃描。
歷史資料注意: 2026-06-12 以前的選股紀錄是舊版 10 條件策略(含本益比、OSC 等)的輸出, 門檻與訊號的語意與本頁不同。回測頁只統計標記為 baojian-33-34 的紀錄, 兩者不會混算。