investfly.models.strategy.StrategyExecutionContext
Strategy execution context.
This module defines the StrategyExecutionContext dataclass that provides deployment-specific context data to strategy instances during execution.
Execution context for a strategy instance.
The execution context contains per-execution data that is specific to a strategy deployment. This context is created by the execution engine and injected into strategy instances before their methods are called.
The context provides deployment-agnostic access to:
- Portfolio state (positions, balances, performance)
- Universe securities (resolved list of securities to evaluate)
Attributes:
portfolio: The current portfolio state containing open/closed positions, balances, and
performance as returned by the portfolio API (virtual or broker-backed). This is
broker-derived account state only — it does not include application-defined groupings
of option legs (brokers do not expose multi-leg structure after fill).
openOptionGroups: Engine-supplemented view of multi-leg option structures for this tick.
Populated in backtest by reconstructing groups from open option positions; live
execution hydrates Java's reconciled open-position-group endpoint. Used for
group-level exit logic (e.g. DTE cutoff) that requires knowing which legs belong
together, including underlying stock/ETF legs for buy-write structures.
universeSecurities: List of Security objects representing all
securities in the strategy's trading universe. This is the resolved
list based on the security universe selector returned by
TradingStrategy.getSecurityUniverseSelector().
Example: The execution engine creates and injects the context:
context = StrategyExecutionContext(
portfolio=current_portfolio,
universeSecurities=resolved_securities
)
strategy.setContext(context)
Strategies access context data via convenience methods:
portfolio = self.getPortfolio()
universe = self.getUniverseSecurities()