Skip to main content

Learn from your trading mistakes. Track patterns in bad decisions.

Project description

Mistake Journal

Ko-fi

Buy Me A Coffee

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 entries
  • config.json - Settings
  • tags.json - Custom tags

Philosophy

The goal isn't to track P&L (use a spreadsheet for that). The goal is to:

  1. Force reflection on every trade
  2. Identify patterns you can't see in the moment
  3. Build self-awareness about emotional trading
  4. Create accountability through written records

Most traders repeat the same 3-4 mistakes. Find yours. Fix them.

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mistake_journal-0.1.0.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mistake_journal-0.1.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file mistake_journal-0.1.0.tar.gz.

File metadata

  • Download URL: mistake_journal-0.1.0.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for mistake_journal-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dbacef4fdf8083c895d9f7be28ae1d27a49827630f1c94789a59941508e50b3e
MD5 aa2d04cc012ffcffbfa4aed90ff79521
BLAKE2b-256 557125aef04a3aa0dbdeadbabbc5b3aa9f2eacae744da27ff7a09db14b270124

See more details on using hashes here.

File details

Details for the file mistake_journal-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mistake_journal-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c346966cc2b371244a5c8356698cf3b5f842229a47d2f4fa63a807558482e72
MD5 279a36702983702746a1ac9b24090247
BLAKE2b-256 3cd995a81a7cfc11f660941ef908b246d2cdaa9066038586ff82026eadb0c4d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page