← Back to blog

Understanding your average cost basis

April 19, 2026 · Aurono Labs
educationportfolioacb

You bought Bitcoin three times. What did you pay?

This sounds like a simple question. But most people can’t answer it.

  • January: you bought 0.01 BTC at €40,000
  • March: you bought 0.01 BTC at €35,000
  • May: you bought 0.01 BTC at €30,000

You now hold 0.03 BTC. But what’s your “price”? Not €40,000. Not €30,000. It’s the weighted average of all your purchases:

(0.01 x €40,000 + 0.01 x €35,000 + 0.01 x €30,000) / 0.03 = €35,000

That’s your average cost basis — or ACB. It’s the blended price you actually paid per unit, across all your buys.

Why ACB matters

ACB answers the most important question in trading: am I up or down on this position?

If the current price is €38,000 and your ACB is €35,000, you’re up €3,000 per BTC. That’s your unrealized profit.

If the current price is €32,000 and your ACB is €35,000, you’re down €3,000 per BTC. That’s your unrealized loss.

Simple. But here’s where it gets interesting.

ACB moves with every buy

Every new purchase changes your ACB. And the direction depends on whether you’re buying above or below your current average.

Buying below ACB lowers it. If your ACB is €35,000 and you buy more at €30,000, your new ACB drops. You’ve improved your average entry price. This is the power of buying dips — each purchase at a lower price drags your cost basis down.

Buying above ACB raises it. If your ACB is €35,000 and you buy more at €40,000, your ACB goes up. You’ve made your average entry more expensive.

This is why Aurono’s buy trigger matters: it ensures you only buy when the price has dropped significantly. Every triggered buy is likely below your ACB, which means every buy improves your position.

What happens when you sell

Selling is where ACB becomes critical. When you sell, the profit or loss is calculated against your ACB — not against the price of any specific buy.

Example: You hold 0.03 BTC with an ACB of €35,000. The price is now €42,000. You sell 0.01 BTC.

  • Proceeds: 0.01 x €42,000 = €420
  • Cost basis: 0.01 x €35,000 = €350
  • Realized profit: €70

After the sell, you still hold 0.02 BTC, and your ACB is still €35,000. The ACB doesn’t change when you sell — only when you buy.

The guard that protects you

Here’s the feature that matters most: Aurono will never sell below your ACB.

If the current price is €33,000 and your ACB is €35,000, a sell signal might fire (if the price rose enough from the previous candle). But Aurono checks: is the current price above your cost basis? No? Then the sell is blocked.

The event log shows exactly what happened: “SELL signal triggered, blocked: price below cost basis.”

This isn’t a setting you configure. It’s always active. You can’t accidentally turn it off. And it works the same at 3 AM as it does at 3 PM.

Why this matters in a crash

During a market crash, prices drop fast. Your position might be deeply in the red. Without the ACB guard, an automated system could sell your position at the worst possible time — locking in a loss that would have recovered if you’d held.

With Aurono, that can’t happen. The sell side goes quiet during a crash. Buy signals may fire (if you have capital), steadily lowering your ACB. But sells are blocked until the market recovers past your cost basis.

When the recovery comes, your ACB is lower than it was before the crash — because you kept buying on the way down. Your first sell after recovery locks in profit against that lower cost basis. The crash made your position stronger.

How Aurono computes ACB

Aurono tracks your ACB automatically through its ledger system. Every buy fill creates a ledger entry with the purchase price and quantity. The ACB is recomputed after each buy:

New ACB = (existing units x old ACB + new units x buy price) / total units

This calculation is part of Aurono’s open-source core. You can inspect the exact code that computes your cost basis — there’s no black box, no rounding tricks, no hidden adjustments.

When you sell, the realized P&L is computed as:

Realized P&L = (sell price - ACB) x sold units - fees

Each sell trade on your dashboard shows this breakdown. You can verify it against your own calculations if you want.

Reading ACB in Aurono

You can see your ACB in several places:

  • Strategy detail card: The “Avg cost basis” metric shows your current ACB for the strategy’s asset.
  • Performance section: “Unrealized P&L” is computed from your current position size, the current market price, and your ACB.
  • Daily report: Each strategy’s unrealized P&L is derived from the ACB.

If your ACB is high (you bought mostly at high prices), your unrealized P&L might be negative during downturns. That’s normal — it means your cost basis hasn’t caught up with the market yet. Keep the strategy running, and buys during dips will bring the ACB down over time.

The bigger picture

Most exchange apps show you a simple “current price” and maybe a percentage change from 24 hours ago. They don’t track your personal ACB across dozens of buys over months. They don’t tell you whether a sell would be profitable for you — only whether the market moved.

Aurono tracks your actual cost basis, per strategy, updated with every buy. It uses that number to protect you from bad sells. And it shows you exactly how your position is performing against the price you actually paid — not some market average or arbitrary reference point.

Your ACB is your personal truth. It cuts through the noise of market movements and tells you one thing: given what you paid, are you ahead or behind?

Aurono makes sure you never forget the answer. And it makes sure you never sell when the answer is “behind.”


Your average cost basis is tracked automatically in every Aurono strategy. Check the strategy detail card to see yours.

For the full math and the protection rules, see the Average cost base docs.