refactor(log): 优化回测日志输出格式
- strategy.py: 在数据获取前打印回测配置区间说明 - flask_api_source.py: 使用API返回的实际数据范围(date_range) - 原问题: 日志显示请求参数的start_date,而非实际数据范围 - 修改后: 各标的显示实际数据时间周期(如创业板2010年开始)
This commit is contained in:
@@ -138,6 +138,11 @@ class FlaskAPIDataSource:
|
|||||||
# 确保列名标准化
|
# 确保列名标准化
|
||||||
df = df[['open', 'high', 'low', 'close', 'volume']]
|
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 信息(如果有)
|
# 缓存 info 信息(如果有)
|
||||||
if 'info' in data:
|
if 'info' in data:
|
||||||
df.attrs['info'] = data['info']
|
df.attrs['info'] = data['info']
|
||||||
@@ -166,7 +171,7 @@ class FlaskAPIDataSource:
|
|||||||
if 'premium_stats' in data:
|
if 'premium_stats' in data:
|
||||||
df.attrs['premium_stats'] = data['premium_stats']
|
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
|
return df
|
||||||
|
|
||||||
except requests.exceptions.Timeout:
|
except requests.exceptions.Timeout:
|
||||||
|
|||||||
@@ -157,6 +157,10 @@ class RotationStrategy(StrategyBase):
|
|||||||
else:
|
else:
|
||||||
print(f"✓ Flask API 服务正常 (SSH: {health.get('ssh_configured', False)})")
|
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())
|
index_codes = list(code_list_config.keys())
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user