Skip to main content
Built-in trading bots are ready-to-run strategies for common execution and position-management tasks. They can be backtested on historical data and run in live trading from the same settings.
A backtest is an approximation, not a promise of live results. Live fills can differ because of latency, slippage, gaps, exchange fees, minimum order sizes, margin rules, and rejected orders. Test a bot on the intended symbol and timeframe before enabling live trading, and begin with a small allocation.

Start a bot

  1. Open the Indicators and Strategies menu from the f button on the chart.
  2. Select a bot from the built-in library and add it to the chart.
  3. Configure the bot inputs. Also review strategy capital, leverage, and commission settings before backtesting.
  4. Run the bot in the Strategy Tester over different market conditions, not only the period that motivated the setup.
  5. Check the status label, price levels, order markers, open position, and report. They should tell the same story.
Market orders do not fill at the instant the bot submits them. The result becomes visible on a later price update, both in the emulator and in live trading. See Strategy mechanics for execution timing and the differences between backtesting and live trading.

Choose a bot

Read the chart

Every bot places a status label in the top-right corner of the chart. Use it as the primary summary of whether the bot is warming up, waiting, active, exiting, rebalancing, halted, or complete. Depending on the bot and its current state, the label also shows the position, progress, and next relevant action or level. The platform draws its own Buy and Sell markers for submitted orders. The additional bot lines explain what the bot is waiting for:
  • green — a buy level or profit target;
  • red — a sell level or stop-loss level;
  • yellow — average entry or average fill;
  • gray — a level that is no longer active;
  • a missing TP or SL line means that exit is not armed at that moment.
Background tint indicates a persistent state such as an active deal, waiting, recentring, or exiting. Read the label for the exact state; the meaning of a tint varies by bot.

Grid Bot

Grid Bot divides a price range into levels. It holds inventory for the sell side of the grid, places buys below the current price and sells above it, and reverses each level after a fill. A completed buy-then-sell cycle captures approximately one grid step before fees and slippage.

Configure the range

  • Set both Lower price and Upper price to positive values for a manual range. The lower value must be below the upper value.
  • If either bound is 0, the bot derives both bounds from Auto range length. It waits until that many bars are available, then freezes the range when it starts.
  • Grid levels includes both outer bounds. Ten levels create nine tradable intervals. The supported maximum is 100 levels.
  • Arithmetic mode keeps the price difference between levels constant. Geometric mode keeps the percentage difference approximately constant.
Use a manual range when you have a specific support/resistance thesis. Use an automatic range when recent history is a reasonable definition of the expected sideways market. A range learned from a volatile or trending window can be much wider than intended.

Size and run the grid

  • With % of cash, Budget is the total cash allocation used to size the grid, not the percentage for each level.
  • With quantity per level, the value is the quantity assigned to every interval. Check the resulting maximum inventory and margin requirement before using this mode.
  • The first market order acquires the inventory needed by sell levels above the starting price. Resting grid orders are armed after that inventory is ready.
If Close and halt on first range exit is off, an out-of-range bot keeps its position and waits for price to return; it has no levels beyond the fixed bounds. If the option is on, the bot waits for price to enter a manual range before starting, then cancels the grid, closes the position, and halts on the first later exit. A rejected close is not retried while the position is unchanged; if a late fill changes the exposure, the bot submits one new close for the actual position. A canceled close remains a guard against a possible late fill, so the bot stays halted and reports the unresolved position instead of retrying. Inspect and manage that position manually. On the chart, the green and red outer lines are the lower and upper bounds. Internal green segments are current buy orders; internal red segments are current sell orders. They turn gray after the bot halts.

Current limitations

  • Grid Bot is long-only. It does not offer short or market-neutral grid modes.
  • The grid range does not trail price after startup.
  • A narrow grid can trade frequently enough for fees and slippage to exceed the gross profit per step.
  • A strong move outside the range can leave the bot holding inventory while it waits, unless range-exit closing is enabled.

DCA Bot

DCA Bot manages one averaging deal at a time. It submits a base market order, places a ladder of safety orders against the position, and recalculates the exit levels from the actual average entry as safety orders fill. After an exit, it can start a new deal when the entry condition is met again.

Direction and entry

  • Long buys the base order and places safety buys below it.
  • Short sells the base order and places safety sells above it.
  • With RSI trigger set to 0, a deal starts immediately when trading is available. A long deal with a non-zero trigger waits for RSI below the level; a short deal waits for RSI above it.
  • RSI length controls the lookback used by that entry filter.

Safety-order ladder

Price deviation is the first step away from the base price. Safety order step scale multiplies each following step, and the steps are cumulative. For example, a 1.5% deviation with a 1.2 scale places the first three safety levels at approximately 1.5%, 3.3%, and 5.46% from the base price. Safety order volume scale multiplies the size of each following safety order. Values above 1 increase exposure progressively; values below 1 reduce it. When sizes are expressed as % of cash, the bot validates the base order plus the complete scaled safety ladder. A configuration above 100% is rejected before the deal starts. Quantity mode is not capped this way, so its margin requirement must be checked manually.

Exits and chart levels

Take profit and Stop loss are measured from the current average entry, not from the original base order. The take profit is a resting limit order. The stop loss is monitored by the bot and exits with a market order after the stop level is observed, so a gap can produce a worse fill. Set Stop loss to 0 to disable it. The yellow line is average entry, green is take profit, and red is stop loss. Green safety segments belong to a long deal; red safety segments belong to a short deal. Filled safety levels, and remaining levels canceled while a deal is closing, turn gray. Next safety in the status label is the next still-active order, which can be farther away than a gray historical safety line.

Current limitations

  • There is no trailing take profit.
  • Growing step and volume scales can make later safety orders much farther away and much larger than the first ones.
  • A stop is evaluated when the bot receives a price update; it does not guarantee execution at the drawn stop price.
  • Exchange minimum size/value rules can make very small requested orders larger than the nominal setting.

Infinity Grid Bot

Infinity Grid Bot maintains a moving window of intervals around the current price. When price leaves the window, the bot cancels the old grid, builds a new one around the new price, and adjusts inventory for the new sell side. It is useful when fixed lifetime bounds are undesirable, but it still carries grid inventory and trading costs.
  • Grid step is the percentage spacing calculated when a window is built.
  • Intervals below/above anchor control the size of each side of the window; each side supports up to 49 intervals.
  • With % of equity, the bot recalculates per-level size when the window moves. Quantity per level keeps the requested unit size instead.
Green segments are resting buys and red segments are resting sells. The outer green and red lines show the current window. A blue background and the status label indicate that the bot is moving and rebalancing the window. Infinity Grid is long-only. Moving the window in a strong trend can cause frequent cancellations, market rebalancing, fees, and slippage; “infinity” means the range can move, not that risk or capital is unlimited.

Buy The Dip Bot

Buy The Dip Bot waits until price falls Dip below reference high percent from the highest price in Reference high length, then opens one long position. It closes that position at a take-profit or an optional stop-loss measured from the actual entry. The bot waits for a complete reference window before it can enter. Entry, take profit, and stop loss are evaluated on closed candles and submitted as market orders, so an intrabar touch alone does not trigger them and the fill may differ from the drawn level. The aqua line is the current dip trigger, green is take profit, red is stop loss, and yellow is not used. The bot does not average down and cannot hold more than one deal at a time. It is long-only and has no trailing exit. Order size is either a percentage of available cash or a quantity, selected with Order size unit. Percentage sizing is calculated when the entry signal fires; quantity sizing should be checked against the instrument’s margin and minimum-order requirements.

Scheduled DCA Bot

Scheduled DCA Bot buys on a calendar cadence and never sells automatically. The first buy is submitted as soon as the bot can trade; daily and weekly intervals are then measured from that first accepted buy. A weekly setup therefore waits a full seven days for its second buy. Monthly cadence follows UTC calendar months, so the next buy happens on the first available bar in a later month rather than after a fixed number of days.
  • Amount per buy is either a quantity or a percentage of the cash recorded when the first buy is accepted. Percentage buys do not shrink merely because earlier buys consumed cash.
  • Max buys set to 0 means unlimited; any positive value stops new purchases after that many accepted orders.
  • The bot skips a purchase when there is not enough remaining cash and retries when it next has an eligible opportunity.
The yellow line is the average entry. The status label shows the cadence, number of submitted buys, position, and average price. The bot is buy-only, has no profit target or stop loss, and does not rebalance or sell accumulated inventory.

TWAP Bot

TWAP Bot divides one total buy or sell instruction into equal market-order slices. It submits the first slice when it starts and then waits Bars between slices before each following slice.
  • Total size can be a quantity or a percentage of cash.
  • Number of slices divides that total. The slice size is fixed when the first slice is accepted, so later price or cash changes do not resize the plan.
  • Buy adds to or opens a long position. Sell reduces a long position or can create/increase a short net position.
The yellow line shows the average fill of the current net position. The status label shows submitted slices, the next bar index, position, and average. A blue background remains while slices are still being submitted. This is a bar-based execution schedule, not exchange-native TWAP. The actual clock duration changes with the chart timeframe and missing sessions. All slices are market orders; the bot does not react to spread, volume, order-book depth, or price impact, and it does not unwind the resulting position when the schedule finishes.

Limits shared by all bots

  • A strategy trades only the primary chart instrument.
  • Positions are net positions. Grid Bot and Infinity Grid Bot currently support only long grids; hedge-mode long and short books are not available.
  • Instrument minimum order size and minimum order value can override a requested size. Always inspect the actual orders in the report.
  • Insufficient cash or margin, exchange rules, disabled live trading, or transport failures can reject an order. The bot handles the terminal status, but it cannot make an invalid account configuration executable.
  • Commission, spread, slippage, funding, and gaps can materially change the result. Configure realistic backtest costs and compare more than one symbol, timeframe, and market regime.
  • Avoid running multiple strategies that are intended to control the same net position independently.
For the underlying order types and statuses, see Orders. For capital, leverage, commission, and other backtest settings, see Strategy parameters.