Skip to content

Trading Runbook

Daily operations, procedures, and emergency responses.


Daily Schedule

Pre-Market (8:00 - 9:30 AM ET)

  1. Check system health

    uv run python3 tools/trading_health_check.py
    

  2. Review overnight news for held positions

  3. Check LaunchAgent status

    launchctl list | grep -E "micro-cap|trading"
    

  4. Review error logs

    tail -50 /tmp/micro_cap_monitor_error.log
    tail -50 /tmp/micro_cap_paper_trader.log
    

Market Hours (9:30 AM - 4:00 PM ET)

  • Monitor paper trader signals
  • Review any triggered alerts
  • NO manual intervention during automated trading

Post-Market (4:00 - 5:00 PM ET)

  1. Review day's activity

    uv run python3 tools/daily_report.py
    

  2. Check P&L

    uv run python3 tools/portfolio_fetcher.py
    

  3. Update trading journal (if significant events)


LaunchAgent Management

Check Status

# List all trading agents
launchctl list | grep -E "micro-cap|trading"

# Check specific agent
launchctl list com.bert.micro-cap-paper-trader

Start/Stop

# Stop agent
launchctl unload ~/Library/LaunchAgents/com.bert.micro-cap-paper-trader.plist

# Start agent
launchctl load ~/Library/LaunchAgents/com.bert.micro-cap-paper-trader.plist

View Logs

# Paper trader output
tail -f /tmp/micro_cap_paper_trader.log

# Monitor errors
tail -f /tmp/micro_cap_monitor_error.log

Emergency Procedures

Stop All Trading Immediately

# Unload all trading LaunchAgents
launchctl unload ~/Library/LaunchAgents/com.bert.micro-cap-paper-trader.plist
launchctl unload ~/Library/LaunchAgents/com.bert.micro-cap-monitor.plist

# Verify stopped
launchctl list | grep micro-cap

Cancel Pending Orders

# Alpaca - Cancel all orders
uv run python3 -c "
from alpaca.trading.client import TradingClient
client = TradingClient('PAPER_KEY', 'PAPER_SECRET', paper=True)
client.cancel_orders()
print('All orders cancelled')
"

Close All Positions (Emergency)

# Only in emergency - liquidates everything
uv run python3 tools/emergency_liquidate.py --paper --confirm

Common Issues

LaunchAgent Not Running

# Check if plist is valid
plutil ~/Library/LaunchAgents/com.bert.micro-cap-paper-trader.plist

# Check recent errors
grep -i error /tmp/micro_cap_*.log | tail -20

# Reload agent
launchctl unload ~/Library/LaunchAgents/com.bert.micro-cap-paper-trader.plist
launchctl load ~/Library/LaunchAgents/com.bert.micro-cap-paper-trader.plist

API Rate Limited

  • Wait 60 seconds
  • Check if multiple scripts running simultaneously
  • Consider adding delays between API calls

Market Data Stale

# Check yfinance
uv run python3 -c "import yfinance as yf; print(yf.Ticker('AAPL').info['regularMarketPrice'])"

Weekly Review

Every Friday after market close:

  1. Review week's P&L
  2. Analyze strategy performance
  3. Check for any needed parameter adjustments
  4. Update trading journal
  5. Plan next week's focus

Last Updated: January 2026