cd ~/bots/gabagool
tmux new-session -d -s gabagool_v4 \
"source .venv/bin/activate && python scripts/monitor_15m_v4.py 2>&1 | tee logs/monitor_v4.log"# Check if running
tmux list-sessions | grep gabagool
# View live output
tmux attach -t gabagool_v4
# (Ctrl+B then D to detach)
# Tail logs
tail -f ~/bots/gabagool/logs/monitor_v4.log
# Check P&L summary
cat ~/bots/gabagool/data/logs/paper_pnl_summary.json | jq
# View paper trades
tail ~/bots/gabagool/data/logs/paper_trades.jsonl
# View opportunities
tail ~/bots/gabagool/data/logs/opportunities_*.jsonl# Stop
tmux kill-session -t gabagool_v4
# Restart
cd ~/bots/gabagool && tmux new-session -d -s gabagool_v4 \
"source .venv/bin/activate && python scripts/monitor_15m_v4.py 2>&1 | tee logs/monitor_v4.log"| Parameter | Default | Description |
|---|---|---|
--equity |
2000 | Initial paper equity |
--min-size |
200 | Min trade size |
--max-size |
500 | Max trade size |
--max-positions |
4 | Max concurrent positions |
--daily-loss-limit |
0.20 | 20% daily loss halt |
--min-margin |
0.002 | 0.2% min margin to trade |
--retention-hours |
8 | Auto-delete snapshots after |
| File | Retention | Purpose |
|---|---|---|
paper_trades.jsonl |
Permanent | All paper trades |
paper_pnl_summary.json |
Permanent | Equity & P&L stats |
opportunities_*.jsonl |
Permanent | Detected opportunities |
market_snapshots_*.jsonl |
8 hours | Raw order books |
cd /home/botuser/bots/gabagool
source venv/bin/activate
screen -S gabagool
python -m src.main
# Ctrl+A, D to detach# View live logs
tail -f logs/gabagool.log
# Reattach to session
screen -r gabagool
# Quick status
sqlite3 gabagool.db "SELECT COUNT(*) as positions FROM positions WHERE resolved=0;"screen -r gabagool
# Ctrl+C to stop
# or
screen -X -S gabagool quit- Bot still running (
screen -ls) - Recent log entries
- No error spikes
- Review stats summary
- Check wallet balance
- Review any failed trades
- Backup database
- Review performance metrics
- Adjust parameters if needed
- Check screen session:
screen -ls - Check logs for errors:
tail -100 logs/gabagool.log - Restart bot
- Check market availability (15-min markets)
- Verify thresholds aren't too strict
- Check wallet balance
- Verify API connection
- Check API rate limits
- Review recent log errors
- Check network connectivity
- Pause and investigate
- Check position tracker for stuck positions
- Review holding time limits
- Consider manual intervention if needed
# Kill bot immediately
pkill -f "python -m src.main"
# Or graceful stop
screen -r gabagool
# Ctrl+C# Check database state
sqlite3 gabagool.db "SELECT * FROM positions WHERE resolved=0;"
# Restart bot (will load unresolved positions)
screen -S gabagool
python -m src.mainIf bot can't close positions:
- Log into Polymarket web UI
- Find the market
- Sell positions manually
- Update database if needed
If wallet compromised:
- Stop bot immediately
- Transfer remaining funds to safe wallet
- Generate new wallet
- Update .env
- Do NOT restart until secure
- Current win rate > 70%
- No critical errors in past week
- Understand current position sizing
- Have plan for increased exposure
- Update
max_total_exposurein config - Update
max_position_per_market - Consider increasing
max_concurrent_arbitrages - Restart bot
- Monitor closely for 24 hours
# Manual backup
cp gabagool.db gabagool_backup_$(date +%Y%m%d).db
# Automated (add to cron)
0 0 * * * cp /path/to/gabagool.db /path/to/backups/gabagool_$(date +\%Y\%m\%d).db# Backup config (excluding secrets)
cp config/default.yaml config/default.yaml.backup
cp config/production.yaml config/production.yaml.backup| Metric | Target | Action if Below |
|---|---|---|
| Win Rate | >70% | Review thresholds |
| Avg Profit/Trade | >$0.05 | Increase margins |
| Daily Trades | >5 | Loosen thresholds |
| Error Rate | <5% | Investigate errors |
| Fill Rate | >90% | Check liquidity |
For issues beyond this runbook:
- Check samples/ for reference implementations
- Review Polymarket documentation
- Check API status pages