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.
| Type | What it does | Icon color |
|---|---|---|
| DCA | Buy or sell at a fixed amount on a recurring schedule | Blue |
| Limit | Execute when price crosses a specific target | Blue |
| Trailing Stop | Sell when price drops X% below its recent peak | Amber |
| Take Profit | Sell a portion of a position when profit % is reached | Green |
| Stop Loss | Sell when loss reaches a threshold | Amber |
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
| Field | Default | Notes |
|---|---|---|
| Default Amount | 10 | The trade size when no amount is specified |
| Unit | SOL | SOL, USDC, or USD denomination |
| Slippage | 1% (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 Approve | Off | When 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
| Parameter | Options | Notes |
|---|---|---|
| Amount per order | Any positive number | The amount in the Default Order Profile's unit (SOL, USDC, or USD) |
| Interval | 1h / 4h / 12h / 1d / 3d / 7d | How often the order executes |
| Price range (min) | Optional | Only execute if the asset price is above this floor |
| Price range (max) | Optional | Only 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
- Go to Studio → Bots → [your bot] → Strategy.
- Expand the Default Order Profile and set your default amount, unit, and slippage. Click Save Profile.
- Click Add Strategy.
- Enter a name (e.g., "SOL Daily DCA").
- Select DCA as the type.
- Click Create.
- The strategy card appears in the list. Click the card to expand it.
- Set Amount per order to your desired buy size.
- Set Interval to
1dfor daily execution. - Optionally set a price range to limit execution to favorable prices.
- 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
| Parameter | Options | Notes |
|---|---|---|
| Target price | Any positive number | Price in USD at which the order fires |
| Expiration | 1h / 4h / 12h / 1d / 7d / 30d / GTC | How 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
| Parameter | Range | Notes |
|---|---|---|
| Trail percentage | 0.5% – 25% | The drop from peak that triggers execution |
| Activation price | Optional | Price 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
| Parameter | Options | Notes |
|---|---|---|
| Target percentage | 1% – 100% | The profit level that triggers the sale |
| Execution mode | Partial (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
| Parameter | Range | Notes |
|---|---|---|
| Stop percentage | 1% – 50% | The loss from entry that triggers execution |
| Enable trailing stop loss | On / Off | Converts 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
| Mode | Behavior | Best for |
|---|---|---|
| Manual | Bot suggests every trade; you review and approve each one in the Pending Approvals queue | New bots, high-value positions, learning the bot's behavior |
| Semi-Auto | Trades within pre-approved position and loss limits execute automatically; trades exceeding limits require approval | Established bots with well-calibrated guardrails |
| Auto-Submit | Bot executes all trades within configured guardrails — no confirmation required | Experienced 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
| Guardrail | Range | Default | Warning threshold |
|---|---|---|---|
| Max Drawdown | 5% – 50% | 15% | 30% |
| Max Position Size | 5% – 100% | 25% | 50% |
| Risk per Trade | 0.5% – 10% | 2% | 5% |
| Daily Loss Limit | 1% – 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
- Go to Studio → Bots → [your bot] → Risk.
- Adjust each slider to your desired threshold.
- The warning indicator appears above the threshold values.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.