Skip to content
Open RaamTrade

RC2_SIZING_UNKNOWN

Unknown sizing model <name>. Use FixedQuantity, FixedCapital, or Compounding.

What it means

sizing = ... accepts three models and nothing else:

Model How quantity is computed
FixedQuantity(n) Always n contracts/shares.
FixedCapital(percent) A percentage of the capital the run started with.
Compounding(percent) A percentage of current equity, so wins compound.

The set is closed because sizing is how a signal becomes a position size in real money. A model the engine doesn’t implement can’t be approximated by one that it does, so the name is checked at compile time rather than resolved at run time.

Why it happens

A model borrowed from another platform, or one that sounds like it must exist:

class RiskSizing(Strategy):
trade = Symbol()
sizing = FixedRisk(2.0)
def execute(self):
if self.trade.is_flat:
self.buy(self.trade)

PercentOfEquity, KellyFraction, FixedDollar land here for the same reason.

How to fix it

Choose the model whose shape matches your intent, and express the rest through the percentage or through per-signal overrides.

class Sized(Strategy):
trade = Symbol()
sizing = Compounding(percent=80)
def execute(self):
if self.trade.is_flat:
self.buy(self.trade)
if self.trade.is_long:
self.sell(self.trade, self.trade.position, reason="exit")

Risk-per-trade sizing has no model of its own yet; the usual expression of it is FixedQuantity with a qty= override you compute yourself in execute().

A quoted model name is not a declaration

sizing = "FixedCapital" is a string, so it is read as persistent state rather than a sizing model — and the strategy then fails with RC2_NO_SIZING instead. Sizing models are calls: FixedCapital().