1
0

修复预热天数的实现

This commit is contained in:
2026-01-28 10:08:27 +08:00
parent a2a261769b
commit 64bfd031b3

View File

@@ -229,16 +229,26 @@ def main():
apply_color_scheme()
# 加载数据
print(f"加载股票数据: {args.code} ({args.start_date} ~ {args.end_date})")
data = load_data_from_db(args.code, args.start_date, args.end_date)
print(f"数据加载完成,共 {len(data)} 条记录")
# 计算预热开始日期(回测开始日期往前推 warmup_days 天)
warmup_start_date = (
pd.to_datetime(args.start_date) - pd.Timedelta(days=args.warmup_days)
).strftime("%Y-%m-%d")
# 加载数据(包含预热期间)
print(f"加载股票数据(含预热): {args.code} ({warmup_start_date} ~ {args.end_date}),预热天数: {args.warmup_days}")
data = load_data_from_db(args.code, warmup_start_date, args.end_date)
print(f"数据加载完成,共 {len(data)} 条记录(含预热)")
# 加载策略
calculate_indicators, strategy_class = load_strategy(args.strategy_file)
# 计算指标
# 计算指标(在扩展数据上计算,确保长周期指标有足够历史数据)
data = calculate_indicators(data)
print(f"指标计算完成")
# 截取回测期间的数据(去掉预热期间)
data = data.loc[args.start_date : args.end_date]
print(f"回测数据范围: {args.start_date} ~ {args.end_date},共 {len(data)} 条记录")
# 执行回测
from backtesting import Backtest