Bundle
dsh-tdx
A股行情数据助手:K线历史 + 实时行情 + 技术指标(MACD/RSI/MA/EMA) + 概念板块,数据源通达信(pytdx)
- Source
- guozede12593312
- License
- MIT
- Updated
- Updated 19 days ago
Readme
# dsh-tdx > 为做 AI 投资分析的 DSH 用户,解决模型拿不到行情数据的问题,靠接入通达信提供 K线 / 实时行情 / 技术指标 / 概念板块四类查询工具。 ## 为什么需要它 DSH 模型做投资分析时没有行情数据源,只能靠训练记忆里的陈旧价格。本插件直连通达信行情服务器(pytdx),让模型能按需获取真实 K 线、实时盘面、技术指标和板块成分,把分析建立在真实数据上。 ## 前置依赖 - Node.js(运行插件) - Python 3.6+ 且已安装 `pytdx`:`pip install pytdx` - 如 `python` 不在 PATH,可设置环境变量 `DSH_TDX_PYTHON` 指向 python 解释器 ## 安装 ```bash dsh plugin --profile <your-profile> add https://github.com/guozede12593312/dsh-tdx ``` `<your-profile>` 替换为你的 profile 名(如 `demo` / `web`)。 本地调试(link 模式,需在插件目录手动安装依赖): ```bash cd dsh-tdx && npm install DSH_TDX_PYTHON=<python 路径> dsh plugin --profile <your-profile> add ./dsh-tdx ``` > 注:link 副本 `~/.dsh/plugins-src/dsh-tdx` 也需在该目录 `npm install`,因为 link 不会共享 node_modules。 ## 工具清单 | 工具 | 功能 | 参数 | |------|------|------| | `tdx_kline` | A股历史 K 线(OHLCV) | code、period(1m~month,默认 day)、count(默认 80,最大 800) | | `tdx_quote` | 实时行情快照(批量) | codes(逗号分隔,如 `600519,000001`) | | `tdx_indicator` | 技术指标 | code、indicator(macd/rsi/ma/ema)、period、count、param | | `tdx_sector` | 概念板块成分/列表 | name(板块名,省略则列出全部板块) | ## 使用示例 ``` 用户:帮我看看贵州茅台最近 60 日日 K,算一下 MACD 和 RSI。 → tdx_kline(code=600519, period=day, count=60) → tdx_indicator(code=600519, indicator=macd, count=60) → tdx_indicator(code=600519, indicator=rsi, count=60) ``` ``` 用户:现在人工智能板块哪些票在涨? → tdx_sector(name=人工智能) ``` ## 技术设计 - 薄壳 + 纯函数分离:`index.js` 只注册工具;`lib.js` 全纯函数(指标计算、参数校验、数据格式化),可独立单测 - 数据层 `pytdx_fetch.py`:Node 通过 `spawnSync` 调 Python + pytdx 取数,输出 JSON - 技术指标(MA/EMA/MACD/RSI)在 `lib.js` 内用 K 线数据计算,零外部依赖 - 单测:`npm install && node --test` ## 版本 - v0.1.0:首发,K线 / 实时行情 / 技术指标 / 概念板块四类工具
Install
dsh plugin --profile web add github:guozede12593312/dsh-tdx
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-tdx from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.