Most systems fail on sizing, not on signals. A rule that is right more often than it is wrong will still ruin an account if each expansion is large enough that three bad ones in a row leave nothing to work with. BearBreaker treats sizing as a hard constraint rather than an afterthought.
Every order passes through the same checks before it reaches the broker. The divergence between value and cost basis determines the raw target. A size multiplier scales that target to your account and your appetite. Available capital is then checked, and if the target exceeds what is genuinely free, the order is reduced or skipped entirely. There is no borrowing against an intention and no order that assumes cash will appear later.
The first contact with a new construct is deliberately smaller. When the Trading layer holds zero units, only a controlled fraction of the gap is closed. This matters because the first signal is the one you know least about. Committing fully on first contact is how people end up fully invested at the top of a range with no capital left for the part of the move that actually mattered.
Capital ceilings work per construct and across the account. A single name cannot quietly grow into the majority of your exposure just because it kept producing expansion signals. If a construct hits its ceiling, further expansions are declined and written to the log with the reason, which is far more useful than an order silently failing at the broker.
All of these numbers live in configuration files you control. Conservative defaults ship with the package, but the point of owning the source is that you can tune multipliers, ceilings and thresholds to match your account size. Change one value at a time, run it in paper mode, and read the log before you decide whether the new setting is actually an improvement.