前言¶
在 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,流程如下:
- 先驗取加權歷史勝率,並向 0.5 收縮(shrunk);
- 以 MACD 金叉、RSI、均線排列、布林帶位置、量能、動量、近 5 日走勢等信號作爲證據;
- 每個信號計算雙向經驗似然比(看多信號用 LR_bull、看空信號用 LR_bear),做時間衰減加權與樣本收縮;
- 通過 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:
- 代碼歸一化:
600519、sh600519、000001、AAPL等寫法都能識別; - A 股日 K 用騰訊 fqkline 後復權 hfq(最多約 700 根,主/備用域名自動切換,東財後復權兜底);美股日 K 用新浪全歷史;
- 即時快照:A 股用騰訊,美股用騰訊
us前綴; - 內存 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 面板),便於移植。
使用前有幾點必須知道:
- 插件以當前 dsh 進程的權限運行,且需要手動放進
node_modules並修改cordis.patch.yml,安裝前建議先檢查源碼與許可證(本項目爲 MIT); - 所有輸出由貝葉斯統計模型基於歷史行情生成,僅供參考,不構成投資建議;
- 卸載需三步:刪除
cordis.patch.yml中bayes-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