Install
openclaw skills install paper-traderRun a structured paper-trading loop with SQLite-backed event logging, position tracking, and PnL review. Use when opening/closing simulated trades, journaling thesis notes, checking portfolio status, or generating weekly performance summaries.
openclaw skills install paper-traderSQLite-backed paper trading with immutable event logs.
Asset identity:
symbol is required for trade/snapshot commands.mint is REQUIRED for snapshot and open (--mint <address>).--mint for close/set-levels so you target the right one.WETH, WBTC/cbBTC) as the mint.Use this skill when the user wants to:
Default DB path:
~/.openclaw/paper-trading.db
Override with --db <path>.
Use the script:
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts --help
Environment notes:
node:sqlite).ExperimentalWarning for SQLite in current versions; this is expected.node --experimental-strip-types {baseDir}/scripts/paper_trading.ts init \
--account main \
--name "Main Paper Account" \
--base-currency USD \
--starting-balance 10000
node --experimental-strip-types {baseDir}/scripts/paper_trading.ts snapshot \
--symbol BTC \
--mint 6p6xgHyF7AeE6TZk8x9mNQd2r2hH7r4mYJ8t6x6hYfSR \
--price 62000 \
--source dexscreener
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"
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"
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"
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
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
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
--mint and --source dexscreener.--max-risk-pct).status after each trade and review at week end.events table).status uses the latest snapshot per symbol + mint pair for unrealized PnL.Run the full paper-trading test suite:
node --test {baseDir}/tests/paper_trading.test.mjs