Mistake Journal
Learn from your trading mistakes. Track patterns in your bad decisions.
Mistake Journal is a CLI trade journal that focuses on what went wrong and why. Log your trades with emotions, reasoning, and outcomes - then analyze patterns in your losing trades to become a better trader.
Features
- Trade Logging: Record entries with emotions, reasoning, market conditions
- Mistake Tagging: Categorize errors (FOMO, revenge trade, no stop loss, etc.)
- Pattern Analysis: AI identifies recurring mistakes in your history
- Emotion Tracking: Correlate emotional state with trade outcomes
- Weekly Reports: Summarize wins, losses, and lessons learned
- Export: JSON/CSV export for external analysis
Installation
pip install mistake-journal
Quick Start
# Log a new trade
mistake-journal log
# Quick log with inline data
mistake-journal log --symbol BTC --action buy --price 45000 --emotion anxious
# Review your journal
mistake-journal review
# Analyze your mistakes
mistake-journal analyze
# Weekly summary
mistake-journal report --week
Example Session
$ mistake-journal log
NEW TRADE ENTRY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Symbol: DOGE
Action [buy/sell]: buy
Entry price: 0.15
Position size ($): 500
Date (enter for now):
PRE-TRADE STATE
How are you feeling? [1-5 scale]
1=Fearful 2=Anxious 3=Neutral 4=Confident 5=Euphoric
Emotion level: 5
Why did you enter this trade?
> Elon tweeted and it's pumping, don't want to miss out
Did you have a plan before entering? [y/n]: n
Stop loss set? [y/n]: n
Take profit target? [y/n]: n
Tags (comma-separated): fomo, no-plan, social-media
Notes: Saw it on Twitter, jumped in without thinking
Entry logged! Remember to close this trade later with:
mistake-journal close --id 47
$ mistake-journal close --id 47
CLOSING TRADE #47 (DOGE)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Exit price: 0.11
Exit date (enter for now):
OUTCOME: -$133.33 (-26.7%)
POST-TRADE REFLECTION
What went wrong (or right)?
> Bought the top, it dumped right after. Classic.
What would you do differently?
> Wait for a pullback, set a stop loss, don't trade on tweets
Lesson learned: Don't chase pumps based on social media
Trade closed and saved!
Analyze Your Patterns
$ mistake-journal analyze
MISTAKE PATTERN ANALYSIS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total trades: 47
Win rate: 38%
Avg winner: +$234
Avg loser: -$189
TOP MISTAKE PATTERNS:
1. FOMO (12 trades, 83% loss rate)
- Avg loss: -$201
- Usually occurs when: emotion level 4-5
- Common symbols: DOGE, SHIB, meme coins
2. No Stop Loss (18 trades, 67% loss rate)
- Avg loss when wrong: -$312 (vs -$98 with stops)
- "Let me just hold and see" → usually gets worse
3. Revenge Trading (6 trades, 100% loss rate)
- Always follows a losing trade within 1 hour
- Avg loss: -$287
4. Overconfidence (8 trades, 62% loss rate)
- Emotion level 5, large position sizes
- Avg position: 15% of portfolio (vs your 5% rule)
INSIGHTS:
• You perform best when emotion level is 2-3 (neutral/slightly cautious)
• Your worst day is Monday (42% win rate vs 51% other days)
• Trades with a written plan: 58% win rate
• Trades without a plan: 24% win rate
RECOMMENDATION:
Stop trading meme coins on social media hype. Your win rate on
these is 12%. Consider a 24-hour waiting rule for high-emotion trades.
Mistake Tags
Built-in tags (or add your own):
| Tag | Description |
|---|---|
fomo |
Fear of missing out - chased a pump |
revenge |
Tried to "win back" losses immediately |
no-plan |
Entered without clear entry/exit criteria |
no-stop |
No stop loss set |
oversized |
Position too large for risk tolerance |
overtrading |
Too many trades in short period |
averaging-down |
Added to a losing position |
moved-stop |
Moved stop loss to avoid being stopped out |
early-exit |
Sold winner too early out of fear |
held-loser |
Held loser hoping it would recover |
Commands
mistake-journal log # Log new trade
mistake-journal close --id <ID> # Close a trade
mistake-journal review # Browse journal entries
mistake-journal analyze # Pattern analysis
mistake-journal report [--week/--month] # Performance report
mistake-journal tags # Manage custom tags
mistake-journal export --format csv # Export data
mistake-journal stats # Quick statistics
Use as Library
from mistake_journal import Journal
journal = Journal()
# Log a trade
trade_id = journal.log_trade(
symbol="BTC",
action="buy",
price=45000,
size=1000,
emotion=4,
reasoning="Breakout pattern",
tags=["technical", "planned"]
)
# Close it
journal.close_trade(
trade_id,
exit_price=48000,
reflection="Stuck to the plan, took profits at target"
)
# Analyze
analysis = journal.analyze()
print(analysis.top_mistakes)
print(analysis.recommendations)
Storage
Journal data stored locally in ~/.mistake-journal/:
trades.json- All trade entriesconfig.json- Settingstags.json- Custom tags
Philosophy
The goal isn't to track P&L (use a spreadsheet for that). The goal is to:
- Force reflection on every trade
- Identify patterns you can't see in the moment
- Build self-awareness about emotional trading
- Create accountability through written records
Most traders repeat the same 3-4 mistakes. Find yours. Fix them.
License
MIT License
Metadata
Release files for mistake-journal 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mistake_journal-0.1.0.tar.gz | 16.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mistake_journal-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.9 kB
Release files / mistake_journal-0.1.0.tar.gz
| Download URL | mistake_journal-0.1.0.tar.gz |
|---|---|
| Size | 16.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dbacef4fdf8083c895d9f7be28ae1d27a49827630f1c94789a59941508e50b3e
|
|
BLAKE2b-256 checksum How to use checksums |
557125aef04a3aa0dbdeadbabbc5b3aa9f2eacae744da27ff7a09db14b270124
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / mistake_journal-0.1.0-py3-none-any.whl
| Download URL | mistake_journal-0.1.0-py3-none-any.whl |
|---|---|
| Size | 12.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6c346966cc2b371244a5c8356698cf3b5f842229a47d2f4fa63a807558482e72
|
|
BLAKE2b-256 checksum How to use checksums |
3cd995a81a7cfc11f660941ef908b246d2cdaa9066038586ff82026eadb0c4d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|