Documentation Index
Fetch the complete documentation index at: https://uncoded.ch/docs/llms.txt
Use this file to discover all available pages before exploring further.
Issues with the bot not trading
Bot stopped trading suddenly
Bot stopped trading suddenly
- Kill switch is ON. Most common. Check the Dashboard’s main panel. Flip OFF if you intended to be trading.
- Exchange-side outage. Check the venue’s status page. If down, the bot waits for connection.
- Rate limit being hit. Logs show
429or-1003. Bot auto-cools-down; persistent hits mean over-aggressive configuration. - Min-notional rejections. Per-split sizing below exchange floor (Binance: typically
$10). Increase capital or switch to fewer-split mode. - Insufficient balance. Capital was withdrawn or another bot consumed it. Top up or adjust mode’s investment-per-buy.
- API key revoked at venue. Logs show authentication errors. Generate new key, update Dashboard.
- IP allowlist mismatch. Logs show
-2015(Binance) or equivalent. Update venue’s allowlist to your VPS’s current IP.
Bot trading much more than usual
Bot trading much more than usual
- SignalEditor strategy with wrong trigger mode.
once_per_minuteinstead ofonce_per_bar_closefloods signals. - New volatility regime. Mode triggering more buy signals due to faster price movement.
- Newly-added pair without expected characteristics. New symbol may have very different behavior.
- Configuration drift. A
canBuy: trueflip happened that shouldn’t have.
Bot trading but never closing positions
Bot trading but never closing positions
- Sell ladder rungs too far above entry. If price hasn’t recovered to the first sell rung, position stays open.
- Mode’s
canSell: false— was set somewhere, prevents sell-side activity. - Stop-loss disabled and price has fallen substantially. Without a stop, no automatic exit.
- Position is held in a regime mismatch — buy ladder fully invested, price below all sell rungs.
canSell: true if accidentally disabled.Bot placing orders at unexpected prices
Bot placing orders at unexpected prices
- Mode parameters changed without your awareness. Verify in Modes panel.
- Multiple modes fighting over the same pair. Should be single-mode-per-pair.
- Symbol’s tick precision differs from expectation. Bot rounds to venue’s lot/tick rules.
- Stale configuration from incomplete update. Restart container.
Issues with the Dashboard
Can't log into the Dashboard
Can't log into the Dashboard
- Wrong password. Try the password from your password manager. If you’ve forgotten it, reset via the SSH-level configuration.
- Browser cookies/cache. Clear cookies for the dashboard domain, retry.
- TLS / certificate expired. Browser warns about HTTPS issue. Renew Let’s Encrypt cert (if Caddy, this should auto-renew).
- IP allowlist at reverse proxy. If you’ve allowlisted IPs, verify your current IP is on the list.
Dashboard shows stale data
Dashboard shows stale data
- Database connection issue. Dashboard reads from database; if connection broken, displays last cache.
- Dashboard container needs restart.
docker-compose restart dashboard. - Browser cached old state. Refresh the page, then hard-refresh (Ctrl+Shift+R).
Logs panel not streaming
Logs panel not streaming
- Browser blocking server-sent events. Try a different browser.
- Dashboard container’s host-Docker-socket access broken. Check container deployment configuration.
- TradingBot container not running. Logs panel needs an active container to stream from.
Tax Report export fails
Tax Report export fails
- Frankfurter API unreachable. Currency conversion depends on it. Retry later.
- Date range too large. Try smaller chunks (one month at a time).
- Database query timeout for very long histories. Run during quieter operational hours.
Issues with notifications
Telegram notifications stopped
Telegram notifications stopped
- TelegramBot container not running. Restart it.
- Telegram bot token expired/revoked. Generate new token via BotFather; update environment variable.
- Chat ID changed. Verify chat ID matches the configured value.
- Telegram API outage. Check Telegram’s status; usually resolves quickly.
- Database has no new closed trades. Bot is doing nothing to notify about. Verify TradingBot is running.
Telegram running total disagrees with Dashboard
Telegram running total disagrees with Dashboard
- Bot was offline during a trade. Telegram missed it; database has it.
- Database restored from backup. Running total reset.
- Manual close not reflected in one of the surfaces.
Issues with strategies
SignalEditor strategy never fires
SignalEditor strategy never fires
- Strategy not started. Hit “Start” in the SignalEditor.
- Trigger mode is
once— fires only once per strategy lifetime. Restart the strategy to reset. - Conditions too tight. Preview shows zero signals. Loosen thresholds.
- SignalEditor scheduler not running. Verify SignalEditor container is up.
- Webhook URL is misconfigured. SignalEditor fires but SignalsBot doesn’t receive.
SignalEditor strategy fires too often
SignalEditor strategy fires too often
- Trigger mode
once_per_minuteinstead ofonce_per_bar_close. Switch the trigger. - Conditions too loose. Tighten thresholds.
- No trend filter on a mean-reversion strategy. Add EMA-filter condition.
SignalEditor preview differs from live
SignalEditor preview differs from live
- Live data differs slightly from historical (real-time vs cached).
- Custom indicator computation has subtle look-ahead bias in preview that’s not present in live.
- Latency causes live to evaluate differently than preview.
Issues with backtesting
Backtest stuck or fails
Backtest stuck or fails
- Workers occupied. Backtester has concurrency cap; queued backtests wait.
- Symbol historical data not yet imported. First backtest of a symbol triggers data fetch from venue.
- Date range too large for the engine. Try smaller windows.
- Strategy JSON is malformed. Validate the JSON before submitting.
Backtest results look unrealistic
Backtest results look unrealistic
- Look-ahead bias in custom strategy. Indicator computed with future data leakage.
- Fee or slippage assumption too low. Update parameters.
- Survivorship bias on long-tail altcoins.
- Curve-fitting to a single window. Validate on multiple windows.
Issues with venue connectivity
See Connection Problems for the dedicated guide.Brief summary
Brief summary
- Connection drops: usually transient. Bot auto-reconnects. Reconciliation handles missed events.
- IP allowlist mismatch: most common cause of authentication failures. Verify VPS IP matches venue’s allowlist.
- API key revoked: regenerate at the venue, update Dashboard, restart bot.
- Exchange outage: check the venue’s status page. Wait through. Bot resumes when venue returns.
Issues with VPS / infrastructure
VPS running out of disk space
VPS running out of disk space
- Logs filling up disk. Configure log rotation (most operators inherit from default Docker config).
- Database growing without bound. Periodically purge old data if you’re storing more than your retention policy needs.
- Backups stored locally instead of off-site. Move backups to off-site storage.
VPS network slow / unstable
VPS network slow / unstable
- Provider network issue. Status page check.
- Geographic distance to exchange. If you’re a US operator on EU VPS trading Binance, latency is higher than necessary.
- VPS provider over-subscription — your “shared” VPS is contended.
Container restart loops
Container restart loops
- Configuration error. Check logs immediately on restart attempts.
- Database connection issue. Ensure database container started before depending containers.
- Out of memory. Larger backtests or many active strategies can exceed memory budget.
- Recent update incompatibility. Roll back if needed.