复盘札记(TradeNote)是一款 Obsidian 本地交易复盘插件,用普通 Markdown 笔记记录每天的市场观察、交易操作和思考。它可以轻松实现:
复盘笔记和图片均保存在本地,不依赖其他插件,可以直接使用 Obsidian 的编辑、搜索、链接和备份功能。基础复盘无需配置 AI;启用 AI 分析时,所选范围内的复盘文字会发送到你配置的接口。
作者 B 站主页:北漠海
更新日志:更新记录
如果发现问题或有功能建议,欢迎 B 站私信北漠海,或加 QQ 群 588526922 交流反馈。也可以通过问题反馈提交问题。
也可以打开 TradeNote 插件市场页面,跳转到 Obsidian 安装。 后续可在“设置 → 第三方插件”中检查更新,无需手动下载文件。
需要 Obsidian 1.7.2 或更高版本;在 1.13 及以上版本中,插件设置支持全局设置搜索。
main.js、manifest.json 和 styles.css 三个文件;.obsidian/plugins/ 目录下新建 tradenote 文件夹,将三个文件放入其中;如果看不到 .obsidian,需打开系统的“显示隐藏文件”选项;手动更新时只替换这三个文件,不要删除原来的 data.json,否则会丢失插件设置。
推荐优先使用插件市场安装和更新;上述手动方式适用于离线安装或需要指定版本的情况。
需要 Node.js 22.13 或更高版本,以及 pnpm 11.25.0:
pnpm install --frozen-lockfile
pnpm check
pnpm lint
pnpm test
pnpm build
pnpm package
构建后,项目根目录会生成 main.js;pnpm package 会将三个安装文件输出到 dist/tradenote/,不打包设置、笔记或附件。生产构建不含源码映射并压缩语法与空白,开发时可运行 pnpm dev 保留源码映射并监听源码。
历史检索和仪表盘刷新复用 Obsidian 的笔记读取缓存,编辑后的内容仍由 Obsidian 更新。延迟加载的标签页会在刷新前正确加载;切换 AI 地址或密钥后,需要重新获取对应服务的模型列表。
默认目录如下,可在插件设置中修改:
交易复盘/
├─ 日报/
│ └─ YYYY/
│ └─ MM/
│ └─ YYYYMMDD复盘.md
├─ 附件/
│ └─ YYYY/
│ └─ MM/
│ └─ DD/
│ └─ image-时间戳.png
└─ AI复盘分析/
└─ YYYY/
每篇日报的初始内容为:
# 市场观察
# 昨日验证
# 今日操作
# 今日反思
# 明日计划
.obsidian/plugins/tradenote/data.json 中,请勿将该文件提交到公开仓库。插件用于记录和回顾交易,不提供投资建议。
如果你喜欢我的插件,你可以在这里对我表达支持,谢谢!

交流群:QQ 群 588526922。
本项目基于 MIT 开源协议 开源。
世界因开源更精彩
TradeNote is a local-first trading journal for Obsidian. Record market observations, verify previous plans, document trades, reflect on decisions, and prepare the next trading day in ordinary Markdown notes. Your journal and image attachments remain readable and editable without the plugin.
Requires Obsidian 1.7.2 or later. Settings are searchable on Obsidian 1.13 and later.
You can also open the TradeNote community plugin page. Future updates are available from Settings → Community plugins.
For an offline or version-specific installation, download main.js, manifest.json, and styles.css from a GitHub release, place them in .obsidian/plugins/tradenote/, restart Obsidian, and enable the plugin. If your vault uses a custom configuration folder, use that folder in place of .obsidian.
When updating manually, replace only those three files and keep your existing data.json. Production builds omit source maps and compact syntax and whitespace. Run pnpm package to collect the three distributable files in dist/tradenote/.
The dashboard uses Obsidian’s note-read cache and loads deferred tabs before refreshing. Model lists are invalidated when the API endpoint or key changes, so a previous provider’s list cannot be selected accidentally.
Basic journaling does not require an AI account. Journal notes and attachments are stored in your vault. The plugin enumerates file paths for review search and attachment statistics, and checks other Markdown notes before deleting attachments to avoid removing images still in use. Clipboard writes happen when you select a copy action; image pasting reads only the image provided by the paste event, with no background clipboard reading.
Annual calendar updates contact the Shanghai Stock Exchange. If you choose AI analysis, text from the selected review period is sent to your configured provider after image references are removed. Image files are not read for analysis. Connection tests and model-list requests also contact that provider, which may require an account or charge fees. API credentials are stored in .obsidian/plugins/tradenote/data.json; do not publish this file.
Use Node.js 22.13 or later and pnpm 11.25.0. Run pnpm install --frozen-lockfile, followed by pnpm release:files to check types, lint, run tests, and build. Release tags use the exact numeric version in manifest.json, for example 0.1.4, without a v prefix.
Report problems through GitHub issues, contact 北漠海 on Bilibili, or join QQ group 588526922. Optional donations are welcome through the WeChat Pay and Alipay codes in the Chinese support section above. Donations are not required to use any feature.
TradeNote is released under the MIT License. It helps record and review trading decisions and does not provide investment advice.