dsh-trading:爲 DeepSeek Harness 搭建交易研究工作臺

前言

在 DSH 裏做行情分析,常見做法是:讓模型直接調某個數據 API,或在對話裏貼截圖。前者把數據源焊死在插件裏,換券商或換本地 CSV 就要改工具鏈;後者則讓模型看不到你正在盯的即時 K 線,只能反覆問「截個圖」。

dsh-trading 把問題拆成三層:類型化的 ctx.marketData 接縫、確定性的指標計算、以及可交互的圖表卡片與持久圖列。它不 fork DSH 核心,而是以 bundle 疊在官方 webheadless profile 上。下面介紹它是什麼、能做什麼、怎麼裝、怎麼用。

這是什麼

dsh-tradingmaddogfinance 維護,在 SkillHub 插件目錄 歸類爲「聯網工具」。GitHub 倉庫約 17 stars,許可證 MIT。

一句話定位:面向 DeepSeek Harness(dsh)的交易研究工作臺插件——數據接縫、確定性指標、交互式 K 線卡。README 標明當前爲 early scaffold;dsh 本身處於開發者預覽,兩側都可能出現破壞性變更。

項目刻意不設下單或執行接縫;@dsh-trading/risk-guardtools/pre-execute 門拒絕執行類工具名,屬於縱深防禦,不能替代「無執行能力」這一結構邊界。

核心功能

八個包、單向依賴

倉庫拆成八個 npm 包,依賴方向固定:

  • @dsh-trading/market-data:定義 ctx.marketData 接縫,K 線/標的類型接口
  • @dsh-trading/provider-csv:參考實現,讀本地 data/<symbol>/<timeframe>.csv
  • @dsh-trading/provider-futu:可選,經本地 Futu OpenD 拉港股、美股、A 股及 24/7 加密貨幣(如 CC.BTCUSDT
  • @dsh-trading/tool-market:面向模型的只讀工具(list_symbolsget_ohlcvmarket_snapshotannotate_chartrender_chart)及指標庫
  • @dsh-trading/verdict:回測審計、lint_strategy_code 等評估 harness;結論可爲 NOT PROVEN
  • @dsh-trading/risk-guard:獨立包,拒絕執行類工具名
  • @dsh-trading/client-chart:Web 圖表卡片、持久圖列、loopback 通道;宿主側 get_chart_view 與每輪上下文注入
  • @dsh-trading/client-frame:可選,chart-first 外殼佈局(側欄 | 圖列 | 對話 | 詳情)

bundle/trading 通過 cordis.patch.yml 默認接入六行:market-datamarket-data-providertool-marketverdictrisk-guardclient-chartclient-frameprovider-futu 需自行在 profile 裏啓用。

模型側工具

market_snapshot 一次返回多週期指標體制(RSI、慢速隨機、ADX/DI、MACD、MFI、ATR、SMA/EMA、布林帶等)及粗粒度狀態標籤。get_ohlcv 在需要結構細節時提供原始 K 線。指標按教科書定義、Wilder 平滑等處與常見平臺對齊,會話日誌重放可復現相同數值。

annotate_chart 在圖上標註價位、區間、路徑,要求 provenance,價格須在真實 K 線窗口內校驗。render_chart 用於導出圖像文件。

Web 圖列與圖表卡片

啓用 @dsh-trading/client-frame 後,dsh web 變爲圖列優先:左側持久即時圖列,右側對話。你可直接輸入標的、切換週期,經 loopback 拉數,不經過模型。圖列默認跟隨對話中的標的;手動改標的或週期會 pin 圖列,此後模型的標註以 Show 藥丸提供,避免覆蓋你正在看的圖。get_chart_view 與每輪一行上下文把當前圖列狀態回傳給模型,無需截圖。

未裝 client-frame 時,market_snapshot / get_ohlcv 結果在對話流中渲染爲交互式 K 線卡:成交量、SMA20/50/200、週期標籤,以及從模型讀到的逐 bar 序列繪製的指標窗(非瀏覽器重算)。

自帶數據(CSV)

CSV 佈局如下,bar 開盤時間爲 ISO-8601 UTC、升序:

data/
  AAPL/
    1d.csv        # header: time,open,high,low,close,volume
  BTC-USDT/
    1h.csv

provider-csv 約百行,可複製爲接 ClickHouse、券商 API 或 CCXT 的模板;上游工具不變。

安裝與啓用

環境要求:Node.js >= 20。官方 bundle 從 npm 拉取六行插件(client-frameprovider-futu 爲可選):

dsh plugin --profile trading add @dsh-trading/bundle

在 profile 的 dsh.profile.bundles 中,在 @deepseek-ai/dsh-base 之後加入 @deepseek-ai/dsh-web-app@deepseek-ai/dsh-headless 以選擇界面。配置模型密鑰(環境變量 DEEPSEEK_API_KEY,或 dsh web 的 Models 頁),在含 ./data 目錄下運行。

可選:啓用 chart-first 外殼,在 profile patch 中禁用默認 ui-layout 並插入 frame:

- id: ui-layout
  disabled: true

- insert:
    - id: trading-frame
      name: '@dsh-trading/client-frame'

可選:接 Futu OpenD 即時數據。在 OpenD.xml / OpenD.ini 啓用 websocket 監聽(與 api_port 不同端口,websocket_key_md5 對 JS 客戶端必填):

websocket_port = 33333
websocket_key_md5 = <md5 of your key>

安裝與 OpenD 版本線匹配的 SDK,並在 cordis.patch.yml 中改 provider 行:

npm i futu-api@10.9   # 須與本地 OpenD 版本線一致
- id: market-data-provider
  name: '@dsh-trading/provider-futu'
  config:
    host: 127.0.0.1
    port: 33333       # websocket 端口,非 api_port (11111)
    symbols:
      - CC.BTCUSDT
      - HK.00700
      - US.MU

安裝 Market Analyst 預設:

DSH="${DSH_HOME:-$HOME/.dsh}"
mkdir -p "$DSH/.agent-presets" && cp -r presets/analyst "$DSH/.agent-presets/"

在會話 preset 菜單選 Market Analyst

本地開發 checkout 時,先構建再 add 本地路徑;bundle patch 引用的每個包都須與 bundle 並列鏈接,否則啓動解析失敗。詳見 README「Try it with dsh」一節。

典型用法

examples 目錄、且 ./data 已有 CSV 時,可用 headless 做一次趨勢描述:

cd examples && dsh --profile trading "pull DEMO-EQ daily candles with sma20/sma50 and describe the trend"

隨時檢查合成後的 profile:

dsh --profile trading --dump-config

README 提供 90 秒與 80 秒演示視頻(真實 Futu OpenD 會話的 Playwright 錄製,非 mockup):

適用場景與注意

適合:在 DSH 裏做只讀行情研究、多週期體制梳理、圖上標註與對話聯動的開發者;需要 BYO 數據源、又不想改上游工具的人。

注意:

  1. 研究專用,非投資建議;無下單能力。
  2. 插件以當前 dsh 進程權限運行;安裝前請閱讀源碼與 MIT 許可證,自行評估數據源與網絡訪問。
  3. dshdsh-trading 均可能 breaking change;Futu futu-api 版本須與 OpenD 手動對齊。
  4. SkillHub 爲獨立社區目錄,與 DeepSeek / 幻方無官方從屬關係。

若你已在用 DSH 做智能體開發,又需要可替換數據源、確定性指標與可讀圖的閉環,dsh-trading 提供了一條不 patch 核心的疊裝路徑。

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

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

小夜