跳到主内容

dsh-quant

17Star2Fork14Issue0Watching

为 DSH Agent 提供 46 个量化工具:行情拉取、技术指标、因子评价、回测、风控、模拟盘与报告一条龙,跑通 PDAT→PET 端到端流水线。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
master
ai-agentsalgorithmic-tradingbacktestingdeepseekdeepseek-harnessdshdsh-pluginfactor-investing

安装

命令web profile
$ dsh plugin --profile web add dsh-quant

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 pengpengyi92/dsh-quant:先查看仓库 https://github.com/pengpengyi92/dsh-quant 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

给 DeepSeek Harness 的 Agent 装上一套量化研究工具箱:拉行情、算技术指标、做因子评价、跑策略回测、度量风险、模拟下单、生成报告,一行命令能跑完整条 PDAT→PET 流水线。它不用任何凭据就能取公开行情,所有数学计算都是纯函数、可离线验证。

核心能力

  • 拉取公开行情:从 Binance、OKX、Bybit、Sina、腾讯财经、Yahoo Finance 六个来源取 K 线,无需登录或 API key(src/dsh-data/market.ts:31-69)
  • 计算 12 个技术指标:SMA、EMA、RSI、MACD、布林带、ATR、KDJ、威廉指标、CCI、OBV、ADX、ROC(src/dsh-alpha/indicators.ts:1-100)
  • 跑策略回测并出报告:双均线、布林带突破、RSI 反转、多资产组合再平衡、参数网格搜索五种内置策略(src/dsh-ml/backtest.ts:1-30)
  • 做因子评价与中性化:IC/RankIC/分位/多空/换手率,按市场或风格因子做 OLS 残差中性化(src/dsh-alpha/factor.ts:1-30)
  • 度量风险与做 VaR 回测:VaR、CVaR、Beta、Alpha、信息比率、跟踪误差,配合 Kupiec 检验验证风险模型(src/dsh-risk/risk.ts:1-30)
  • 模拟下单 + 私募基金模拟:带滑点/费率的撮合与带 2% 管理费、20% 高水位业绩报酬的资金曲线(src/dsh-execution/execute.ts、fund.ts)

技术实现

  • 语言: TypeScript(ESM,NodeNext,package.json:6 type:module),21 个源文件,零运行时依赖
  • 关键依赖: @deepseek-ai/cordis ^4.0.0(钩子上下文)、@deepseek-ai/dsh-tools ^0.1.0-rc.5(defineTool schema DSL)、@deepseek-ai/dsh-system-prompt ^0.1.0-rc.5(schema 注入);业务侧零依赖(指标/回测/期权/债券全用纯 JS 数学)
  • 架构模式: Cordis 函数插件 —— 命名导出 name='dsh-quant'、inject=['tools']、apply(ctx) 通过 ctx.tools.register(defineTool(...)) 注册 46 个工具(src/index.ts:68-77);用 cordis.patch.yml 作为 bundle patch 在宿主 profile 加载;HMR 可逆 —— fiber 销毁时 dispose 工具
  • 入口文件: src/index.ts(主插件,2379 行 apply 函数),编译输出 lib/index.js 作为 NodeNext ESM 入口(package.json:17-23);CLI 入口 cli/main.mjs 跑在外提供交互式 TUI 浏览

适用场景

在 DSH Agent 里想跑量化研究、又不想自己写一堆数学库的人:上传一组价格就能算指标、能拼回测、能出报告,给聊天机器人或编程 Agent 装上"会算量化"的能力。量化研究者可以把它当作可复用的计算底座,把自己的数据源和策略接进同一个六域插槽体系。需要实盘交易、做单、做业绩归因的用户需要换插件,本工具不含撮合/账户/合规部分。

前置依赖与兼容性

依赖最低版本说明
DSH(cordis + dsh-tools + dsh-system-prompt)≥ 0.1.0-rc.5package.json:65-69 把 @deepseek-ai/cordis ^4.0.0、@deepseek-ai/dsh-tools ^0.1.0-rc.5、@deepseek-ai/dsh-system-prompt ^0.1.0-rc.5 列为 peer;cordis patch 见 cordis.patch.yml
Node.js未声明(推荐 22 LTS / 24+)package.json 没有 engines 字段;devDependencies 用 @types/node ^24.0.0 与 tsx ^4.19.0,构建走 tsc 5.6 的 NodeNext,CLI 用 node:fs / node:url 内置模块
系统平台跨平台没有 OS/CPU 限制;六域只用到 fetch 与内置模块
原生模块无全部纯 JS,无 node-pty / node:sqlite 等需要重编译的依赖

安装方式

dsh plugin --profile web add github:pengpengyi92/dsh-quant

配置项

本插件无需额外配置。

配置由两个层面控制:

  1. DSH 注册:通过 cordis.patch.yml 在 profile 中以 name: 'dsh-quant' / id: 'quant-indicators' 加载;用户可在自己的 patch 中覆盖或禁用该 row(cordis.patch.yml:1-10)
  2. 每次调用:所有"配置"通过调用时传入的参数(symbol、window、feeRate、stopLoss、confidence、interval、provider 等)下达,每个工具都有 schema 校验与默认值,无需预先打开任何开关

常见问题

Q: 安装后为什么 DSH 里看不到 quant_ 工具?*

A: 安装只把包拉下来,cordis patch 必须被加载到当前 profile 才会注册。在 cordis.yml 加 - name: 'dsh-quant',或在 dsh web 的插件管理面板里启用对应 bundle,重启一次 dsh web 就能看到 46 个 quant_* 工具。

Q: 没有网络能不能用?

A: 能用。174 个手算单测全部离线通过(tests/ 下 26 个 spec 文件),覆盖 12 个指标、5 种回测、因子组合、Kupiec 检验、期权、债券、模拟盘等;只有 quant_market_fetch / quant_repo_stats / quant_npm_stats 这类工具需要网络。

Q: A 股和美股怎么取数据?

A: 把 provider 参数切换即可。sina / tencent 取 A 股(symbol 形如 sh600000、sz000001、bj430047),yahoo 取美股/港股/指数(AAPL、^GSPC、0700.HK),这三家都不需要 token;crypto 用 binance / okx / bybit,同样不需 key。

Q: 回测会不会引入未来函数?

A: 不会。src/dsh-ml/backtest.ts 与 README 第 215 行明确写了"signal confirms on bar i, fills at bar i+1 close, no look-ahead";quant_walk_forward 走滚动训练样本外验证,适合用来做策略过拟合检查。

Q: 这个插件能实盘下单吗?

A: 不能。quant_execute_sim 是带滑点/费用/延迟的撮合模拟,不是券商接口;README 第 369-374 行清楚标了 "no live trading, framework only"。

Q: 行情数据要花钱或者自己提供 key 吗?

A: 自带的 6 个 provider(binance/okx/bybit/sina/tencent/yahoo)一律公开接口、无需凭据,但有频率上限和服务条款限制。要用更高质量/更全品种数据(akshare/tushare/wind/jqdata),插件内置 quant_data_guide 与 quant_data_advice 给出 15 个外部渠道的对比,自己去配 token。

Q: 为什么用 TypeScript 而不是 Python?

A: 因为它跑在 DSH 同进程的 Node 运行时里,必须走 TypeScript 才能被 Loader 热注册、HMR 安全;Python 部分由 dsh 的子进程能力承担,计算内核全部手算可验证(README 第 56-72 行解释)。

Q: 怎么加自己的策略或数据?

A: 6 大域(data/alpha/ml/risk/execution/community)都是插槽 —— 直接改 src/dsh-* 加新工具,或者写一个独立 cordis 插件 import 这边的纯函数(src/index.ts:43-67 把 21 个纯函数全部 re-export);扩展入口见 GitHub Issue #27。

上手难度

进阶 — 需要懂一点量化基础(指标、回测、夏普比率、滑点)和 DSH 的 cordis 插件机制;安装只有一行,但想真正发挥出六域插槽价值要先看 docs/ONBOARDING.md 和 mcp/AGENT_GUIDE.md。

已知问题与限制

  • 行情以加密货币为主:binance / okx / bybit 三个 crypto 接口自动回退,A 股通过 sina / tencent / yahoo 公开接口接入,没有专门的 akshare / tushare 通道(需要 A 股深度数据的用户要接外部数据源,README.md:355-357)
  • 回测是内置策略族:双均线、布林带突破、RSI 反转、组合再平衡、参数网格搜索五种;自定义策略回调(dynamic callback)是未来路线,README.md:358-360
  • presentCall / presentResult 未定制:指标类结果没有专属的文件/终端/diff 表现语义,UI 端只能用通用卡片展示,README.md:361-362
  • 行情工具需要网络:quant_market_fetch / quant_repo_stats / quant_npm_stats 走外网;离线用例可以靠 verify.ts 之外的预抓数据绕开,README.md:363-364
  • 快慢均线等参数有手检:backtestMaCross 强制 fast < slow、feeRate >= 0、stopLoss ∈ (0,1)、takeProfit > 0,违反时抛 RangeError(src/dsh-ml/backtest.ts:50-58),调用方需要在调用前保证参数合法
  • market_fetch 的 limit 上限 1000:超过 1000 触发参数校验抛错,src/index.ts:323-325

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/pengpengyi92/dsh-quant)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录