Trading Journal
unlistedby Sia12345678
A simple AI-powered trading journal. Supports stocks (A-share, US, HK), crypto, and more.
Trading Journal — Obsidian Plugin
AI-powered trading journal for Obsidian. Opens a sidebar chat that walks you through the end-of-day review: market data auto-fetch, portfolio snapshot parsing, trade log, and behavioral finance reflection.
Features
- Multi-provider AI: Claude, GPT, DeepSeek, Qwen (通义千问), Doubao (豆包), Kimi, GLM (智谱), or any OpenAI-compatible endpoint
- Auto market data: Fetches Shanghai/Shenzhen/ChiNext indices and total volume from eastmoney at session start
- Screenshot parsing: Send your broker app screenshot; the AI extracts holdings and trade records
- Structured output: Markdown journal + CSV portfolio history, written directly to your vault
- Behavioral audit: Randomized questions across emotion awareness, discipline audit, cognitive bias check, and big-picture review
- Friday weekly review: Automatically triggered on Fridays
- A-share holiday aware: Detects mainland China trading holidays
Installation
Community Plugin Store (recommended)
- Open Obsidian → Settings → Community plugins → Browse
- Search for Trading Journal
- Install & enable
Manual
- Download
main.js,manifest.json,styles.cssfrom the latest release - Copy them to
YOUR_VAULT/.obsidian/plugins/trading-journal/ - Reload Obsidian → Settings → Community plugins → Enable Trading Journal
BRAT (beta)
- Install BRAT
- BRAT → Add Beta Plugin →
Sia12345678/trading-journal-obsidian
Setup
- Settings → Trading Journal
- Select AI Provider and enter your API Key
- Set 交易日记文件夹 to the vault-relative path where journal files should be saved (e.g.
日记/交易日记)
Usage
Click the notebook icon in the ribbon, or run the command 开始今日交易日志.
The AI guides you through:
- Market environment (auto-fetched indices + you fill in sentiment data)
- Portfolio snapshot (send a screenshot or say "没变")
- Today's trades (screenshot or free text, always include why)
- Trades considered but not made
- Three behavioral reflection questions
- One-line takeaway
Files written at the end of each session:
| File | Contents |
|---|---|
YYYY-MM-DD.md | Full journal entry (Obsidian-linked) |
_交易日记.md | Index of all entries |
持仓记录.csv | A-share portfolio history (CNY) |
持仓记录_港股.csv | HK-share portfolio history (HKD) |
External Services
This plugin makes network requests to the following third-party services to fetch market data. No personal data is sent — only public market symbol lookups.
| Service | Purpose | Privacy Policy |
|---|---|---|
| East Money (东方财富) | A-share index data (Shanghai, Shenzhen, ChiNext) | link |
| Yahoo Finance | US / HK stock and index quotes | link |
| CoinGecko | Cryptocurrency prices | link |
All AI inference calls go directly from your device to the AI provider you configure (Anthropic, OpenAI, etc.). Conversation data is not routed through any intermediate server.
Supported Providers
| Provider | API Docs |
|---|---|
| Anthropic (Claude) | platform.anthropic.com |
| OpenAI | platform.openai.com |
| DeepSeek | platform.deepseek.com |
| 通义千问 (Qwen) | dashscope.aliyuncs.com |
| 豆包 (Doubao) | console.volcengine.com |
| Moonshot (Kimi) | platform.moonshot.cn |
| 智谱 (GLM) | open.bigmodel.cn |
| Custom (any OpenAI-compatible) | — |
Development
git clone https://github.com/Sia12345678/trading-journal-obsidian
cd trading-journal-obsidian
npm install
npm run dev # watch mode — rebuilds main.js on save
Symlink into your vault for live testing:
VAULT="$HOME/path/to/your/vault"
PLUGIN="$VAULT/.obsidian/plugins/trading-journal"
mkdir -p "$PLUGIN"
ln -sf "$(pwd)/main.js" "$PLUGIN/main.js"
cp manifest.json styles.css "$PLUGIN/"
Then in Obsidian: Settings → Community plugins → reload & enable Trading Journal.
Releasing
Tag a commit with the version number (must match manifest.json):
# 1. Bump version in manifest.json and versions.json
# 2. Commit
git add manifest.json versions.json
git commit -m "chore: bump to 0.2.0"
# 3. Tag and push — GitHub Actions handles the rest
git tag 0.2.0
git push && git push --tags
The workflow builds the plugin and attaches main.js, manifest.json, styles.css to the GitHub Release automatically.
Submitting to Obsidian Community Plugins
- Make sure your plugin has at least one public release
- Fork obsidian-releases
- Add an entry to
community-plugins.json:{ "id": "trading-journal", "name": "Trading Journal", "author": "Your Name", "description": "AI-powered A-share trading journal with market data auto-fetch and behavioral reflection.", "repo": "Sia12345678/trading-journal-obsidian" } - Open a PR — review typically takes 2–6 weeks
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.