Skip to content
Skip to content

Automation and DCA Strategies

Put your trading on a schedule. The Strategy and Automation tabs give you the tools to define what trades your bot makes, when it makes them, and how much approval you give it to act on its own.

What is this?

The Strategy tab at /studio/bots/[botId]/strategy is where you build trading rules: DCA schedules, limit orders, trailing stops, take-profit targets, and stop-loss floors. The Automation tab at /studio/bots/[botId]/automation is where you decide how much human oversight those strategies require — from fully manual approval queues to fully automatic execution within your guardrails.

Prerequisites

  • A bot with at least one wallet assigned (custodial or delegate)
  • Guardrails configured in the Risk tab (recommended before enabling any automation)
  • Understanding of the assets you plan to trade — Balchemy executes what you configure

Strategy types

The strategy system supports five named strategy types. You can have up to 5 active strategies per bot.

TypeWhat it doesIcon color
DCABuy or sell at a fixed amount on a recurring scheduleBlue
LimitExecute when price crosses a specific targetBlue
Trailing StopSell when price drops X% below its recent peakAmber
Take ProfitSell a portion of a position when profit % is reachedGreen
Stop LossSell when loss reaches a thresholdAmber

Default Order Profile

Before creating named strategies, configure the Default Order Profile at the top of the Strategy tab. This panel is collapsible and sets the baseline execution parameters for all trades this bot makes, whether from strategies, the automation queue, or natural language commands.

Default Order Profile fields

FieldDefaultNotes
Default Amount10The trade size when no amount is specified
UnitSOLSOL, USDC, or USD denomination
Slippage1% (100 bps)Maximum acceptable price impact — 1% = 100 basis points
Network Fee(blank)Priority fee in lamports. Leave blank to use the network's current base fee.
Max Loss %(blank)Halt trading if cumulative loss exceeds this percentage
Stop Loss %(blank)Per-trade stop loss applied to all strategies
Trailing Stop %(blank)Per-trade trailing stop applied to all strategies
Auto ApproveOffWhen on, orders bypass the Pending Approvals queue

Slippage guidance

Slippage is the difference between the price you see and the price you get. On Solana, DeFi liquidity can move quickly — especially for low-cap tokens.

  • 0.5% or less: Very tight. Will fail frequently on volatile or illiquid tokens.
  • 1% (100 bps): Default. Works well for top-50 tokens during normal conditions.
  • 2–3% (200–300 bps): Better for smaller-cap tokens or during volatile markets.
  • 5%+ (500+ bps): High risk of unfavorable fills. The UI shows a warning at this level.

Warning: Setting slippage above 5% substantially increases the risk of sandwich attacks and price impact losses. Only use high slippage if you have verified that normal slippage consistently fails for your target asset.


DCA strategies in depth

Dollar Cost Averaging (DCA) is the most commonly used strategy type. It buys a fixed amount of an asset at regular intervals, averaging your entry price over time.

DCA parameters

ParameterOptionsNotes
Amount per orderAny positive numberThe amount in the Default Order Profile's unit (SOL, USDC, or USD)
Interval1h / 4h / 12h / 1d / 3d / 7dHow often the order executes
Price range (min)OptionalOnly execute if the asset price is above this floor
Price range (max)OptionalOnly execute if the asset price is below this ceiling

Price range conditions are useful for value-oriented DCA — for example, only buy when the token is below a certain price, rather than buying blindly on schedule.

Tip: The 1h interval causes the bot to attempt a trade every hour. This generates significant transaction fees over time. For most use cases, 1d or 7d intervals are more economical. The UI shows a guardrail hint when 1h is selected.

Step-by-step: create your first DCA strategy

  1. Go to Studio → Bots → [your bot] → Strategy.
  2. Expand the Default Order Profile and set your default amount, unit, and slippage. Click Save Profile.
  3. Click Add Strategy.
  4. Enter a name (e.g., "SOL Daily DCA").
  5. Select DCA as the type.
  6. Click Create.
  7. The strategy card appears in the list. Click the card to expand it.
  8. Set Amount per order to your desired buy size.
  9. Set Interval to 1d for daily execution.
  10. Optionally set a price range to limit execution to favorable prices.
  11. The strategy is active immediately. The bot will execute the first order at the next scheduled interval.

Pausing, resuming, and canceling DCA

To stop a DCA strategy from executing:

  • Pause the bot using the Pause button in the cockpit header. All strategies pause.
  • Delete the strategy by expanding the strategy card and clicking Delete Strategy. This is permanent.

There is currently no per-strategy pause without pausing the whole bot. Create separate bots if you need to independently pause individual strategies.


Limit orders

Limit orders execute when the asset price crosses a target you set.

Limit parameters

ParameterOptionsNotes
Target priceAny positive numberPrice in USD at which the order fires
Expiration1h / 4h / 12h / 1d / 7d / 30d / GTCHow long the order waits for the target price

GTC (Good-til-cancelled) orders stay open indefinitely. Review GTC orders periodically — market conditions change and stale limit orders may execute at prices that no longer match your intent.


Trailing stop

A trailing stop sells your position when the price falls a configured percentage below its recent peak. Unlike a fixed stop loss, the trigger price moves upward with the asset as it gains — it only locks in when the asset drops from that high.

Trailing stop parameters

ParameterRangeNotes
Trail percentage0.5% – 25%The drop from peak that triggers execution
Activation priceOptionalPrice at which the trailing stop begins tracking

Setting trail below 2% is risky in volatile markets — normal price fluctuations can trigger the stop prematurely. The UI shows a guardrail hint below 2%.


Take profit

A take-profit strategy sells a portion of your position when a profit target is reached.

Take profit parameters

ParameterOptionsNotes
Target percentage1% – 100%The profit level that triggers the sale
Execution modePartial (50%) / Full (100%)How much of the position to sell

Use Partial mode to lock in some profit while keeping exposure to further upside. Use Full mode to exit the entire position when the target is hit.


Stop loss

A stop loss exits a position when the loss from entry reaches a threshold.

Stop loss parameters

ParameterRangeNotes
Stop percentage1% – 50%The loss from entry that triggers execution
Enable trailing stop lossOn / OffConverts to a trailing stop that moves with price gains

A stop loss above 25% exposes significant downside risk. The UI shows a guardrail hint at that level.


Automation tab

The Automation tab controls how much discretion the bot has to execute trades without your real-time approval.

Execution modes

ModeBehaviorBest for
ManualBot suggests every trade; you review and approve each one in the Pending Approvals queueNew bots, high-value positions, learning the bot's behavior
Semi-AutoTrades within pre-approved position and loss limits execute automatically; trades exceeding limits require approvalEstablished bots with well-calibrated guardrails
Auto-SubmitBot executes all trades within configured guardrails — no confirmation requiredExperienced users with strong risk configuration

Changing to Auto-Submit requires confirming a dialog that explains the implications. You can change the mode at any time — the change takes effect on the next trade decision.

Warning: Auto-Submit gives the bot full authority to execute within your guardrails. A misconfigured guardrail or an extreme market event can lead to unexpected trades. Review the Risk tab thoroughly before enabling Auto-Submit, and start with small position sizes.

Approval policy breakdown

What each mode requires approval for:

Manual mode — everything requires approval:

  • Standard trades
  • New token trades
  • Large single orders
  • Cross-chain swaps

Semi-Auto mode:

  • Auto-approved: trades within position size limit, trades within daily loss limit
  • Requires approval: trades exceeding limits, new token trades, large single orders

Auto-Submit mode — nothing requires approval:

  • All trade types execute automatically
  • Trades that violate risk limits are still blocked by the guardrail layer (not by requiring approval)

Pending Approvals queue

In Manual and Semi-Auto modes, trades waiting for your decision appear in the Pending Approvals queue below the execution mode selector.

Each pending trade card shows:

  • Side badge (BUY in green, SELL in red)
  • Token pair
  • Amount and price
  • Bot's confidence score
  • Approve button: sends the order to the trading engine
  • Decline button: removes the order from the queue

Note: Declining a trade does not send a cancel message to the server. The order simply expires server-side after its TTL elapses. Balchemy uses an approve-or-timeout pattern — there is no explicit reject endpoint.

The pending badge count next to the "Pending Approvals" heading shows how many orders are waiting. Check this regularly in Manual mode — orders that are not approved within their TTL expire automatically.

Auto-Submit confirmation flow

When you select Auto-Submit for the first time, a confirmation dialog appears:

"The bot will execute trades automatically within configured guardrails. You can change this setting at any time. Continue?"

Confirm to enable. The warning banner below the mode selector remains visible while Auto-Submit is active as a reminder.


Risk guardrails (Risk tab)

The Risk tab at /studio/bots/[botId]/risk sets the portfolio-level guardrails that constrain all automated trading, regardless of execution mode.

Risk settings

GuardrailRangeDefaultWarning threshold
Max Drawdown5% – 50%15%30%
Max Position Size5% – 100%25%50%
Risk per Trade0.5% – 10%2%5%
Daily Loss Limit1% – 25%5%15%

Values at or above the warning threshold are displayed in amber to indicate elevated risk. The values are enforced by the trading engine — they are not just UI suggestions. A trade that would breach the Max Drawdown limit is blocked even in Auto-Submit mode.

Configuring guardrails

  1. Go to Studio → Bots → [your bot] → Risk.
  2. Adjust each slider to your desired threshold.
  3. The warning indicator appears above the threshold values.
  4. Save the settings.

Set conservative defaults first. Start with the system defaults (15% max drawdown, 25% max position size, 2% risk per trade, 5% daily loss limit) and tighten or loosen based on your actual trading experience.


Best practices

  1. Configure the Default Order Profile first. Every strategy uses these defaults as a baseline. A poorly configured default (very high slippage, no stop loss) affects all strategies simultaneously.
  2. Start in Manual mode. Spend a week or two reviewing the bot's trade suggestions before switching to Semi-Auto or Auto-Submit. Manual mode is your best diagnostic tool for understanding how the bot interprets market signals.
  3. Use small amounts initially. Create a DCA strategy with a small amount (e.g., 1 USDC per interval) to verify the end-to-end flow works correctly before scaling up.
  4. Set meaningful risk limits. The default guardrails are reasonable starting points, but your real limits depend on your portfolio size and risk tolerance. A 15% max drawdown on a $100 portfolio is very different from a $100,000 portfolio.
  5. Monitor the History tab. After enabling automation, check the History tab daily for the first week. Look for unexpected trades, failed orders, or guardrail breaches.
  6. Review GTC limit orders periodically. Good-til-cancelled orders accumulate silently. Check the Overview tab's Open Orders section regularly to ensure you are not holding stale orders at prices that no longer reflect your intent.

Common issues

My DCA strategy is not executing. Check that the bot's execution mode is not Manual with the Pending Approvals queue backlogged — DCA orders go through the queue in Manual mode. Also confirm the bot is in Running state (not Paused) and that the wallet has sufficient balance for the trade amount plus fees.

The bot executed a trade I did not expect. In Auto-Submit mode, the bot acts within guardrails without asking. Review the History tab to see the exact trade and the strategy that triggered it. If the trade was outside your guardrails, check that the Risk tab settings were saved correctly.

I clicked Decline on a trade but it still executed. Declining removes the order from your local queue, but if the order reached the server before you declined, it may have already been approved by a parallel event (for example, if you previously enabled Auto-Submit for a brief period). Check the History tab for the exact execution time.

The strategy parameters I changed are not saving. Strategy parameter edits in the expanded card view update the local state but do not auto-save. Look for a Save button inside the expanded parameter editor. If there is no Save button, the strategy uses the Default Order Profile — edit that instead.

My stop loss did not trigger. Stop loss execution depends on the trading engine receiving price data and the order being submitted before the stop price is hit. In volatile conditions, slippage may cause the actual execution price to be below your configured stop. Reduce slippage tolerance or use smaller position sizes in highly volatile assets.


Connection lost. Retrying...