修复预热天数的实现
This commit is contained in:
20
backtest.py
20
backtest.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user