
Trading Automation
paper-trading
Paper Trading is an SQLite-backed paper trading utility that logs immutable events, tracks positions, and computes realized and unrealized P&L. It offers CLI commands to initialize accounts, record market snapshots, open/close positions, and update stop/take levels, with asset identity controlled by
Overview
Paper Trading is an SQLite-backed paper trading utility that logs immutable events, tracks positions, and computes realized and unrealized P&L.
Paper Trading is an SQLite-backed paper trading utility that logs immutable events, tracks positions, and computes realized and unrealized P&L. It offers CLI commands to initialize accounts, record market snapshots, open/close positions, and update stop/take levels, with asset identity controlled by symbol and mint (mint required for snapshots/opens and recommended for disambiguating same-symbol positions). Use it to simulate ideas before risking capital, maintain a thesis journal, monitor entries/exits/stops/takes, and generate periodic performance reviews. Key features include a default (and overrideable) DB path (~/.openclaw/paper-trading.db), wrapped-token support for DEX assets, per-position fees and risk parameters, immutable event history for auditing, and a lightweight Node.js script with no external SQLite dependencies for easy integration into workflows.
Skill.md
How this skill works
Paper Trading is an SQLite-backed paper trading utility that logs immutable events, tracks positions, and computes realized and unrealized P&L. It offers CLI commands to initialize accounts, record market snapshots, open/close positions, and update stop/take levels, with asset identity controlled by
Paper Trading
SQLite-backed paper trading with immutable event logs.
Asset identity:
symbolis required for trade/snapshot commands.mintis REQUIRED forsnapshotandopen(--mint <address>).- If multiple positions share the same symbol, pass
--mintforclose/set-levelsso you target the right one. - For ETH/BTC on DEXs, use wrapped token contract addresses (
WETH,WBTC/cbBTC) as the mint.
When to Use
Use this skill when the user wants to:
- paper trade ideas before live capital
- track entries/exits/stops/takes over time
- compute realized and unrealized PnL
- keep a thesis journal and periodic review
Database
Default DB path:
~/.openclaw/paper-trading.db
Override with --db <path>.
Commands
Use the script:
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts --help
Environment notes:
- No npm dependency is required for SQLite (uses
node:sqlite). - Node may print
ExperimentalWarningfor SQLite in current versions; this is expected.
1) Initialize account
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts init \
--account main \
--name "Main Paper Account" \
--base-currency USD \
--starting-balance 10000
2) Log market snapshot (for unrealized PnL)
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts snapshot \
--symbol BTC \
--mint 6p6xgHyF7AeE6TZk8x9mNQd2r2hH7r4mYJ8t6x6hYfSR \
--price 62000 \
--source dexscreener
3) Open position
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts open \
--account main \
--symbol BTC \
--mint 6p6xgHyF7AeE6TZk8x9mNQd2r2hH7r4mYJ8t6x6hYfSR \
--side LONG \
--qty 0.1 \
--price 62000 \
--fee 4 \
--stop-price 60500 \
--take-price 65000 \
--max-risk-pct 1.5 \
--note "Breakout + volume confirmation"
4) Update stop/take
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts set-levels \
--account main \
--symbol BTC \
--mint 6p6xgHyF7AeE6TZk8x9mNQd2r2hH7r4mYJ8t6x6hYfSR \
--side LONG \
--stop-price 61200 \
--take-price 66000 \
--note "Move stop to reduce downside"
5) Close position
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts close \
--account main \
--symbol BTC \
--mint 6p6xgHyF7AeE6TZk8x9mNQd2r2hH7r4mYJ8t6x6hYfSR \
--side LONG \
--qty 0.05 \
--price 63500 \
--fee 3 \
--note "Partial take profit"
6) Journal note
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts note \
--account main \
--symbol BTC \
--side LONG \
--note "Invalidation if daily close < 61k" \
--tags thesis risk macro
7) Portfolio status
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts status --account main
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts status --account main --format json --pretty
8) Weekly review
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts review --account main
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts review --account main --format json --pretty
Workflow
- Keep snapshots updated for symbols with open positions, always with
--mintand--source dexscreener. - Open trades only with explicit stop and risk cap (
--max-risk-pct). - Log every change as an event, do not edit old events.
- Run
statusafter each trade andreviewat week end.
Notes
- Events are append-only in SQLite (
eventstable). - PnL is recomputed by replaying events.
statususes the latest snapshot persymbol + mintpair for unrealized PnL.
Validation
Run the full paper-trading test suite:
node --test {baseDir}/tests/paper_trading.test.mjs
Best used for
When to use it
Paper Trading is an SQLite-backed paper trading utility that logs immutable events, tracks positions, and computes realized and unrealized P&L. It offers CLI commands to initialize accounts, record market snapshots, open/close positions, and update stop/take levels, with asset identity controlled by

01 · PRE-MEETING
Prepare a decision brief
Turn scattered evidence into a structured case before an investment committee meeting.

02 · TEAM WORKFLOW
Standardize handoffs
Create consistent research outputs across analysts, portfolio managers, and agents.

03 · LIVE UPDATE
Refresh the thesis
Update scenarios after a new catalyst, KPI release, or earnings result.
Community notes
Built to improve with use.
Feedback will appear here as this skill is used and reviewed.
Discover more
Related skills
View allquant-analysis
Quantitative Analysis Skill provides an end-to-end toolkit for quantitative finance research and production analysis. It automates data ingestion, interactive analysis in Jupyter (jupyter_execute,…
bankr
Bankr enables executing crypto trading and DeFi operations via natural-language commands. It offers two integration options: a batteries-included Bankr CLI and a REST API at https://api.bankr.bot,…
pine-backtester
pine-backtester provides comprehensive backtesting for Pine Script indicators and strategies. Use it to append performance metrics, analyze trades, generate equity curves, compute win rates, track…