Exit Monitor
Polls bonding curve state every 3 seconds. Executes sells when MC multiplier targets are hit. Supports multiple tranches per wallet and a global trailing stop.
Tranches
Each tranche fires once when current MC reaches initialMc * multiplier. Initial MC is captured on first poll after the position is added.
| Field | Type | Description |
|---|---|---|
| multiplier | number | MC multiplier from entry (e.g. 2 = 2x, 5 = 5x) |
| sellPercent | number (1-100) | % of holdings to sell at this level |
Example: [{multiplier: 2, sellPercent: 25}, {multiplier: 5, sellPercent: 50}, {multiplier: 10, sellPercent: 100}]
Trailing stop
Tracks the highest MC seen. Fires once when current MC drops by the configured percentage from peak. Position auto-removed 5 seconds after trigger.
| Setting | Type | Description |
|---|---|---|
| enabled | boolean | Toggle trailing stop |
| dropPercent | number | % drop from peak to trigger (e.g. 30 = sell if MC drops 30% from ATH) |
| sellPercent | number (1-100) | % of holdings to sell when triggered |
Exit buyback
After a tranche sell, if MC drops below a threshold, auto-buys back. 1% fee applies.
| Setting | Default | Description |
|---|---|---|
| enabled | false | Toggle exit buyback |
| mcThreshold | 30000 | Buy back if MC drops below this (USD) |
| buyAmountSol | 0.1 | SOL per buyback trade |
| cooldownSec | 60 | Min seconds between buybacks |
Mechanics
- Polling interval: 3 seconds
- SOL price from CoinGecko (30-second cache TTL, fallback: $150)
- MC formula:
(virtualSol / virtualToken) * 1B * solPrice - Each bundle wallet can have its own independent exit strategy
- Positions persisted in localStorage:
ql_open_positions - Auto-starts when positions exist, stops when tab becomes idle