---
title: "Trade Journal: The Free Open-Source Trading Journal"
description: "A free trading journal you own: automatic broker sync, a P&L calendar, deep analytics, daily notes with voice dictation, and AI reflection. Use it free inside LuxAlgo, where your AI reads and writes it over MCP, or run it on your own machine. Free forever either way."
canonical: https://www.luxalgo.com/trade-journal/
---

# Trade Journal: The Free Open-Source Trading Journal

> A free trading journal you own: automatic broker sync, a P&L calendar, deep analytics, daily notes with voice dictation, and AI reflection. Use it free inside LuxAlgo, where your AI reads and writes it over MCP, or run it on your own machine. Free forever either way.

## Record every trade. See what actually works.

The open-source trade journal: broker sync, deep analytics, a P&L calendar, daily journaling with voice dictation, and AI reflection. Free inside LuxAlgo, where your AI can read and write it over MCP, or on your own machine.

- Use it free in LuxAlgo: https://app.luxalgo.com
- GitHub: https://github.com/LuxAlgo/trade-journal

## Ask your journal from any AI.

Live on mcp.luxalgo.com, with a sign-in. Connect the LuxAlgo MCP in Claude, ChatGPT, Cursor or any MCP client, and thirteen `journal_*` tools read and write the journal inside LuxAlgo, as you. Ask for your worst weekday and the trades behind it, have the agent tag them and write the day note, or log a trade by hand. The first protected call asks you to sign in with your LuxAlgo account; the app owns the rules and validates every change.

Running the server locally instead? Sign in once with `npx -y @luxalgo/mcp login` and the same tools follow.

- `journal_list_accounts`: Your journal accounts and timezone: the first call, since every account filter takes these ids.
- `journal_overview`: The dashboard for a window: metrics, Edge Score, per-day P&L, equity curve, open positions. Compare adds the previous window.
- `journal_calendar`: One month of the P&L calendar: day cells, weekly and monthly totals, trading and winning days.
- `journal_breakdown`: Closed trades grouped by weekday, time of day, hold time, symbol, side, size, tag, rating and asset class.
- `journal_list_trades`: Trade summaries, paginated: filter by account, day window, symbol, direction, status and tag; sort either way.
- `journal_get_trade`: One trade in full: fills, per-exit P&L, every annotation.
- `journal_get_day`: A single day’s stats, trades and notes.
- `journal_list_tags`: Your tags, mistakes and playbooks with usage counts, so new annotations reuse your words.
- `journal_search_notes`: Day notes and trade notes as one newest-first stream, with text, day, symbol and account filters.
- `journal_add_trade`: Log a trade by hand: its fills into a manual or import account.
- `journal_update_trade`: Annotate a trade: notes, tags, mistakes, playbook, rating, stop, target, reviewed.
- `journal_write_note`: Add a note to a day.
- `journal_update_note`: Replace a day note’s text or move it to another day.

Connect the LuxAlgo MCP: https://www.luxalgo.com/mcp/

## Your fills find their own way in.

Read-only broker sync through the open Broker SDK (Alpaca, Binance, Kraken, IBKR Flex, Topstep, and more), with credentials AES-256-GCM encrypted next to your database. Or drop a statement on the import page: twelve formats auto-detect, re-imports dedupe themselves, and a column mapper covers any other CSV.

## Round trips, not rows

- Round trips, not rows: Flat-to-flat position cycles rebuilt from raw fills: partial fills, scale-ins, flips, futures multipliers.
- Your accounting, per account: FIFO, LIFO, or weighted average per account. Switch it and the engine rebuilds every cycle.
- Notes that survive: Ratings, tags, mistakes, and journal notes are keyed to the trade, so they survive every rebuild.

Analytics on top: net and gross P&L, win and day-win rates, profit factor, expectancy, R multiples, streaks, drawdown and recovery, profit concentration, and per-symbol, tag, mistake, and playbook breakdowns.

## A score that shows its formula.

The Edge Score is a 0 to 100 composite of six components with published weights, versioned in the repo and withheld entirely below five closed trades. No black box: the same radar the dashboard draws is the table below.

| Component | Full marks | Weight |
| --- | --- | --- |
| Win rate | full marks at 60% | 15 |
| Profit factor | full marks at 3.0 | 25 |
| Avg win / avg loss | full marks at 2.5 : 1 | 20 |
| Drawdown | full marks at 0%, zero at 25%+ | 15 |
| Recovery factor | net P&L = 3x max drawdown | 10 |
| Consistency | best day <= 15% of day profits | 15 |

Score = Σ(componentᵢ × weightᵢ) / Σ weights · EDGE_SCORE_VERSION = 2

## Write the day down. Or just say it.

Every trading day gets a page: day stats, the intraday P&L curve, and autosaving notes. Type them or dictate them with browser speech recognition, zero keys, zero cost. Folders, search, and tagged notebooks hold the longer thinking; playbooks turn setups into rule checklists that Reports scores.

## Reflection, with your own key.

Bring an Anthropic API key and the journal reflects back: session recaps, per-trade critiques, and ask-your-journal answers grounded in your own aggregates. The key is encrypted at rest, and requests go from your server to the model, nowhere else. Want your own agent to do the journaling? The hosted LuxAlgo MCP above reads and writes the journal inside LuxAlgo, as you.

## Running before your coffee is.

Node 22+ and pnpm, or just Docker. First run creates the SQLite database by itself; a password and at-rest encryption are one env var each when you want them. Early release: APIs and schema may still move before 1.0.

```bash
git clone https://github.com/LuxAlgo/trade-journal
cd trade-journal && pnpm install && pnpm dev
# http://localhost:3000 · SQLite creates itself
# no migration tool, no setup wizard, no account

# or, with Docker:
docker compose up -d
```

## Your trades. Your journal. Your story.

Free inside LuxAlgo, or self-hosted. Free, forever. MIT-licensed, with no telemetry, ever. The free journal inside LuxAlgo runs on this same open engine, and the repo stands alone: LuxAlgo integrations are optional bridges, never dependencies.

Trade Journal reports and analyzes what your broker reports. Nothing it computes or generates (including generated recaps, critiques, and answers) is investment advice, and no metric predicts future results. Verify important numbers against your broker’s own statements.

"TradingView" and "Pine Script" are trademarks or registered trademarks
of TradingView, Inc. LuxAlgo is not affiliated with, sponsored by, or
endorsed by TradingView, Inc.

Sitemap: https://www.luxalgo.com/sitemap.xml · Machine-readable index: https://www.luxalgo.com/llms.txt
