170 lines
5.0 KiB
Python
170 lines
5.0 KiB
Python
"""Simulation module for portfolio simulations and backtesting.
|
|
|
|
This module provides simulation capabilities including:
|
|
- Parallel scenario execution
|
|
- Parameter sweep analysis
|
|
- Strategy comparison
|
|
- Economic regime simulation
|
|
|
|
Issue #33: [SIM-32] Scenario runner - parallel portfolio simulations
|
|
Issue #34: [SIM-33] Strategy comparator - performance comparison, stats
|
|
Issue #35: [SIM-34] Economic conditions - regime tagging, evaluation
|
|
|
|
Submodules:
|
|
scenario_runner: Core scenario execution framework
|
|
strategy_comparator: Strategy comparison and statistical analysis
|
|
economic_conditions: Economic regime tagging and evaluation
|
|
|
|
Classes:
|
|
Enums:
|
|
- ExecutionMode: Parallel execution mode (sequential, threaded, process)
|
|
- ScenarioStatus: Status of a scenario run
|
|
- RankingCriteria: Criteria for ranking strategies
|
|
- ComparisonStatus: Status of strategy comparison
|
|
- MarketRegime: Bull/bear/sideways market classification
|
|
- VolatilityRegime: Low/normal/elevated/high volatility
|
|
- TrendStrength: Strength of detected trend
|
|
- RegimeConfidence: Confidence in regime classification
|
|
|
|
Data Classes:
|
|
- ScenarioConfig: Configuration for a simulation scenario
|
|
- ScenarioResult: Result from a scenario simulation
|
|
- RunnerProgress: Progress information for batch runs
|
|
- StrategyMetrics: Performance metrics for a strategy
|
|
- PairwiseComparison: Comparison between two strategies
|
|
- ComparisonResult: Complete result of strategy comparison
|
|
- RegimeTag: Tag for a period with regime information
|
|
- RegimePerformance: Performance summary for a regime
|
|
- RegimeTransition: Record of regime transitions
|
|
- RegimeRecommendation: Strategy recommendations per regime
|
|
- RegimeEvaluationResult: Complete regime evaluation result
|
|
|
|
Main Classes:
|
|
- ScenarioRunner: Runner for parallel portfolio simulations
|
|
- ScenarioBatchBuilder: Builder for creating scenario batches
|
|
- StrategyComparator: Compares multiple trading strategies
|
|
- RegimeDetector: Detects market and volatility regimes
|
|
- RegimeEvaluator: Evaluates strategy performance by regime
|
|
|
|
Protocols:
|
|
- ScenarioExecutor: Protocol for scenario execution functions
|
|
|
|
Utility Functions:
|
|
- aggregate_results: Aggregate results from multiple scenarios
|
|
|
|
Example:
|
|
>>> from tradingagents.simulation import (
|
|
... ScenarioRunner,
|
|
... ScenarioConfig,
|
|
... ScenarioResult,
|
|
... ScenarioStatus,
|
|
... ExecutionMode,
|
|
... )
|
|
>>> from datetime import datetime
|
|
>>> from decimal import Decimal
|
|
>>>
|
|
>>> def simple_executor(config: ScenarioConfig) -> ScenarioResult:
|
|
... return ScenarioResult(
|
|
... scenario_id=config.scenario_id,
|
|
... scenario_name=config.name,
|
|
... status=ScenarioStatus.COMPLETED,
|
|
... start_time=datetime.now(),
|
|
... final_value=config.initial_capital * Decimal("1.1"),
|
|
... total_return=Decimal("0.1"),
|
|
... )
|
|
>>>
|
|
>>> runner = ScenarioRunner(executor=simple_executor)
|
|
>>> scenarios = [ScenarioConfig(name="Test1"), ScenarioConfig(name="Test2")]
|
|
>>> results = runner.run(scenarios)
|
|
"""
|
|
|
|
from .scenario_runner import (
|
|
# Enums
|
|
ExecutionMode,
|
|
ScenarioStatus,
|
|
# Data Classes
|
|
ScenarioConfig,
|
|
ScenarioResult,
|
|
RunnerProgress,
|
|
# Main Classes
|
|
ScenarioRunner,
|
|
ScenarioBatchBuilder,
|
|
# Protocols
|
|
ScenarioExecutor,
|
|
# Types
|
|
ProgressCallback,
|
|
# Utility Functions
|
|
aggregate_results,
|
|
)
|
|
|
|
from .strategy_comparator import (
|
|
# Enums
|
|
RankingCriteria,
|
|
ComparisonStatus,
|
|
# Data Classes
|
|
StrategyMetrics,
|
|
PairwiseComparison,
|
|
ComparisonResult,
|
|
# Main Class
|
|
StrategyComparator,
|
|
)
|
|
|
|
from .economic_conditions import (
|
|
# Enums
|
|
MarketRegime,
|
|
VolatilityRegime,
|
|
TrendStrength,
|
|
RegimeConfidence,
|
|
# Data Classes
|
|
RegimeTag,
|
|
RegimePerformance,
|
|
RegimeTransition,
|
|
RegimeRecommendation,
|
|
RegimeEvaluationResult,
|
|
# Main Classes
|
|
RegimeDetector,
|
|
RegimeEvaluator,
|
|
)
|
|
|
|
__all__ = [
|
|
# Scenario Runner Enums
|
|
"ExecutionMode",
|
|
"ScenarioStatus",
|
|
# Scenario Runner Data Classes
|
|
"ScenarioConfig",
|
|
"ScenarioResult",
|
|
"RunnerProgress",
|
|
# Scenario Runner Main Classes
|
|
"ScenarioRunner",
|
|
"ScenarioBatchBuilder",
|
|
# Scenario Runner Protocols
|
|
"ScenarioExecutor",
|
|
# Scenario Runner Types
|
|
"ProgressCallback",
|
|
# Scenario Runner Utility Functions
|
|
"aggregate_results",
|
|
# Strategy Comparator Enums
|
|
"RankingCriteria",
|
|
"ComparisonStatus",
|
|
# Strategy Comparator Data Classes
|
|
"StrategyMetrics",
|
|
"PairwiseComparison",
|
|
"ComparisonResult",
|
|
# Strategy Comparator Main Class
|
|
"StrategyComparator",
|
|
# Economic Conditions Enums
|
|
"MarketRegime",
|
|
"VolatilityRegime",
|
|
"TrendStrength",
|
|
"RegimeConfidence",
|
|
# Economic Conditions Data Classes
|
|
"RegimeTag",
|
|
"RegimePerformance",
|
|
"RegimeTransition",
|
|
"RegimeRecommendation",
|
|
"RegimeEvaluationResult",
|
|
# Economic Conditions Main Classes
|
|
"RegimeDetector",
|
|
"RegimeEvaluator",
|
|
]
|