diff --git a/datasource/flask_api_source.py b/datasource/flask_api_source.py index dee8d92..8185986 100644 --- a/datasource/flask_api_source.py +++ b/datasource/flask_api_source.py @@ -138,6 +138,11 @@ class FlaskAPIDataSource: # 确保列名标准化 df = df[['open', 'high', 'low', 'close', 'volume']] + # 使用 API 返回的实际数据范围(而非请求参数) + actual_start = data.get('date_range', {}).get('start', start_date) + actual_end = data.get('date_range', {}).get('end', end_date) + actual_count = data.get('count', len(df)) + # 缓存 info 信息(如果有) if 'info' in data: df.attrs['info'] = data['info'] @@ -166,7 +171,7 @@ class FlaskAPIDataSource: if 'premium_stats' in data: df.attrs['premium_stats'] = data['premium_stats'] - print(f"✓ {code}: {len(df)} 条数据 ({start_date} ~ {end_date})") + print(f"✓ {code}: {actual_count} 条数据 ({actual_start} ~ {actual_end})") return df except requests.exceptions.Timeout: diff --git a/strategies/rotation/strategy.py b/strategies/rotation/strategy.py index 5e66c1c..7b8953c 100644 --- a/strategies/rotation/strategy.py +++ b/strategies/rotation/strategy.py @@ -157,6 +157,10 @@ class RotationStrategy(StrategyBase): else: print(f"✓ Flask API 服务正常 (SSH: {health.get('ssh_configured', False)})") + # 打印回测时间区间说明 + print(f"\n回测配置区间: {self.start_date} ~ {self.end_date}") + print("注: 各标的实际数据范围可能因上市时间/数据源限制而不同") + # 获取指数代码列表 index_codes = list(code_list_config.keys())