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.
How parameters fit together
Parameters live at three levels in unCoded:- Trading pair level — base asset, quote asset, which mode is assigned.
- Mode level — the strategy preset (BasicMode, FullBullMarket, etc.) that defines investment, buy, sell, and risk parameters.
- Operator-tunable level — every parameter on a mode can be edited per pair, allowing you to deviate from default mode behavior for specific symbols.
1. Trading pair and mode
Base asset
Base asset
PEPE, ETH, BTC.Order quantities are denominated in base asset units. When the bot reports “bought 0.0149 BTC,” that’s the base-asset quantity.Quote asset
Quote asset
USDC, USDT, FDUSD.Using USDC at sufficient volume can unlock Binance VIP1 status. FDUSD is required for the MarketMaker modes (1001/1002). Most operators use USDT as the standard quote.Mode
Mode
4 (BasicMode).Mode 4 is a reliable balanced starting point for most users. See Modes Overview for all 9 pre-built modes and when to choose each.2. Activation
`active`
`active`
true for the bot to start trading. This confirms you have accepted the Terms of Service.If set to false, the bot will not place any orders.You can set this via:- Telegram →
/start→ Configurations - Setup Wizard at first launch
- Dashboard’s Modes panel
false (must be explicitly activated).`canBuy` (mode-level)
`canBuy` (mode-level)
false to pause all buy activity without changing other settings.Useful for winding down a pair: set canBuy: false and the bot will not open new positions, but existing positions continue to be managed by the sell ladder.Default: true.`canSell` (mode-level)
`canSell` (mode-level)
false to pause all sell activity.Rare to use — you typically want sells active even if buys are paused, so existing positions can close. Use canSell: false only if you specifically want to take delivery of an asset rather than rotate it.Default: true.3. Basic info
`name`
`name`
BasicMode, FullBullMarket, LowMoney. For custom modes derived from a default: BasicMode-BTCUSDT-tighter-stops.Visible in the Dashboard’s mode selector and in trade-close notifications.`description`
`description`
7-split mean-reversion grid, trend-follower with armed trailing stop, experimental tighter stops for volatile altcoins.Visible in the Dashboard’s Modes panel when expanded.4. Investment settings
`investmentPerBuy`
`investmentPerBuy`
20.Worked example: with investmentPerBuy: 20 and buySplits: 7, each buy split places a $20 order. Full ladder filled = $140 deployed. With buyVolumes: [25,20,15,15,10,10,5], the splits are weighted (a $20 base × weight%) per split.Operator guidance: pre-built modes set this to match their recommended capital. Edit only with deliberate reason.`dontBuyBelowQuoteAssetBalance`
`dontBuyBelowQuoteAssetBalance`
dontBuyBelowQuoteAssetBalance: 100 means the bot will not place a buy if your USDT balance would drop below $100 after the buy.Operator guidance: useful for maintaining operational headroom (fees, exchange-side reserves) and as a soft floor against fully-deploying capital during sustained drawdowns.`investmentPercentMode`
`investmentPercentMode`
true), the bot uses investmentPercentOfFreeQuote rather than investmentPerBuy to size each order.Default: false (fixed-amount mode).Use case: if your capital varies (e.g., reinvesting profits), percentage mode auto-scales orders with your account size. Fixed mode is more predictable for steady-state operation.`investmentPercentOfFreeQuote`
`investmentPercentOfFreeQuote`
investmentPercentMode is enabled.Example: with investmentPercentOfFreeQuote: 5 and a $10,000 USDT balance, each buy is $500 (5% of free quote).Operator guidance: typical values 2–10% per split. Higher values deploy capital faster; lower values stretch capital across more cycles.`minInvestmentPerQuote`
`minInvestmentPerQuote`
dontBuyBelowQuoteAssetBalance — this is a per-order minimum, not a balance floor.Operator guidance: typically set above the exchange’s MIN_NOTIONAL (Binance: $10) so the bot pre-filters orders that would be rejected.5. Buy configurations
`canBuy`
`canBuy`
false to pause all buy activity without changing other settings.Existing sell ladders on open positions continue to honor.Default: true.Often used by SignalEditor strategies that gate buying based on conditions: the strategy flips canBuy to true when conditions hold, false when they don’t.`canBuyUp`
`canBuyUp`
FullBullMarket) typically have canBuyUp: true. Pure mean-reversion modes (BasicMode) typically don’t focus on up-moves.Use case: enable for trend-following strategies that want to ride momentum; disable for pure mean-reversion that buys only on dips.`canBuyDown`
`canBuyDown`
true for mean-reversion modes (BasicMode, LowMoney, MinimalMoney).Use case: foundation of grid-trading and DCA-style strategies. Buys progressively scale into positions as price falls.`onlyMakerBuy`
`onlyMakerBuy`
true for most pre-built modes.Trade-off: maker-only buys can sit unfilled if price moves before the order is matched. Taker buys (onlyMakerBuy: false) execute immediately but pay higher fees.Operator guidance: keep maker-only enabled unless you specifically need fast execution.`buyPercentage`
`buyPercentage`
0.1.Lower values increase buy frequency; higher values reduce it.Worked example: with buyPercentage: 0.1, the bot triggers a buy when price has moved by 0.1% from the reference. With buyPercentage: 0.5, the bot triggers only on 0.5% moves — fewer but larger triggers.`buySplits`
`buySplits`
7 for BasicMode (the canonical 7-split grid).Trade-off: more splits = more granular entry, but also smaller per-split sizing (must clear MIN_NOTIONAL). Fewer splits = larger per-split orders.Operator guidance:- High capital (
>$15,000):7splits work well (BasicMode default). - Medium capital (
$5,000–$15,000):5splits often more efficient. - Low capital (
<$5,000):3–4splits keep per-order sizing aboveMIN_NOTIONAL.
`buyVolumes`
`buyVolumes`
25,20,15,15,10,10,5.Values represent relative weight, not absolute amounts. The bot normalizes to total 100 and applies each weight to investmentPerBuy (or percentage-based equivalent).Worked example: with investmentPerBuy: 100 and buyVolumes: [25,20,15,15,10,10,5]:- Split 1:
$25 - Split 2:
$20 - Split 3:
$15 - Split 4:
$15 - Split 5:
$10 - Split 6:
$10 - Split 7:
$5
`buyVolumesType`
`buyVolumesType`
buyVolumes.Common values:static: usebuyVolumesliterally as weights.linear: distribute evenly.exponential: increasing/decreasing exponential distribution.
6. Sell configurations
`canSell`
`canSell`
false to pause all sell activity.Default: true.Rarely set to false — most operators want sells active even when buys are paused so existing positions can close.`onlyMakerSell`
`onlyMakerSell`
true for most pre-built modes.Trade-off: maker-only sells benefit from lower fees but may sit unfilled. Aggressive sells (onlyMakerSell: false) cross the spread and execute immediately at higher fees.Operator guidance: keep maker-only enabled. The pre-built modes’ sell-ladder design assumes maker fills.`sellPercentages`
`sellPercentages`
0.25,0.5,0.75,1,1.5.Each value corresponds to a split from buySplits — the bot places one sell rung per buy split.Default for BasicMode: [0.25, 0.35, 0.5, 0.75, 1, 2.5, 5] (7 rungs, narrow-to-wide).Worked example: with entry at $70,000 and sellPercentages: [0.25, 0.5, 1, 2, 3, 4, 5]:- Rung 1: sell at
$70,175(+0.25%) - Rung 2: sell at
$70,350(+0.5%) - Rung 3: sell at
$70,700(+1%) - Rung 4: sell at
$71,400(+2%) - Rung 5: sell at
$72,100(+3%) - Rung 6: sell at
$72,800(+4%) - Rung 7: sell at
$73,500(+5%)
`showSellLevels`
`showSellLevels`
true.Has no effect on trading behavior — purely a UI display flag.`trailingStopLossPercentages`
`trailingStopLossPercentages`
[0,0,0,0,0,0,0] (all zeros — no trailing stop, sell-ladder-only exits).Default for Tsl2Sell: non-zero values that arm trailing stops on profit.Operator guidance:- All zeros = no trailing stop (predictable mechanical exits).
- Non-zero values = trailing stop arms when position reaches that profit level. Trailing stop tracks new highs and exits on retracement.
`sellTimeCurves` (EXPERT MODE)
`sellTimeCurves` (EXPERT MODE)
sellPercentages before experimenting with time curves.Use case: prevents positions from being held indefinitely waiting for the full sell ladder. Useful for instruments where stale positions are a liability.Operator guidance: most operators don’t use this. The pre-built modes’ fixed sell ladders are sufficient.`sellTimeCurveCheckIntervalMs`
`sellTimeCurveCheckIntervalMs`
sellTimeCurves is configured.Typical values: 60000 (every minute) for slower instruments; lower for faster ones.Lower interval = more frequent evaluation = more CPU. Higher interval = less precise time-curve enforcement.`sellActivateDistancePercentage`
`sellActivateDistancePercentage`
0.1.Lower values activate sells sooner after a dip; higher values require a stronger recovery signal before orders are placed.Worked example: with sellActivateDistancePercentage: 0.5, the bot waits for price to recover 0.5% from the most recent low before placing sell-ladder rungs. This prevents fragile sell-ladders that get cancelled during continued dipping.`sellCancelDistancePercentage`
`sellCancelDistancePercentage`
1.Higher values give deeper dips more room before orders are cancelled.Note: this is a UI display threshold, not an order-cancellation threshold. Sell orders themselves remain on the exchange book until filled or operator-cancelled.7. Risk management
`stopLoss`
`stopLoss`
stopLossPercentage.Default: true for most pre-built modes.Operator guidance: keep enabled. Disabling stop-loss removes the worst-case bound on per-trade outcome — a position with deep drawdown has no automatic exit.`stopLossPercentage`
`stopLossPercentage`
stopLoss is enabled.Typical defaults: -15% to -25% from average entry, mode-specific.Operator guidance:- Tighter stop-loss (
-10%to-15%) = more frequent stop-outs (small losses) but smaller worst-case per-trade loss. - Looser stop-loss (
-25%to-30%) = fewer stop-outs but larger worst-case per-trade loss. - Defaults are calibrated for typical regime behavior. Tighten only with backtest evidence.
stopLossPercentage.Parameter interaction patterns
Capital-aware sizing — relating splits, volumes, and balance
Capital-aware sizing — relating splits, volumes, and balance
investmentPerBuy(or percentage-based equivalent): base size.buySplits: how many orders.buyVolumes: how the base size is weighted across splits.
$20,000 capital, investmentPerBuy: 20, buySplits: 7, buyVolumes: [25,20,15,15,10,10,5]:- Each “split” is
$20 × weight%. - Total for full ladder:
$140($20×7). - Per-cycle deployment:
~0.7%of capital — leaves room for many cycles before exhausting balance.
Sell ladder — relating splits and percentages
Sell ladder — relating splits and percentages
buySplits and sellPercentages must have matching lengths. Each buy split has a corresponding sell rung.With buySplits: 7 and sellPercentages: [0.25, 0.5, 1, 2, 3, 4, 5], each filled buy maps to one sell rung at the corresponding percentage above entry.If lengths don’t match, the SignalsBot rejects the configuration with a validation error.Trailing stop — relating to sell ladder
Trailing stop — relating to sell ladder
trailingStopLossPercentages is per-split, like sellPercentages.All-zeros trailing-stop values mean “no trailing stop, use sell ladder only” (BasicMode pattern).Non-zero values mean “trailing stop activates when this split’s profit threshold is reached, then tracks new highs and exits on retracement” (FullBullMarket / Tsl2Sell pattern).Activation chain — `active` + `canBuy` + `canSell`
Activation chain — `active` + `canBuy` + `canSell`
active: true(bot is ToS-accepted and operating)canBuy: true(mode is allowed to buy)canBuyUp: trueand/orcanBuyDown: true(direction-specific)- Mode’s buy conditions trigger (price move, indicators, etc.)
active: truecanSell: true- Sell ladder placed (after a buy fill)
- Price reaches a sell rung
false halts the corresponding action.Editing parameters in production
Backtest the change first
Engage kill switch (optional but recommended)
Edit via the Dashboard's Modes panel
Wait for in-flight positions to close (or close manually)
Disable kill switch and observe
Common parameter mistakes
❌ Mismatched `buySplits` and `sellPercentages` lengths
❌ Mismatched `buySplits` and `sellPercentages` lengths
buySplits: 7 then sellPercentages must have 7 values.Symptom: SignalsBot rejects the config with a validation error referencing array length mismatch.Fix: align the lengths. Both should match buyVolumes length too.❌ Per-split sizing below `MIN_NOTIONAL`
❌ Per-split sizing below `MIN_NOTIONAL`
$10).Symptom: bot logs MIN_NOTIONAL rejections; orders are skipped.Fix: increase investmentPerBuy, decrease buySplits, or switch to a low-capital-tuned mode (LowMoney, MinimalMoney).❌ Disabling `stopLoss`
❌ Disabling `stopLoss`
stopLoss: true. If you want a different threshold, edit stopLossPercentage, don’t disable.❌ Editing parameters mid-trade without understanding in-flight behavior
❌ Editing parameters mid-trade without understanding in-flight behavior
❌ Setting `buyPercentage` too low
❌ Setting `buyPercentage` too low
buyPercentage: 0.01 triggers buys on tiny moves — leads to over-trading, fees dominate.Fix: stay near defaults (0.1 for BasicMode-style modes). Adjust based on backtest evidence, not gut.❌ Switching `investmentPercentMode` without updating values
❌ Switching `investmentPercentMode` without updating values
investmentPercentOfFreeQuote to a sensible value can produce unexpected order sizes.Fix: set both investmentPercentMode AND investmentPercentOfFreeQuote together.❌ Configuring `sellTimeCurves` as a beginner
❌ Configuring `sellTimeCurves` as a beginner
sellPercentages first. Only experiment with time curves after multi-month operation.Worked configuration examples
BasicMode default — for `BTCUSDT` at `$20,000` capital
BasicMode default — for `BTCUSDT` at `$20,000` capital
-25% stop-loss as worst-case bound.LowMoney variant — for `$3,000` capital on smaller pair
LowMoney variant — for `$3,000` capital on smaller pair
MIN_NOTIONAL at lower capital. Tighter sell ladder to capture meaningful per-trade P&L at smaller scale.FullBullMarket variant — trend-follower with trailing stop
FullBullMarket variant — trend-follower with trailing stop
+1% to +8%) capture larger trend moves. Trailing stops arm progressively (tighter on early splits, wider on later splits) to protect profit while letting the position ride.MarketMaker variant — FDUSD-only on Binance
MarketMaker variant — FDUSD-only on Binance
+0.1% to +0.3%) — market-making profits from rebate plus minimal spread capture, not from directional moves. Maker-only on both sides is mandatory.