- Introduced a comprehensive framework for incremental trading strategies, including modules for strategy execution, backtesting, and data processing. - Added key components such as `IncTrader`, `IncBacktester`, and various trading strategies (e.g., `MetaTrendStrategy`, `BBRSStrategy`, `RandomStrategy`) to facilitate real-time trading and backtesting. - Implemented a robust backtesting framework with configuration management, parallel execution, and result analysis capabilities. - Developed an incremental indicators framework to support real-time data processing with constant memory usage. - Enhanced documentation to provide clear usage examples and architecture overview, ensuring maintainability and ease of understanding for future development. - Ensured compatibility with existing strategies and maintained a focus on performance and scalability throughout the implementation.
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
"""
|
|
Incremental Backtesting Framework
|
|
|
|
This module provides comprehensive backtesting capabilities for incremental trading strategies.
|
|
It includes configuration management, data loading, parallel execution, and result analysis.
|
|
|
|
Components:
|
|
- IncBacktester: Main backtesting engine
|
|
- BacktestConfig: Configuration management for backtests
|
|
- OptimizationConfig: Configuration for parameter optimization
|
|
- DataLoader: Data loading and validation utilities
|
|
- SystemUtils: System resource management
|
|
- ResultsSaver: Result saving and reporting utilities
|
|
|
|
Example:
|
|
from IncrementalTrader.backtester import IncBacktester, BacktestConfig
|
|
from IncrementalTrader.strategies import MetaTrendStrategy
|
|
|
|
# Configure backtest
|
|
config = BacktestConfig(
|
|
data_file="btc_1min_2023.csv",
|
|
start_date="2023-01-01",
|
|
end_date="2023-12-31",
|
|
initial_usd=10000
|
|
)
|
|
|
|
# Run single strategy
|
|
strategy = MetaTrendStrategy("metatrend")
|
|
backtester = IncBacktester(config)
|
|
results = backtester.run_single_strategy(strategy)
|
|
|
|
# Parameter optimization
|
|
param_grid = {"timeframe": ["5min", "15min", "30min"]}
|
|
results = backtester.optimize_parameters(MetaTrendStrategy, param_grid)
|
|
"""
|
|
|
|
from .backtester import IncBacktester
|
|
from .config import BacktestConfig, OptimizationConfig
|
|
from .utils import DataLoader, SystemUtils, ResultsSaver
|
|
|
|
__all__ = [
|
|
"IncBacktester",
|
|
"BacktestConfig",
|
|
"OptimizationConfig",
|
|
"DataLoader",
|
|
"SystemUtils",
|
|
"ResultsSaver",
|
|
] |