dsh-bayes-predict:用貝葉斯定理在 DSH 裏估計個股上漲概率

前言

在 DSH(DeepSeek Harness)裏讓 agent 分析一隻股票,通常只能得到一段定性描述;想知道「未來 N 天上漲概率有多大、當前趨勢處於什麼狀態、持倉風險有多高」,要麼自己另開量化腳本,要麼切回行情軟件手動盯指標。

dsh-bayes-predict 把這件事做成了 DSH 插件:以貝葉斯定理爲核心,把多個技術指標融合成對「未來 N 日上漲」的後驗概率估計,並在對話和瀏覽器面板兩個入口直接輸出結果。下面介紹它的定位、核心功能與安裝用法。

這是什麼

dsh-bayes-predict 是一個基於貝葉斯定理的 DSH 個股預測插件,覆蓋 A 股和美股,提供三類輸出:多指標信號融合的上漲概率估計、趨勢狀態識別與持倉風險度量。維護者爲 pg527322814,許可證 MIT。

需要先說明平臺依賴:插件依賴 dsh 宿主環境(dsh web、cordis 插件系統、window.__ModuleLoader__ 等),該平臺未隨倉庫公開,單獨克隆倉庫無法直接運行,代碼供學習、參考與移植。

核心功能

多指標信號融合評分

評分以「未來 N 日上漲」爲假設 H,流程如下:

  1. 先驗取加權歷史勝率,並向 0.5 收縮(shrunk);
  2. 以 MACD 金叉、RSI、均線排列、布林帶位置、量能、動量、近 5 日走勢等信號作爲證據;
  3. 每個信號計算雙向經驗似然比(看多信號用 LR_bull、看空信號用 LR_bear),做時間衰減加權與樣本收縮;
  4. 通過 odds 乘法做貝葉斯更新,輸出後驗上漲概率(含 95% 置信區間)與 0-100 評分、評級。

爲了降低單股樣本不足帶來的偏差,插件啓用了分層先驗:啓動時加載 market-prior.json 的全市場通用 LR 表,單股 LR 與之混合,權重爲 w = n/(n+80)

多窗口對比與趨勢狀態識別

  • 多窗口對比:同時輸出 2/5/10/20 日的後驗概率對比表;
  • 趨勢狀態:按貝葉斯 t 檢驗風格做三狀態分類,輸出 P(上漲)、P(下跌)、P(震盪),閾值 δ = max(0.5·SE, 年化 5% 經濟當量),避免大樣本下把微小趨勢誤判爲明確方向。

持倉風險估計與信號歸因

  • 波動率用 EWMA(RiskMetrics λ=0.94);
  • VaR/CVaR 以經驗分位數爲主輸出,正態估計作爲對照,另附歷史最大回撤;
  • 信號歸因輸出貢獻絕對值 Top3 的信號,解釋「爲什麼看多/看空」。

Host 端與瀏覽器端

插件是 dual-face 結構,兩端都有入口:

  • Host 端:註冊 bayes_stock_predict 全局工具,附帶 GET /bayes-predict/analyze 路由,可生成 markdown 報告;
  • 瀏覽器端:React 可視化面板,掛在側邊欄「📊 貝葉斯股票分析」入口,儀表盤和走勢圖均爲 SVG 自繪。

行情獲取與數據防護

數據源免費、無需 key:

  1. 代碼歸一化:600519sh600519000001AAPL 等寫法都能識別;
  2. A 股日 K 用騰訊 fqkline 後復權 hfq(最多約 700 根,主/備用域名自動切換,東財後復權兜底);美股日 K 用新浪全歷史;
  3. 即時快照:A 股用騰訊,美股用騰訊 us 前綴;
  4. 內存 TTL 緩存 30 分鐘。

針對騰訊後復權數據的基準滾動問題,fetchKlines 內置了斷層防護:hfq 最後一天 |單日漲跌| > 8% 時,會拉不復權序列覈對,判定爲復權斷層則丟棄最後一天,寧缺毋濫。

注意數據口徑:評分與單股分析均使用後復權(hfq),收益序列含分紅再投資、信號乾淨,但價格不是真實股價;如需真實股價口徑要改用不復權。

安裝與啓用

安裝沒有 dsh plugin add 形式的命令,需要手動拷貝插件包並修改配置,共三步。

1、把插件包拷貝至 %USERPROFILE%\.dsh\profiles\web\node_modules\dsh-bayes-predict(目錄不存在時先創建;profile 的 baseUrl 錨定在 profiles\web,node 解析會向上逐級查找 node_modules)。

2、在 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml 追加:

- insert:
    - id: bayes-predict
      name: 'dsh-bayes-predict'

3、重啓 dsh web。插件集變更需重啓生效;client bundle 的 HMR 僅在 pnpm run dev:web 重建時可用。

如果要自己改客戶端代碼,注意一個契約:lib/client.js 的 factory 必須導出 inject 數組(如 exports.inject = ["slots"]),缺失時 apply(ctx) 裏訪問 ctx.slots 會直接拋 cannot get property "slots" without inject

項目零第三方依賴,要求 Node 18+;npm test 會運行 test/smoke.mjs(貝葉斯核心 + 合成 K 線端到端)與 test/normalize.test.mjs(代碼歸一化單測)。

典型用法

對話方式(重啓後開新會話,讓 agent 看到新工具):

分析一下 600519
用貝葉斯方法評估一下 300750 未來 5 天的上漲概率

可視化面板方式:點擊側邊欄底部「📊 貝葉斯股票分析」快捷按鈕,彈出居中面板後輸入代碼,點「貝葉斯分析」。

適用場景與注意事項

適合兩類人:一是在用 dsh web、希望讓 agent 直接給出結構化概率結論和風險度量的開發者;二是想參考「雙向 LR 四格表 + 時間衰減 + 分層先驗」這套貝葉斯實現的人,代碼結構清晰(bayes.js 核心計算、market.js 行情、client.js 面板),便於移植。

使用前有幾點必須知道:

  1. 插件以當前 dsh 進程的權限運行,且需要手動放進 node_modules 並修改 cordis.patch.yml,安裝前建議先檢查源碼與許可證(本項目爲 MIT);
  2. 所有輸出由貝葉斯統計模型基於歷史行情生成,僅供參考,不構成投資建議;
  3. 卸載需三步:刪除 cordis.patch.ymlbayes-predict 的 insert 行、刪除 node_modules\dsh-bayes-predict、重啓 dsh web

結語

dsh-bayes-predict 的價值在於把一套完整的貝葉斯評分流程(信號 → 似然比 → 後驗概率 → 風險度量)封裝成 DSH 插件,讓「上漲概率」這類量化結論可以直接在對話和麪板裏拿到,且不依賴任何付費數據源。

  • GitHub:https://github.com/pg527322814/dsh-bayes-predict
  • 插件目錄頁:https://www.skillhub.cn/plugins/pg527322814/dsh-bayes-predict
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜