investfly.models.strategy.TradeOrderBuilder
MAX_UNDERLYING_UNIVERSE_SIZE =
20
@dataclass
class
TradeOrderBuilder:
Base class for the polymorphic OpenPositionConfig.tradeOrderBuilder field.
Subtypes correspond one-to-one with their Java counterparts:
- IdentityOrderBuilder : signal security == traded security (default)
- FutureContractOrderBuilder : FutureProduct signal -> front-month Future contract
- OptionStrategyOrderBuilder : STOCK underlying signal -> option-leg orders
Selection is implicit from TradingStrategyModel.securityType; the runtime checks the actual instance type to dispatch.
No-op builder: signal security IS the traded security (STOCK/CRYPTO/FOREX).
Future strategies: signal universe is a FutureProduct, traded security is the front-month contract resolved at order-emit time. No user-facing config knobs in MVP — the runtime always picks the front-month contract for the product.
Option strategies: signal universe is the STOCK underlying, traded securities are option contracts assembled per (template, legs, contractSelector, positionSizing).
OptionStrategyOrderBuilder( template: investfly.models.portfolio.OptionStrategyTemplate, legs: List[investfly.models.strategy.OptionLegSpec], contractSelector: investfly.models.strategy.OptionContractSelector, positionSizing: investfly.models.strategy.OptionPositionSizing)
legs: List[investfly.models.strategy.OptionLegSpec]
contractSelector: investfly.models.strategy.OptionContractSelector
positionSizing: investfly.models.strategy.OptionPositionSizing