Skip to content

Auto-execute

6 min read · updated 2026-10-24

Auto-execute decides what a signal run (SleeveFolio’s daily scoring of your symbols) is allowed to do. Off (the default): signals are advisory, so rankings appear on the Signals page and nothing trades. On: after each run, SleeveFolio turns every allocated strategy’s rankings into paper market orders, sized within your sleeve budgets (a sleeve is a bucket of your account: stocks, crypto, or cash, each with its own budget) and screened by every cap. Each strategy trades only its own slice of the account (more on that below).

Where the switch lives

Settings → Strategies. Turning it on asks you to type ENABLE AUTO: automation places real orders on your paper account, so the switch gets the same typed confirmation as the other consequential flips. You also need your paper Alpaca keys saved (Settings → Broker) before the switch is available, and if you’ve enrolled two-factor authentication you’ll need a verified session. Turning it off is always one un-gated click. An On / Off badge sits right beside the switch, and the panel links out to Risk & Caps, where the budgets and caps that screen every order live.

The strategy questionnaire on the same page (Find your fit…, see Guided setup) can recommend auto-execute, but it never flips the switch: when it recommends it, yours is off, and your paper keys are saved, Apply recommendations opens this same ENABLE AUTO confirmation afterwards, and closing it leaves auto-execute off. Without paper keys nothing opens; the Find your fit card offers Enable auto-execute… instead, ready once you have saved them. The onboarding wizard’s questionnaires never open it at all.

What an enabled run does

Your signals refresh before the open (so you can review the morning’s ranking), but auto-execute waits and acts once a day, shortly after the US market opens, so a market order fills promptly against that ranking instead of resting overnight where its basis could go stale. Equity orders only go out while the market is open; crypto, which trades around the clock, runs on the same daily pass. When it runs, the engine: sells first: closing in full any held position whose signal turned sell (or that hit your stop-loss), biggest loss first — winding a position down is never held back by the caps, so a whole position exits in one order rather than draining across days, then buys buy-ranked symbols weighted by how strongly each scores: a higher score earns a larger share of the sleeve’s budget, highest score first, never above the per-position cap and never more than the cash on hand (a buy it can’t cover is skipped, not placed). Positions ranked hold (and anything outside your signal set) are left untouched. Names you already hold are topped up toward their target rather than re-bought, and only once a holding has drifted a few percent below its target, so a position sitting near target isn’t nibbled with a few dollars every day. Day-to-day churn stays low. Every order carries a duplicate-proof id, so a re-run can never double-trade the same day, and every order and skip is written to the audit log, and when any orders are placed you get a notification summarizing the run (titled “Broker rejected every automated order” when your broker turned all of them down). A run that places nothing because it had to skip what it wanted to trade (no fresh price, not enough cash, a share costing more than its budget) leaves a note in your in-app inbox naming the main reason; orders held back by your caps get their own risk-cap alert instead. If every skip came from missing market data the note says so, and the next run simply tries again. If a run is cut off partway (a server crash or timeout on our side), it is not re-run that day; instead you get a notification naming the orders that never reached your broker, plus any it sent that your broker hadn’t confirmed yet, and the audit log records it as a run that didn’t finish. The daily run acts once a day, and within a single strategy it treats a name as either a buy or a sell, never both, so one strategy on its own doesn’t day-trade equities. Run several strategies, or hold some of a name outside your strategies (shares you bought by hand, say), and one run can buy that name in one slice and sell it from another, which your broker may count as a day trade toward the pattern-day-trader limits (a US equities rule that mainly affects smaller accounts). On a smaller account, keep an eye on your day-trade count with your broker. Your crypto holdings get one extra, sell-only safety check each hour (below) — crypto isn’t subject to those equity limits, and it never buys, so it can’t day-trade you into them.

Each strategy trades its own sleeve

Run several strategies at once and each one gets its own slice of the account. By default SleeveFolio divides the funds between your strategies for you (auto-allocation, on by default and guided by the preference and cash reserve floor you pick on Risk & Caps → Strategy allocation), and each daily trading run re-checks the split, adjusting it when it has drifted more than 5 percentage points. To set the percentages by hand on Settings → Strategies instead, turn auto-allocation off first. The engine makes the same sells-first, buys-second pass once per strategy, each acting on its own ranking inside its own slice: your sleeve budgets and every cap apply within the slice, and the account-wide ceilings still hold overall, counting positions you opened by hand as well. Any percent left unallocated is a cash reserve the engine never trades.

Every order the engine places is tagged with the strategy that placed it, and each strategy sells only what it bought (plus the account-wide protections). Positions you opened by hand are never sold by a strategy’s signals: only the stop-loss you set yourself and the forced exits of automatic universe management (when a symbol you hold leaves a followed published list) touch them.

The allocations card also carries one account-wide Strategy-managed risk switch. While it is on (the default), each strategy’s built-in protection — its stop-loss and take-profit, described below — applies to its own slice, and the position caps for each slice tighten to match how conservative or aggressive that strategy is, always within, never above, your account-wide ceilings. Switched off, your Risk & Caps apply as-is to every strategy and the built-in protection is off for every slice.

The hourly crypto safety check

A crypto position trades around the clock, so an overnight or weekend crash can fall far past your stop-loss before the next once-a-day run. To close that gap, your crypto holdings also get a protective check every hour. It is strictly sell-only: it sells (in full) any crypto holding that has hit your configured stop-loss, and trims a winner that has reached your take-profit — it never buys, so it can only ever REDUCE a position, never open or grow one. Equities stay strictly once-a-day (they don’t trade overnight, and keeping them daily limits day trades to the cases above).

It runs on the same consent as the daily engine: it only acts if you have automatic trading on and haven’t paused with the kill-switch (a pause stops it too — you can always liquidate by hand). It checks both your paper and your live account, though selling real crypto in your live account additionally requires that you’ve turned on live auto-execute. Each protective sale is duplicate-proof: a retry within the hour resolves to the same order, and while a sell is still working at your broker it is not placed a second time (a sale that has already gone through never holds back a later stop-loss). It lands in your audit logand Orders like any other, and — if you leave the Crypto safety exit notification on — pings you when it sells. If your broker rejects a protective sell, you’re told once, then at most once a day while it keeps failing. If your broker doesn’t answer at all, the sell is not reported as rejected: it stays submitted until the next sync checks it against your broker, and if it never arrived, the next hourly check can sell again.

In practice, while the Risk caps switch on the Order limits card is on (the default), the per-day dollar cap is usually what limits how much trades in a day: when it’s reached, the highest-scored names fund and the rest wait for tomorrow. Raise the per-day (and per-trade) cap on Risk & Caps to let more buys through. Switching that switch off removes the per-order, per-day, and trade-count limits on buys entirely (see Turning the order limits off).

If an account is simply too small to place even one meaningful buy (when its per-position limit works out to less than the $2 minimum order) auto-execute buys nothing and tells you, rather than churning sub-dollar orders. (Any sells still run; winding down a position is never gated.) Adding funds lifts that limit above the minimum and buys resume.

Sell-to-fund. When a strong new buy can’t get in because a bucket is already full of holdings, auto-execute can rotate: selling just enough of the weakest name you hold in that bucket to make room for the blocked buy, but only when the new buy out-scores it by a clear margin (so it never sells one name to buy another and then reverses the next day). It sells only what the new buy is short of, never more than your per-trade cap, and takes the whole position only when what would be left is under the $2 minimum order. It rotates out of at most one name per bucket per day, and only names that strategy still ranks. The freed cash settles and the stronger buy goes in on a later run. It applies on whichever account auto-execute is trading (your paper account, or your real account once you’ve turned on live auto-execute), not paper only. It’s on by default; turn it off on Settings → Strategies (Sell-to-fund rotation). That switch is an account default that applies to each strategy’s slice, and a strategy you add later starts with the same setting.

Stop-loss. Optionally set a loss limit on Settings → Strategies: when a holding falls that far below what you paid for it (its cost basis), auto-execute sells the whole position on the next run, no matter how your strategy ranks it: a safety exit that fires even on a name the ranking still calls a hold. The level is a trigger, not a guaranteed floor: stocks are checked once a day and crypto once an hour, and the exit is a market order (an order that fills at the best price available) — so a price that falls past your level between checks, or opens the day already below it, sells at whatever the market offers then, which can be noticeably below the level you set. After a stop-out, that name is held out of new buys for about a month, so a fallen holding isn’t rebought the very next day (which would only churn losses, and can create a wash sale on a real account). It is off by default; switch it on and pick the percent. It applies account-wide — to every strategy’s slice and to positions you opened by hand — and where a strategy carries its own built-in stop-loss, the one you set yourself wins. Like every other exit it only ever reduces a position, so it needs no extra confirmation, and the kill switch stops it like everything else.

Take-profit (harvest). Some strategies, the conservative Steady Harvest, also trim a slice of a holding once it has gained enough, banking the gain as cash (income you can pull out) while the rest of the position stays invested. It never closes a whole position on a gain. The first trim fires when the gain crosses the threshold; after that it only trims again once the price climbs further above the last trim, so a winner sitting flat isn’t whittled to dust run after run. If the holding is later sold off entirely (by a stop-loss, a strategy exit, or the kill switch’s Liquidate) and bought again, the new position starts over: its first trim again waits for the gain on what you paid. It comes built into the strategy rather than being set on a screen (a settings file carries each strategy’s built-in stop-loss and take-profit, so restoring one brings them back and an import can change them, shown in its review first), and it applies to that strategy’s own slice while the account-wide Strategy-managed risk switch is on; switch it off and the built-in protection turns off for every slice.

What stops auto-execution

One thing never starts it, and never stops it either: importing a settings file. A file carries the auto-execute switch, but an import leaves yours exactly as it is, on or off. When the file’s differs, the review shows the switch, grayed out, and the import’s result then offers it as a working switch, so you can flip it yourself right after the import (turning it on there asks for the same ENABLE AUTO confirmation); if the file has it off while yours is on, the confirmation reminds you that the imported changes trade from the next run (or once you Resume, while trading is paused), so you can pause first or switch it off afterward. A sell an import causes (a tighter stop-loss, say) waits until auto-execute is on.

  • The kill switch’s Pause: the explicit stop, on hand from every screen. It always wins, even mid-run: the engine checks it again before each order it sends, so only an order already on its way to your broker finishes
  • Unresolved reconciliation drift (a difference between SleeveFolio’s records and your broker’s that you haven’t reviewed): the engine sits out until it’s cleared
  • A stale ranking: if your latest signal run didn’t finish and the ranking is more than a day old, the engine skips the run rather than trade yesterday’s picks at today’s prices. It resumes automatically once a fresh signal run completes
  • On live only: no recent broker check. If no check against your live account has finished in the last 90 minutes, or the latest one failed, the engine sits out rather than trade against records it can’t vouch for (see Live orders need a recent check). It resumes automatically once a check succeeds
  • Saved keys Alpaca no longer accepts (regenerated or revoked at Alpaca): every run first checks that Alpaca still accepts the keys for the account it trades, and sits out if it doesn’t; if Alpaca refuses them partway through a run, nothing more is sent. You get one alert, a reconnect banner shows on every screen, and automation resumes from the next run once you save working keys in Settings → Broker (see Keys that stopped working)
  • Outside regular US market hours: equity orders wait for the next open rather than rest pending against a signal that may move; crypto (24/7) is unaffected
  • The drawdown de-risk brake (the automatic stop that kicks in if your account falls too far from its peak): blocks new buys, never sells
  • Any individual order that fails a cap check (that order is skipped, not the switch)

Paper first, then live

Paper is where the full loop (signals to orders to fills to reconciliation) runs with zero risk. Start there and watch a few runs. Everything above describes that paper switch.

A second, separate switch (Live auto-execute, just below the first on Settings → Strategies) points the very same engine at your real Alpaca account instead of paper. It is off by default and the only way to turn it on. Because it opens real-money exposure, it is gated harder than anything else in the app. You must already have:

With all of that in place, enabling asks you to type ENABLE LIVE AUTO and enter a fresh authenticator code: the same deliberate confirmation as turning live trading on in the first place. Turning it back off is always one un-gated click, and the kill switch’s Pause stops it instantly like everything else.

These checks are not a one-time hurdle: before every live run the engine re-confirms them against your account. If your Pro plan lapses or two-factor falls off, the run is blocked: it never quietly falls back to a paper order, and it never places a live one you are no longer cleared for. And switching live trading back to paper, whether by hand, by disconnecting your live keys, by a cancelled subscription, or by disabling two-factor authentication, also switches live auto-execute off in the same step, so the engine simply returns to trading your paper account — going live again means the full enable confirmation above, afresh.