investfly.models.strategy.StrategyConfig

Declarative strategy entry, exit, sizing, guard, and lifecycle contracts.

These models are the public configuration vocabulary shared by SDK clients, custom strategies, live execution, and backtests. Validation and serialization helpers are implementation details and are intentionally omitted from generated API documentation unless explicitly documented.

class EdgeMode(builtins.str, enum.Enum):

How a condition treats transitions at its threshold.

class EntryConflictAction(builtins.str, enum.Enum):

Action taken when a new entry conflicts with an existing position.

@dataclass
class EntryConflictPolicy:

Policy for resolving simultaneous or conflicting entry signals.

@dataclass
class EntryExistingPositionPolicy:

Behavior when an entry targets a security already represented in the portfolio.

class ExistingTargetAction(builtins.str, enum.Enum):

Action applied to an existing target position.

@dataclass
class ExistingTargetPolicy:

Policy for entries that resolve to an existing target instrument.

@dataclass
class EntryRule:

One entry condition paired with execution settings.

@dataclass
class OpenExecutionSettings:

Instrument selection, sizing, and order settings for opening a position.

@dataclass
class EntryRules:

Collection of entry rules and their conflict policy.

@dataclass
class ExitRule:

One exit condition and the position-closing behavior it activates.

@dataclass
class ExitRules:

Collection of exit rules evaluated for open positions.

class ProfitThresholdType(builtins.str, enum.Enum):

Measurement used to define a profit target.

@dataclass
class ProfitTargetTier:

One profit threshold and the percentage of a position to close.

@dataclass
class StagedProfitTargets:

Ordered profit-taking tiers for progressively closing a position.

class FixedStopThresholdType(builtins.str, enum.Enum):

Measurement used to locate a fixed protective stop.

@dataclass
class FixedStopThreshold:

Threshold value for a fixed stop rule.

@dataclass
class FixedStopRule:

Protective stop fixed at a price or distance from entry.

class TrailingStopDistanceType(builtins.str, enum.Enum):

Measurement used for a trailing-stop distance.

@dataclass
class AtrParams:

Average True Range settings used by volatility-based distances.

@dataclass
class TrailingStopDistance:

Distance maintained by a trailing protective stop.

@dataclass
class TrailingStopRule:

Protective stop that follows favorable price movement.

class SessionTimeTriggerType(builtins.str, enum.Enum):

Reference point used by a session-time trigger.

@dataclass
class SessionTimeTrigger:

Trigger at a time relative to market-session open or close.

class ProtectiveExecutionPolicy(builtins.str, enum.Enum):

Execution policy for runtime-managed protective orders.

class StopSpecType(builtins.str, enum.Enum):

Available fixed and trailing stop specifications.

@dataclass
class StopSpec:

Fixed or trailing protective stop definition.

@dataclass
class ProfitLevelCondition:

Condition that becomes true after a profit tier is reached.

@dataclass
class ProtectiveExitPlan:

Profit targets, stops, adjustments, and maximum holding period for a position.

@dataclass
class ProtectionAdjustment:

Replacement protective stop activated by a later trigger.

class ProtectionTriggerType(builtins.str, enum.Enum):

Events that can activate a protection adjustment.

@dataclass
class ProtectionTrigger:

Event condition that activates a protection adjustment.

class ScheduledWorkflowIntentFamily(builtins.str, enum.Enum):

High-level behavior performed by a scheduled workflow.

@dataclass
class ScheduledWorkflowIntent:

Typed intent executed by a scheduled strategy job.

@dataclass
class PortfolioRotationConfig:

Selection and execution settings for a scheduled portfolio rotation.

@dataclass
class TargetWeightSpec:

Target portfolio weight for one security.

@dataclass
class TargetBasketRebalanceConfig:

Target basket, weights, and tolerance for scheduled rebalancing.

class ContributionMode(builtins.str, enum.Enum):

How recurring contributions are expressed.

@dataclass
class ContributionSpec:

Cash or percentage budget contributed by a recurring entry.

@dataclass
class RecurringMultiAssetEntryTarget:

One target and allocation in a recurring multi-asset entry.

@dataclass
class RecurringMultiAssetEntryConfig:

Targets and contribution settings for recurring multi-asset entries.

@dataclass
class RecurringSingleAssetEntryConfig:

Contribution and execution settings for a recurring single-asset entry.

@dataclass
class ScheduledJob:

A validated schedule paired with a workflow intent and guard policy.

class MarketRegimeRule(builtins.str, enum.Enum):

Supported interpretations of a market-regime condition.

class MarketRegimeTimeFrame(builtins.str, enum.Enum):

Time horizon used to evaluate market regime.

class StrategyGuardType(builtins.str, enum.Enum):

Kinds of pre-execution strategy guards.

class TimeWindowMode(builtins.str, enum.Enum):

How a time guard interprets its configured window.

class GuardScope(builtins.str, enum.Enum):

Execution scopes in which a strategy guard may be evaluated.

@dataclass(frozen=True)
class StrategyGuardMetadata:

Identifier, scope, and behavior shared by all strategy guards.

class StrategyGuard:

Base contract for a pre-execution strategy guard.

@dataclass
class MarketRegimeGuard(StrategyGuard):

Guard that allows execution only in a configured market regime.

@dataclass
class TimeGuard(StrategyGuard):

Guard that allows or blocks execution within a configured time window.

@dataclass
class PortfolioMarginGuard(StrategyGuard):

Guard that enforces a portfolio margin threshold.

@dataclass
class CryptoMarketRegimeGuard(MarketRegimeGuard):

Market-regime guard tailored to continuously traded crypto markets.

@dataclass
class GuardDecision:

Result of evaluating one strategy guard.

@dataclass
class GuardPolicy:

Ordered strategy guards and their combination behavior.

@dataclass
class OpenPositionSpec:

Selection criteria for currently open portfolio positions.

@dataclass
class ClosePositionSpec:

Quantity and order settings for closing selected positions.

class SecuritySelectionSource(builtins.str, enum.Enum):

Source from which a security selection obtains candidates.

@dataclass
class SecuritySelection:

Candidate universe and filter used to select securities.

@dataclass
class SecurityScoreExpression:

Expression used to score a security for ranking.

@dataclass
class RankedSecuritySelection:

Security selection with scoring, ordering, and result limits.

class AllocationMode(builtins.str, enum.Enum):

Method used to distribute capital among selected securities.

@dataclass
class AllocationModel:

Allocation mode and optional explicit target weights.

class PositionSizeMode(builtins.str, enum.Enum):

Units used to express an entry position size.

@dataclass
class PositionSizeSpec:

Requested position size and its measurement mode.

@dataclass
class PositionExposureLimit:

Maximum exposure allowed for one position.

class MoveUnit(builtins.str, enum.Enum):

Unit used to measure a price move for scaling rules.

class MoveBasis(builtins.str, enum.Enum):

Reference price used to measure a scaling move.

class ScalingSizeMode(builtins.str, enum.Enum):

How a scale-in order derives its quantity.

@dataclass
class MoveCondition:

Required favorable or adverse move before a scaling action.

@dataclass
class ScaleAddPlan:

Sizing and execution settings for one scale-in action.

@dataclass
class RepeatSignalAddRule:

Scale-in rule activated by repeated entry signals.

@dataclass
class WinnerScaleRule:

Scale-in rule for positions moving favorably.

@dataclass
class LoserScaleLimits:

Safety limits for averaging into a losing position.

@dataclass
class LoserScaleRule:

Scale-in rule for positions moving adversely.

@dataclass
class ScalingPlan:

Combined repeat-signal, winner, and loser scale-in behavior.

@dataclass
class PositionManagementRules:

Runtime-managed exits and scaling behavior for open positions.

@dataclass
class OptionGroupExposureLimits:

Portfolio exposure limits for grouped option positions.

@dataclass
class PortfolioLimits:

Portfolio-wide position count, exposure, and buying-power limits.

class OrderDuration(builtins.str, enum.Enum):

Time-in-force choices for strategy orders.

class StrategyOrderType(builtins.str, enum.Enum):

Order types available to declarative strategy execution.

class LimitPriceOffsetUnit(builtins.str, enum.Enum):

Unit used to offset a generated limit price.

@dataclass
class LimitPriceOffset:

Adjustment applied when deriving a strategy limit price.

@dataclass
class OrderSpec:

Order type, duration, and limit-price behavior for strategy execution.

class FutureRollMode(builtins.str, enum.Enum):

Policy used to roll a futures position before expiration.

@dataclass
class FutureLifecycleRules:

Expiration and roll behavior for futures positions.

@dataclass
class AssetLifecycleRules:

Asset-specific lifecycle behavior for runtime-managed positions.

@dataclass
class StrategyConfig:

Complete declarative trading-strategy configuration.

Combines the security universe, entry and exit rules, scheduled jobs, position management, asset lifecycle, and portfolio limits evaluated by Investfly in live trading and backtests.