You take a partial profit on the ugliest leg of a DCA position, the one that's been dragging your average down for two weeks, and for about four hours you feel like you did something smart. Then the bot buys again, lower, and it feels like it just forgot the money you took off the table. It didn't forget. It never knew the profit existed. It read one price and one status flag, and those two things decide everything that happens next.
That's the gap between what a partial sell feels like and how partial sells and the DCA buy gate actually interact. "I want something that just runs" is a fair way to describe what most people want from automation, right up until the automation does something that looks like it ignored a decision you just made. It didn't ignore anything. It just wasn't built to care about your feelings, only your numbers, which is the entire point of a partial sell crypto trading bot feature that ships the same on Starter as it does on Enterprise, unlike a lot of tools where "every feature is behind another upgrade tier" and the mechanics you actually need to understand are the ones nobody explains.
I build TradeArmor and I trade on it every day, self-hosted on hardware that's mine, three years of live BTC/USDC signals behind it, 15 real-time indicators, a plain-English AI strategy builder, and DCA, grid, futures, copy trading, backtesting, paper trading, and tax exports on a single engine. See the full feature set before the rest of this post, which zooms into one specific corner of the DCA engine: what a partial sell actually changes, and what it deliberately leaves alone.
What a Partial Sell Does to a Leg
A DCA position on TradeArmor isn't one blended number. It's a stack of legs, each one a separate buy at a separate price, each one carrying its own status. A leg starts out HELD. A full exit closes it. A partial sell moves it to PARTIALLY_SOLD, a smaller size at the same original price, still open, still counted.
That last part is the one people miss. Selling part of a leg doesn't erase it. It shrinks it. The leg keeps its own cost basis the way a tax lot keeps its own basis when you sell part of a holding instead of all of it, a structural idea the IRS lays out in Publication 551 for ordinary assets and one TradeArmor applies to every open leg in a position. The remaining size on that leg still has a buy price, and that buy price still matters to everything downstream of it.
Partial Sells and the DCA Buy Gate: The Question Everyone Actually Asks
Here's the one that generates support tickets: does taking a partial profit loosen the EQ-price buy gate?
Past a configurable DCA level, the default sits at 10, the gate blocks the next buy until price drops below the lowest unsold leg's price times 0.999. That gate has exactly one input: the price of the cheapest leg still counted as unsold. It has no field for "but I took some profit already." A partial sell doesn't touch that input unless the leg it hits happens to be the cheapest one, and even then it only matters if the sell closes the leg completely rather than trimming it.
Selling half a leg does not impress the buy gate. The gate has never been impressed by anything. It reads one number and compares it to another, the same trick it pulled the day you opened the position, and a profit you took three legs ago is not one of the two numbers in that comparison.
A Worked Example
Say a position has three legs: $61,200, $58,400, and $54,900. The lowest unsold leg is $54,900, so gated buys need a fill below roughly $54,845.
Two different partial-sell decisions on that $54,900 leg produce two different outcomes:
- Trim it. Sell 40% of the leg's size and leave the rest open. Status moves to PARTIALLY_SOLD. The remaining size still sits at $54,900. The gate's reference price doesn't move. Nothing about the next buy changes.
- Close it. Sell the whole leg. It drops out of the unsold set entirely. The lowest unsold leg is now $58,400, so the gate's bar moves up to roughly $58,342. The bot can now buy again at a price higher than the leg you just exited, which looks backwards until you remember the gate is only measuring what's still open, not what you used to hold.
Neither outcome is a bug. They're the same rule producing two different results because the unsold set itself changed size in the second case and didn't in the first. That's the whole mechanic behind partial sells and the DCA buy gate, once you see it in numbers instead of a support ticket.
Why This Interacts With Keep Balance and Position Sizing
A partial sell frees up capital, and that capital doesn't sit in a vacuum. Keep Balance still reserves its configured percentage of total portfolio value before anything else touches it, and position sizing still governs how big the next DCA leg is allowed to be regardless of where that capital came from. A partial sell changes what the buy gate sees on one specific position. It doesn't change the account-level rules that decide whether a new buy is allowed to happen at all.
This is also where take-profit strategy and partial-sell mechanics split into two different questions. That post covers when and how much to sell for profit, fixed targets, trailing exits, laddered scale-outs. This one covers what happens to the position's own buy-gate math after you've already made that call. One is the decision. This is the plumbing behind it.
Seeing It Live
The Per-Position Rules Inspector shows exactly which leg the Next DCA Buy condition is anchored to, with the live price it needs to clear, right on the expanded position row. You don't have to reconstruct which leg is cheapest from a trade history. The dashboard already did the math and is showing you the one number the gate actually cares about.
Somewhere a competitor's changelog calls this kind of thing "intelligent position rebalancing." It's a status flag and a boolean. TradeArmor just tells you which one, instead of dressing it up as something it isn't.
Pricing
Partial-sell configuration and unsold-leg tracking aren't a Pro-tier add-on stapled onto the DCA engine. They ship with the DCA engine itself, on every plan. Starter at $19.99/mo runs the full mechanic on one live instance. Pro at $49.99/mo adds Hybrid and Custom mode strategy gates plus 5 live instances if you want indicator-filtered entries feeding the same DCA legs. Enterprise at $89.99/mo extends that across 10 live instances and multi-machine deployments. Nowhere in that ladder does the leg tracking behind a partial sell get held back.
This is one piece of what TradeArmor runs: a self-hosted engine carrying cava-signals, 15 indicators, an AI strategy builder, DCA, grid, futures, copy trading, backtesting, paper trading, and tax exports, all on hardware you control. See how the DCA engine fits into the rest of the platform, or compare the three tiers and go check which leg your own buy gate is actually anchored to.
Past performance is not indicative of future results. Signals are algorithmic outputs, not personalized investment advice.