97 lines
2.6 KiB
Python
97 lines
2.6 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
|
|
|
|
Submodules:
|
|
scenario_runner: Core scenario execution framework
|
|
|
|
Classes:
|
|
Enums:
|
|
- ExecutionMode: Parallel execution mode (sequential, threaded, process)
|
|
- ScenarioStatus: Status of a scenario run
|
|
|
|
Data Classes:
|
|
- ScenarioConfig: Configuration for a simulation scenario
|
|
- ScenarioResult: Result from a scenario simulation
|
|
- RunnerProgress: Progress information for batch runs
|
|
|
|
Main Classes:
|
|
- ScenarioRunner: Runner for parallel portfolio simulations
|
|
- ScenarioBatchBuilder: Builder for creating scenario batches
|
|
|
|
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,
|
|
)
|
|
|
|
__all__ = [
|
|
# Enums
|
|
"ExecutionMode",
|
|
"ScenarioStatus",
|
|
# Data Classes
|
|
"ScenarioConfig",
|
|
"ScenarioResult",
|
|
"RunnerProgress",
|
|
# Main Classes
|
|
"ScenarioRunner",
|
|
"ScenarioBatchBuilder",
|
|
# Protocols
|
|
"ScenarioExecutor",
|
|
# Types
|
|
"ProgressCallback",
|
|
# Utility Functions
|
|
"aggregate_results",
|
|
]
|