dsh-hajijin(哈基金)
DSH 的散户场外基金助手插件:基金池 → 指标/评分 → 偏好加权推荐 → 模拟盘记账与复盘。 数据只读公开接口,不登录、不接触、不操作任何真实账户;输出仅为建议与操作步骤。
风险声明:本插件不构成投资建议,仅供娱乐;投资有风险,亏损自负;禁止商用。 数据来自第三方公开接口,可能存在延迟、缺失或错误;净值与费率以基金公司及销售平台公告为准。
当前版本 v0.2.2:数据源、引擎、模拟盘、自选跟踪、定时任务、对话工具与独立网页已完整接线。
仓库地址:https://github.com/dqsyyys8d9-png/dsh-hajijin
详细用法见 docs/usage.md,接口契约见 docs/contracts.md,
数据接口见 docs/data-sources.md,设计背景见 docs/framework-v0.1.md。
功能
| 模块 | 说明 |
|---|---|
| 基金池 | 全市场约 2 万只 → 硬过滤(类型/成立/规模/申购/回撤)→ 全池横向打分 → 反追高 → A/C 去重与同主题上限 → 推荐池(v0.2.1 起;selection.mode=legacy 可切回旧的收益预筛逻辑)。v0.2.2 起可选「组合层」:先定权益/债券目标仓位、再在袖内选品,带单只 15%、同主题 30% 约束和波动风险闸(默认关,见 docs/strategy-plan.md) |
| 中期技术面 | 20/40/60 日动量、MA20/MA60 斜率、MACD、RSI、60 日回撤、波动/夏普/卡玛 |
| 基本面 | 规模、费率、风险等级、类别;经理/管理费率 v0.1 暂缺(第三方未提供) |
| 宏观 | CPI / PPI / PMI / GDP / M2 / 10Y 国债收益率 → 宽松/中性/紧缩 × 风格适配 |
| 偏好加权 | 5 档风险偏好(最大回撤 5%/10%/15%/25%/35%)→ 六维权重 + 仓位上限 + 止损线 |
| 推荐输出 | 评分、动作(buy/hold/observe/reduce/avoid)、参考仓位、止损线、一句话理由、支付宝操作步骤、T+1/费用提示 |
| 模拟盘 | 双账户(实盘镜像 mirror / 策略模拟 virtual)、T+1 净值确认、申购赎回费、分红再投、快照与收益归因、信心分 |
| 定投计划 | 频率/每期金额/持有数,按推荐池权重分配,未来 8 期交易日 + 支付宝设置步骤(不自动扣款) |
| 自选跟踪 | 手动加入的基金单独一份 watchlist.json,每日收盘刷新净值,看加入至今 / 近 20 / 近 60 日收益(复权口径) |
| 复盘 | daily / weekly / monthly 报告(指标、持仓、归因、建议 vs 实操),json + markdown |
| 独立网页 | http://127.0.0.1:5391/,五个页签(今日/基金池/自选/实盘镜像/复盘),浏览器直开、不走 DSH 登录;设置页有入口。见 docs/webui.md |
| 定时任务 | 交易日 14:30 盘中快照、21:30 收盘作业(刷净值/重建池/确认净值/快照/复盘)、启动补跑 |
| 对话工具 | 10 个 hajijin_* 工具,见下文 |
安装与打开
git clone https://github.com/dqsyyys8d9-png/dsh-hajijin.git
插件按 DSH bundle 规范安装到 desktop profile(由 Agent 执行,插件自身不调用 plugin_manager、不改 profile):
- 安装:
plugin_manager(action="install_bundle", target="<克隆下来的本仓库绝对路径>") - 刷新代码(本地 link 目录重装无效时):
plugin_manager(action="set_plugin", target="include:hajijin", enabled=false)→ 再enabled=true - 卸载:
plugin_manager(action="remove_bundle", target="dsh-hajijin")
装好后刷新 Web 页面(Electron 内 Cmd+R),即可看到:
| 入口 | 位置 | 内容 |
|---|---|---|
| 左侧栏「哈基金」 | sidebar.panellist,order 12 |
点击打开整页 Dashboard |
| 主面板 | main key = hajijin |
今日 / 基金池 / 自选 / 模拟盘 / 复盘 五个页签 |
| 设置页 | Settings → 哈基金,order 40 | 交易偏好 / 定时任务 / 数据源 / 网页版 / 风险声明 五块 |
UI 只使用宿主 CSS 变量(亮/暗主题自适应),桌面优先、窄屏可用;页脚固定风险声明。
快速上手
- 设置 → 哈基金:选风险档位(自动套六维权重)、基金类别、推荐条数、基准、费率、定投参数,保存。
- 今日页 →「刷新数据」(首次约 1–3 分钟;之后走缓存)。
- 查看今日推荐 / 基金池详情。
- 模拟盘:建账户(mirror / virtual)→ 记录买卖(可打 1–5 星信心)→ 晚上净值确认 → 复盘。
完整说明见 docs/usage.md。
Host API
插件激活时在宿主 Web 服务挂 /api/hajijin(同源 JSON、统一信封 {ok, data, meta} / {ok:false, error}):
GET /health/status/config/macro/pool/recommend/fund/:code/plan/scheduleGET /paper/accounts/paper/portfolio/paper/transactions/paper/metrics/paper/snapshotsGET /reports/reports/:type/:datePUT|POST /config、POST /config/reset、POST /refresh、POST /plan/generate、POST /schedule/run、POST /schedule/toggle、POST /reports/generate、paper 交易增删- 刷新类接口有进程内互斥,重复调用返回
409 busy
对话工具
hajijin_status · hajijin_refresh · hajijin_recommend · hajijin_fund · hajijin_pool ·
hajijin_plan · hajijin_watchlist(自选:list/add/remove)· hajijin_paper · hajijin_review · hajijin_config
数据与存储
- 数据源:东方财富(基金搜索/排名/净值/基本信息/重仓/ETF/宏观/交易日历)、蛋卷(指数估值,可选)。
- 存储:
$DSH_HOME/hajijin/(默认~/.dsh/hajijin/)——config.json、pool/、plan/、watchlist.json、paper/、reports/、cache/、logs/;$HAJIJIN_DATA_DIR可覆盖。 - 只读公开数据,无需登录;不读取账号、不保存任何凭证。
文件
index.js Host 入口:存储/配置/调度器/Service/API/工具装配
client.js Web 客户端:侧栏图标 + 主面板四页签 + 设置页
cordis.patch.yml bundle patch(insert hajijin)
lib/constants.mjs 风险档位/权重/免责声明/基准等常量
lib/store.mjs 数据目录、原子读写、缓存、日志
lib/http.mjs HTTP 封装(UA/限速/超时/重试/var/JSONP 解析)
lib/calendar.mjs 交易日历(push2his kline,缓存 + 工作日兜底)
lib/config.mjs 配置默认值/归一化/深合并/读写
lib/schedule.mjs Scheduler(14:30 / 21:30 / 启动补跑)
lib/api.mjs /api/hajijin 路由与信封
lib/service.mjs 编排:数据源→基金池→评分→推荐→模拟盘→复盘
lib/tools.mjs 9 个 Agent 工具定义
lib/sources/ 东方财富/蛋卷数据源
lib/indicators.mjs 技术指标
lib/pool.mjs 基金池漏斗(硬过滤/配额/混合排序)
lib/score.mjs 横截面归一化与六维评分
lib/strategy.mjs 建议动作/仓位/止损/支付宝步骤
lib/plan.mjs 定投计划
lib/paper/ 模拟盘账本/费用/估值/复盘
tests/ core / schedule / sources / engine / paper(99 用例)
tools/probe.mjs 数据接口探针(20 项)
tools/smoke-api.mjs API 冒烟(17 项)
开发自检
node --test tests/core.test.mjs tests/schedule.test.mjs tests/sources.test.mjs tests/engine.test.mjs tests/paper.test.mjs # 99 pass
node tools/smoke-api.mjs --strict # 需要 DSH Web 服务在跑
node tools/probe.mjs # 第三方数据接口探针,联网
node --check index.js && node --check client.js
已知限制(v0.1)
- 场外基金只有每日收盘净值,无盘中估值;盘中只展示指数/ETF 行情。
- ETF 仅纳入股票型(约 1375 只),跨境/债券/货币/黄金/商品 ETF 暂不纳入。
- 社融数据东财不可用;基金经理、管理费率部分字段暂为空。
- 定投计划不自动执行、不自动写流水;模拟盘收益为净值估算。
- 插件本体不提供任何下单/账户能力。
故障排查
- 刷新页面后白屏 / 打不开:先看
~/Library/Logs/DeepSeek Harness/crash-*-web-boot.log。 若错误是web boot: N entries did not activate+dsh-hajijin: loading,通常是 client 插件inject未声明 apply 中访问的服务(Cordis 严格访问,ctx.locale未声明会直接抛cannot get property "locale" without inject)。本仓库已修复为inject: ['slots', 'locale']; 改完 client.js 后需plugin_manager set_plugin target="include:hajijin" enabled=false→true再刷新页面。若仍打不开,可先禁用插件恢复 GUI,再排查。 - 侧栏没有「哈基金」:确认
plugin_manager list_plugins中include:hajijin为 enabled=true / fiberPhase=active,然后刷新页面;必要时执行上面的 toggle 重载。 - 数据为空/报错:看今日页右上角健康状态与
/api/hajijin/status的lastError; 首次刷新需要 1–3 分钟(全市场排名与类别筛选),可稍后再试。
许可
详见 LICENSE:禁止商用;仅供个人学习娱乐;不构成投资建议,亏损自负。
No comments yet. Be the first to write one.