Back to skills
SkillHub ClubShip Full StackFull Stack

prediction-trade-journal

Auto-log trades with context, track outcomes, generate calibration reports to improve trading.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,071
Hot score
99
Updated
March 20, 2026
Overall rating
C4.0
Composite score
4.0
Best-practice grade
B80.4

Install command

npx @skill-hub/cli install openclaw-skills-prediction-trade-journal

Repository

openclaw/skills

Skill path: skills/adlai88/prediction-trade-journal

Auto-log trades with context, track outcomes, generate calibration reports to improve trading.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install prediction-trade-journal into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding prediction-trade-journal to shared team environments
  • Use prediction-trade-journal for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: prediction-trade-journal
description: Auto-log trades with context, track outcomes, generate calibration reports to improve trading.
metadata:
  author: Simmer (@simmer_markets)
  version: "1.1.8"
  displayName: Prediction Trade Journal
  difficulty: beginner
---
# Prediction Trade Journal

Track every trade, learn from outcomes, improve your edge.

## When to Use This Skill

Use this skill when the user wants to:
- See their trade history
- Track win rate and P&L
- Generate trading reports
- Analyze which strategies work best

## Quick Commands

```bash
# Sync trades from API
python tradejournal.py --sync

# Show recent trades
python tradejournal.py --history 10

# Generate weekly report
python tradejournal.py --report weekly

# Export to CSV
python tradejournal.py --export trades.csv
```

**API Reference:**
- Base URL: `https://api.simmer.markets`
- Auth: `Authorization: Bearer $SIMMER_API_KEY`
- Trades: `GET /api/sdk/trades`

## How It Works

1. **Sync** - Polls `/api/sdk/trades` to fetch trade history
2. **Store** - Saves trades locally with outcome tracking
3. **Track** - Updates outcomes when markets resolve
4. **Report** - Generates win rate, P&L, and calibration analysis

## CLI Reference

| Command | Description |
|---------|-------------|
| `--sync` | Fetch new trades from API |
| `--history N` | Show last N trades (default: 10) |
| `--sync-outcomes` | Update resolved markets |
| `--report daily/weekly/monthly` | Generate summary report |
| `--config` | Show configuration |
| `--export FILE.csv` | Export to CSV |
| `--dry-run` | Preview without making changes |

## Configuration

| Setting | Environment Variable | Default |
|---------|---------------------|---------|
| API Key | `SIMMER_API_KEY` | (required) |

## Storage

Trades are stored locally in `data/trades.json`:

```json
{
  "trades": [{
    "id": "uuid",
    "market_question": "Will X happen?",
    "side": "yes",
    "shares": 10.5,
    "cost": 6.83,
    "outcome": {
      "resolved": false,
      "winning_side": null,
      "pnl_usd": null
    }
  }],
  "metadata": {
    "last_sync": "2025-01-29T...",
    "total_trades": 50
  }
}
```

## Skill Integration

Other skills can enrich trades with context:

```python
from tradejournal import log_trade

# After executing a trade
log_trade(
    trade_id=result['trade_id'],
    source="copytrading",
    thesis="Mirroring whale 0x123...",
    confidence=0.70
)
```

This adds thesis, confidence, and source to the trade record for better analysis.

## Example Report

```
đź““ Weekly Report
========================================
Period: Last 7 days
Trades: 15
Total cost: $125.50
Resolved: 8 / 15
Win rate: 62.5%
P&L: +$18.30

By side: 10 YES, 5 NO
```

## Troubleshooting

**"SIMMER_API_KEY environment variable not set"**
- Set your API key: `export SIMMER_API_KEY=sk_live_...`

**"No trades recorded yet"**
- Run `python tradejournal.py --sync` to fetch trades from API

**Trades not showing outcomes**
- Run `python tradejournal.py --sync-outcomes` to update resolved markets


---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### _meta.json

```json
{
  "owner": "adlai88",
  "slug": "prediction-trade-journal",
  "displayName": "Prediction Trade Journal",
  "latest": {
    "version": "1.1.11",
    "publishedAt": 1772506401005,
    "commit": "https://github.com/openclaw/skills/commit/33695b83ebd554911d30ca4a5b414e4c7f3cb094"
  },
  "history": [
    {
      "version": "1.1.10",
      "publishedAt": 1772187767697,
      "commit": "https://github.com/openclaw/skills/commit/f73424cd9640319d1b47600ae031390535af6645"
    },
    {
      "version": "1.1.9",
      "publishedAt": 1772164772149,
      "commit": "https://github.com/openclaw/skills/commit/d157460860c2c454cb8b53e1281f3cbd02f100f5"
    },
    {
      "version": "1.1.8",
      "publishedAt": 1772027772834,
      "commit": "https://github.com/openclaw/skills/commit/f9576091d88055eaba718a1cac789fa8647e4c15"
    },
    {
      "version": "1.1.6",
      "publishedAt": 1771940653880,
      "commit": "https://github.com/openclaw/skills/commit/ba51b5a0b790dee1cd0f9a066773ad394345a94c"
    },
    {
      "version": "1.1.5",
      "publishedAt": 1771314824380,
      "commit": "https://github.com/openclaw/skills/commit/fbf5cae9f00b9d3c56c5dd41312c6ca57268a650"
    },
    {
      "version": "1.1.2",
      "publishedAt": 1771081169296,
      "commit": "https://github.com/openclaw/skills/commit/71cd21e169b68ef696556b0a6a708af3f97229c9"
    }
  ]
}

```

### scripts/status.py

```python
#!/usr/bin/env python3
"""Quick status check for Trade Journal."""

import sys

# Force line-buffered stdout so output is visible in non-TTY environments (cron, Docker, OpenClaw)
sys.stdout.reconfigure(line_buffering=True)

from pathlib import Path

# Add parent directory to path for imports
sys.path.insert(0, str(Path(__file__).parent.parent))

from tradejournal import show_status, show_history

if __name__ == "__main__":
    show_status()
    print()
    show_history(5)

```

prediction-trade-journal | SkillHub