Resets paper balance to $10,000 and permanently clears open positions and trade history. Paper trading only — disabled in live mode, since there's no real balance/history to reset back to.
Open Positions
No open positions
Recent Trades
No trades yet
Log
Configuration
Configuration
Restart bot to apply
Per-Pair Overrides
Override any grid/advanced_grid or support_resistance setting for a specific pair — leave a field blank to fall back to the setting above. Fields not recognized by the pair's actual live strategy are silently ignored (logged as a warning), so it's safe to set both grid and SR fields even though only one set applies at a time.
Account
Account
Signed in as —. Your balance, positions, and trade history are yours alone — other accounts on this dashboard share the same bot, strategy, and market data but never see your portfolio.
Change Password
Add Another Account
Creates a new login with its own independent balance and trade history on this same dashboard.
Strategies
Available Strategies
Every strategy selectable from Configuration's Strategy dropdown, with how each one decides to buy and sell. Pick based on the market condition you expect — trend-following strategies sit out flat/ranging markets, and range/mean-reversion strategies get run over by a real trend.
SMA Crossover
Buy: the short-period SMA crosses above the long-period SMA (golden cross). Sell: the short SMA crosses back below the long SMA (death cross). Pure trend-following crossover — no RSI/volatility/stop logic of its own, so it whipsaws in a choppy/sideways market.
RSI
Buy: RSI drops below the oversold threshold (default 30). Sell: RSI rises above the overbought threshold (default 70). The simplest, rawest signal — no trend filter, so it can buy repeatedly into a sustained downtrend.
Advanced RSI (Slope Sell)
Buy: same as plain RSI — drops below oversold. Sell: RSI has declined for several consecutive candles in a row, or (optionally, on by default) RSI exceeds overbought as a hard safety exit. Exits earlier/more responsively than waiting for overbought, at the cost of being noisier.
SMA Buy / RSI Sell
Buy: golden cross (short SMA above long SMA). Sell: RSI rises above overbought. Splits entry/exit across two different indicators — exits can happen on RSI alone even without a matching death-cross.
Advanced SMA Buy / RSI Sell
Buy: golden cross. Sell: RSI slope-decline confirmation, or optional overbought ceiling — same sell mechanics as Advanced RSI, layered onto the SMA entry. More configurable exit sensitivity, more parameters to tune together.
Market Maker
Buy: price dips to/below a computed "bid" (VWAP fair value minus an ATR-sized half-spread). Sell: price rises to/above the mirrored "ask". A mean-reversion/scalping style, not trend-following — an optional RSI trend filter (on by default) pauses new buys only during a strong trend, to avoid stacking inventory against momentum.
MACD
Buy: MACD line crosses above its signal line. Sell: MACD line crosses below its signal line. Standard 12/26/9 crossover — like SMA Crossover, no independent stop-loss, and lag is inherent to MACD.
Bollinger Band Trend
Buy: only in an established uptrend (SMA50 above SMA200); waits for a volatility "squeeze" (unusually narrow bands) then buys a breakout above the upper band. Sell: a volatility stop (price crosses back through the opposite band), a trend-flip, or a hard ATR-based stop. Trades breakouts only with the dominant trend — most useful when a genuine squeeze forms in a trending market.
Mean Reversion
Buy: price is several standard deviations below its rolling mean AND RSI confirms oversold — both required together. Sell: takes profit as the z-score reverts toward the mean or RSI reaches overbought; cuts losses defensively if price falls even further past a stop threshold. Designed for range-bound/choppy conditions — the stop safeguard exists because a real trend can blow through a naive mean-reversion entry.
Momentum
Buy: rate-of-change is strongly positive AND price is above a longer-term trend SMA — momentum must align with the macro trend. Sell: the move fades back below the exit threshold, or price closes back below the trend SMA. Explicitly trend-following/breakout-riding — sits out flat/ranging markets waiting for real momentum.
Grid Trading
Buy: price drops a cell in a trailing-range grid (recent min/max divided into even levels). Sell: price rises a cell, taking profit on the oscillation; by default, closing outside the grid's range entirely forces an exit. Explicitly a ranging-market strategy — optional trailing-up/down settings let it follow a confirmed trend instead of flattening, but that's opt-in.
Advanced Grid (auto-switch to Momentum)
While ADX reads as ranging, trades exactly like Grid Trading (buy dips/sell rallies within the range); once ADX confirms a real trend, new entries hand off to the Momentum logic instead. The regime only updates while a pair is flat — an already-open position keeps being managed by whichever regime opened it, even if ADX flips mid-trade.
ADX Trend (DI crossover + extreme point) currently live
Wilder's four-step ADX/DMI procedure. Observe: while ADX is under its minimum (default 20) nothing trades at all — not even a sell. Buy: +DI must cross above -DI (bullish dominance) and price must then close above the high of that crossover bar — the crossover alone never trades, and by default ADX must also be rising. Sell: the mirror image — -DI crosses above +DI and price closes below the crossover bar's low; a bearish crossover whose low is never broken keeps holding, and a fresh bullish crossover cancels it entirely. Add: while long with ADX still rising it stacks extra part-sized lots (default half size, up to 3 lots, spaced a few bars apart) — a falling ADX stops adding but never forces an exit on its own. Bar size matters more than any other setting here: ADX/DMI is a daily-bar tool by origin, so on 15-minute candles it over-trades badly — the Strategy Timeframe setting resamples to 1/4/6-hour bars (4-hour exists only by resampling; Coinbase has no such granularity). Trend-following by construction: it sits out ranging markets entirely. Unlike Support/Resistance, its exit is not gated on profit — a breakdown sells wherever price is, at a loss if that's where the trend broke. The account-level Stop-Loss still matters as the backstop for the one case this can't exit: ADX falling under the minimum, where the strategy stops trading in both directions. Not yet backtested. Full guide →
Support/Resistance
Buy: finds the nearest support-below/resistance-above zone pair (from clustered swing highs/lows); buys only if price sits in the bottom slice of that band, near support, with a gap wide enough to clear round-trip fees. Sell: sells as price approaches the top of that same band, near resistance — the pair is frozen at entry and reused all cycle. Zone-based only, by design — no RSI/ADX/ROC/trend-following logic — and it never voluntarily sells at a loss; loss-cutting relies entirely on the bot's account-level Stop-Loss. Full guide →
Swing Pivot
Buy: fires the instant a new ZigZag swing low is confirmed — not proximity to a still-forming low, which can repaint every tick. Each freshly confirmed low is a fresh buy signal, stacking additional lots (up to Max Lots) rather than requiring flat first. Sell: if a confirmed resistance zone exists above price, sells once price is within Proximity % of it and the fee floor is cleared; if no resistance zone is known (an unconfirmed breakout), instead trails the peak and sells on a Pullback % retracement from it, still gated by the same fee floor. Built directly on Support/Resistance's swing-pivot detection. Not yet backtested.
Reversal Confirmation
Buy: on a downtrend candle (close below the trend SMA) with a volume surge, a bullish reversal candle shape (hammer, bullish engulfing, or morning star) confirmed together with either RSI oversold/bullish divergence, or a bullish MACD crossover landing near a Fibonacci retracement level. Sell: the mirror-image conditions on an uptrend candle (shooting star, bearish engulfing, or evening star). Multi-indicator confluence rather than a single trigger — ATR-based stop/target levels are reported for reference only, not enforced by the strategy itself (the account-level Stop-Loss still applies). Not yet backtested.
Configuration Guide
How Configuration Fits Together
A quick orientation to the Configuration tab's layout — for what each individual field does, read the hint text under its own label; this page is about how the pieces relate.
Bot-Wide Settings
Trading Pairs, Candle Granularity, and Strategy at the top apply to every pair the bot trades — there's one running strategy instance shared across all configured pairs, not a separate one per pair.
Strategy-Specific Parameters
Picking a Strategy reveals only the parameter block that strategy actually uses (e.g. selecting Support/Resistance shows its zone/trailing-exit/re-entry settings; Grid Trading shows its own separate set) — the other strategies' fields stay hidden but keep whatever values they last had, so switching strategies and back doesn't lose your tuning.
Per-Pair Overrides
Everything in Configuration is a bot-wide default. The Per-Pair Overrides card (below Configuration) lets any single pair deviate from that default for any field its actual strategy recognizes — leave a field blank there to fall back to the Configuration value above it. This is how, for example, two pairs on the same Support/Resistance strategy can run different Trailing Exit percentages.
Restart Required
Configuration and Per-Pair Overrides both save immediately to the underlying config, but the running bot only reads it at startup — nothing takes effect until the bot is restarted (Controls → Restart Bot). The badge next to the Configuration title is there as a reminder.
Backtesting Before Trusting
Many hint texts note whether a setting has been validated on real historical data (train/test split) versus just implemented and left off by default. Treat an unvalidated flag as experimental — use the Trading Tools page's Configuration Optimizer to check a change against real history before relying on it live.
About
RandyBot
A Coinbase Advanced Trade dashboard for running and tuning automated trading strategies — grid, momentum, mean-reversion, support/resistance, and more — in either paper (simulated) or live mode, with per-pair configuration overrides, backtesting, and a built-in parameter optimizer.
Not financial advice. This tool executes the rules you configure; it does not predict markets or manage risk on your behalf. Trading cryptocurrency carries real risk of loss. Always test changes in paper mode before ever enabling live trading, and never risk money you cannot afford to lose.
System Settings
Trading Behavior
When enabled, manual BUY orders are allowed even when a position already exists for that pair. The entry price will be recalculated as a weighted average.
Ask Bot (LLM)
Powers the dashboard's Ask Bot page — a real Claude API call, grounded in a fresh snapshot of the bot's actual current numbers, that explains trigger conditions in plain language. Billed per question to your own Anthropic account.
Danger Zone
Clear Trade History
Permanently removes all trade records. Portfolio balance and open positions are not affected.
Charts
Chart
Scroll to zoom, drag to pan — on any pane, all three move together. Double-click resets. Hover for the crosshair readout.
Overlays are recomputed from candle history using your current settings — not a readout of the running bot's own memory. Strategy here is preview-only: switching it re-renders the overlay for a different strategy's rules on the same candles, without changing what the account actually trades. On adx_trend that means every DI crossover in the window is marked, including ones the live bot never saw because it started later; and with a Strategy Timeframe set, the candles shown are the resampled bars the strategy actually reasons about, not the bot's base candles.
Volume
RSI
ADX
Trading Tools
Market Conditions
Current regime per pair — ADX/RSI/volatility and a plain-language read on whether ranging (grid) or trending (momentum) conditions fit better right now. Not a backtest, just live indicator readings.
Trade Favorability
Per pair, a plain-language read on whether NOW favors a fresh entry, plus a suggested entry price — built from the same support/resistance zone detection the live support_resistance strategy uses (price position within its support/resistance band, RSI, ADX/trend direction, and how well-confirmed the nearest support zone is), regardless of which strategy the bot is actually configured to run. Advisory only: a structured summary of the reasons shown, not backtested against real outcomes and not the bot's own trading logic (which may buy/hold/sell for entirely different reasons — accumulation state, frozen cycle zones, re-entry gates). A pair already unfavorable to newly enter can still be a perfectly fine position to keep holding.
Expectations
Per pair, the live strategy's own sell/buy trigger prices and which of their conditions are currently met, plus the profit that would be realized (net of the sell-side fee) if the position closed right at the sell target. Reflects the actual running strategy's accumulated state, not a fresh recomputation — populates once the bot has ticked each pair at least once since its last restart. For support_resistance, every OTHER independent buy/sell path this pair's config has enabled appears as its own line underneath the primary trigger — new_zone_buy/reversal_candle_reentry/confirmed_swing_low_buy/breakout_above_resistance while flat, resistance_rejection/confirmed_high_sell/lower_resistance_breach/profit_trail/retracement_sell while holding — each with a real met/not-met verdict (this is the live instance, so profit_trail/retracement_sell read this pair's actual armed/peak state, not just their configured thresholds). When require_rejection_after_touches is on and the primary resistance is well-tested, the primary trigger also shows the confirmed-rejection-candle requirement it now needs.
ATR Re-entry Analysis
Pick a pair and calculate: the fixed-percentage re-entry gap (Min Re-entry Gap %) vs. what an ATR-scaled gap would require at a spread of candidate multipliers, computed from that pair's real last SELL trade and real recent volatility (ATR) — fetched fresh each time, independent of the bot's own live tick state. The row marked "active" is whichever mode is actually gating that pair's next fresh buy right now. Backtested on real ZEC-USD data (90-day and 180-day train/test) as NOT a validated improvement over the fixed percentage — shown for comparison, not as a recommendation.
"Assume sell now" only applies while this pair has an open position -- it uses the CURRENT price as the reference instead of the real last SELL, which is otherwise from the previous, already-closed cycle and doesn't describe what re-entry would take after THIS position eventually closes.
Chart Swing-Low Ratio Sweep
current_swing_low/previous_swing_low are chart-display-only — no trading logic reads them, so every candidate value below backtests identically and a PnL-based optimizer couldn't tell them apart. This instead sweeps Current Swing Low Ratio (holding Current Swing Low Min % at the pair's live setting) and reports how many low pivots each resulting threshold confirms in the fetched window, plus the resulting current_swing_low/previous_swing_low values — a visual/qualitative read: too many pivots means chasing noise near the current price, too few means missing real structure. Fixed a real bug this way: at pivot_min_move_pct=1% (ZEC-USD/HYPE-USD's live override), the old hardcoded half (0.5%) fell inside ordinary candle noise until a 1.0% floor was added.
Configuration Optimizer
Splits real history into a train half and a held-out test half, sweeps each tunable one at a time (starting from the pair's current settings), combines the best value per tunable into one candidate, then validates it on both halves — so a recommendation isn't just curve-fit to one window. Can take 1-3 minutes depending on history length. grid and advanced_grid results are per-pair (written to pair_overrides.json); adx_trend has no per-pair mechanism, so its result is a set of bot-wide settings that would change every pair — the sweep still measures the chosen pair's own history, so expect different pairs to suggest different values.
Analytics
Active Strategy
Shows the strategy currently running (shared across every configured pair), for reference only — browsing this dropdown does not change what the bot runs and does not touch Configuration. To actually switch strategy, use Configuration's own Strategy field. The Re-entry/Accumulation/Sell tables below use their own generic support_resistance gate logic and read the same regardless of which strategy is selected here; the ADX Trend Conditions table always evaluates adx_trend's own logic regardless of this dropdown too.
Re-entry Conditions
Per pair, whether a fresh entry is gated right now and by how much — built from that pair's EFFECTIVE live parameters (bot-wide Configuration with any pair_overrides.json entry layered on top, exactly what actually gates the next buy), a live market-conditions read, and the same re-entry gate math the running strategy itself calls. "Entry Signal" is different from the gate: it shows whether an actual fresh-entry SIGNAL currently exists (the primary near-support/ATR-override entry, plus confirmed_swing_low_buy_enabled's own ADX/DI-confirmed-low path when it's on) — the Re-entry Gate column only says whether such a signal would be ALLOWED to fire, not whether one is present. "Last Exit" is the real last SELL on record, except while a pair is currently holding a position — there it's a hypothetical "if sold right now" reference (the real last SELL is from the previous, already-closed cycle). A pair with no recorded SELL yet has nothing to gate against and is always allowed. Fresh, stateless computation each refresh — not the live bot's own accumulated cycle memory, so it works the same regardless of which strategy the bot actually runs.
Accumulation Buy Conditions
Per pair currently holding a position, whether the next accumulation buy (adding to that position) is gated right now — built from the real number of open lots and the most recently opened lot's actual fill price (not the live bot's own in-memory state, so this can differ from it very slightly), that pair's EFFECTIVE accumulation parameters, and a live market-conditions read. Ladder mode shows a fixed required drop % and trigger price; zone mode has no single fixed trigger (it reacts to a freshly-detected lower support zone) and is reported as active but reactive. The Confirmed Low Path column (if enabled) is an independent trigger that can fire regardless of ladder/zone mode — shown here as whether its ADX/+DI/-DI condition is currently met, not whether a fresh confirmed low that hasn't already fired actually exists (that part needs the live bot's own state). Fresh, stateless computation each refresh.
Sell Conditions
Per pair currently holding a position, whether the sell target is gated right now — built from the real blended entry price and first-lot entry price (exact, from real open lots), that pair's EFFECTIVE sell parameters, and a live market-conditions read. "Sell Target" is the nearest freshly-detected resistance zone above price — a reference target, not necessarily the exact frozen cycle resistance the live bot actually paired at entry (check Trading Tools → Expectations for that); when require_rejection_after_touches is on and this zone is well-tested, the target also needs a confirmed rejection candle, shown as a note under it. "Edge Gate" (hold_for_better_resistance's blended-entry floor, or the plain first-entry check) IS exact, since it only needs real open-lot prices. When Trailing Exit is on, it REPLACES the plain band/edge trigger once holding — shown here as just its configured arm/pullback %, since its real armed/watching/trailing progress is live, multi-tick state this stateless view can't reconstruct (check Expectations for that pair's real state). "Other Sell Signals" covers every other independent sell path this strategy supports (resistance_rejection, confirmed_high_sell, lower_resistance_breach, retracement_sell in chart-pivot mode) with a live met/not-met verdict when enabled; profit_trail and cycle-mode retracement_sell track a real per-tick peak this stateless view can't reconstruct either, so those show just their configured thresholds, same treatment as Trailing Exit. Fresh, stateless computation each refresh.
ADX Trend Conditions
Per pair, adx_trend's own bias/latch state (DI crossover + extreme point), reconstructed statelessly from a fresh throwaway strategy instance and real candle history — not the live bot's own accumulated state, same reasoning as the three tables above, just for a fundamentally different (non-zone-based) strategy. "Bias / Latch" shows the currently-latched DI crossover (bull/bear, armed or already fired) and how many lots are held. "Sell Target"/"Buy Target" reuse the exact same condition-checklist shape as Trading Tools → Expectations' plan_snapshot — the bear-armed breakdown conditions while holding, the bull-armed golden-cross entry filters while flat, or the ADD/accumulate conditions while already holding a bull position. Always evaluated regardless of the bot's actually-configured strategy.
Performance Report
Performance Report
Per pair (and a TOTAL row), for the selected date range: capital deployed into buys, fees paid (recomputed from each trade's notional against the current fee rate — not stored per-trade), realized profit/loss, return on capital used, and win rate. Realized only — an open position's unrealized P&L isn't included here. "Return %" divides each row's profit/loss by that same row's own capital used, so it measures how efficiently that row's capital was cycled — per-pair percentages do not sum to the TOTAL row's.
Ask Bot
Ask Bot
Ask about the currently running strategy's real trigger conditions for a pair — what would make it add another lot, why a sell hasn't fired yet, what price would break it. Every answer is grounded in a fresh snapshot of the bot's actual current numbers (adapted to whichever strategy is active — ADX Trend's add/breakdown conditions, or grid/support_resistance's reentry/accumulation conditions if you switch to one of those), then explained by Claude. Model and API key are set on the System Settings page. Each question is a real Anthropic API call billed to your own account — token usage is shown under each reply.
Quick Questions
No questions yet — ask something like "why hasn't ZEC sold yet?" or "what would trigger DASH to add another lot?"