1
0

优化代码风格

This commit is contained in:
2026-01-28 09:54:38 +08:00
parent 5cc140259e
commit a2a261769b
2 changed files with 17 additions and 43 deletions

View File

@@ -135,40 +135,19 @@ def parse_arguments():
返回:
args: 命名空间对象
"""
parser = argparse.ArgumentParser(
description="量化回测工具", formatter_class=argparse.RawDescriptionHelpFormatter
)
parser = argparse.ArgumentParser(description="量化回测工具", formatter_class=argparse.RawDescriptionHelpFormatter)
# 必需参数
parser.add_argument(
"--code", type=str, required=True, help="股票代码 (如: 000001.SZ)"
)
parser.add_argument(
"--start-date", type=str, required=True, help="回测开始日期 (格式: YYYY-MM-DD)"
)
parser.add_argument(
"--end-date", type=str, required=True, help="回测结束日期 (格式: YYYY-MM-DD)"
)
parser.add_argument(
"--strategy-file",
type=str,
required=True,
help="策略文件路径 (如: strategy.py)",
)
parser.add_argument("--code", type=str, required=True, help="股票代码 (如: 000001.SZ)")
parser.add_argument("--start-date", type=str, required=True, help="回测开始日期 (格式: YYYY-MM-DD)")
parser.add_argument("--end-date", type=str, required=True, help="回测结束日期 (格式: YYYY-MM-DD)")
parser.add_argument("--strategy-file", type=str, required=True, help="策略文件路径 (如: strategy.py)", )
# 可选参数
parser.add_argument(
"--cash", type=float, default=100000, help="初始资金 (默认: 100000)"
)
parser.add_argument(
"--commission", type=float, default=0.002, help="手续费率 (默认: 0.002)"
)
parser.add_argument(
"--output", type=str, default=None, help="HTML 输出文件路径 (可选)"
)
parser.add_argument(
"--warmup-days", type=int, default=365, help="预热天数 (默认: 365约一年"
)
parser.add_argument("--cash", type=float, default=100000, help="初始资金 (默认: 100000)")
parser.add_argument("--commission", type=float, default=0.002, help="手续费率 (默认: 0.002)")
parser.add_argument("--output", type=str, default=None, help="HTML 输出文件路径 (可选)")
parser.add_argument("--warmup-days", type=int, default=365, help="预热天数 (默认: 365约一年")
return parser.parse_args()
@@ -255,21 +234,17 @@ def main():
data = load_data_from_db(args.code, args.start_date, args.end_date)
print(f"数据加载完成,共 {len(data)} 条记录")
# 截取预热数据
warmup_data = data.iloc[-args.warmup_days:]
print(f"使用预热数据范围: {warmup_data.index[0]} ~ {warmup_data.index[-1]}")
# 加载策略
calculate_indicators, strategy_class = load_strategy(args.strategy_file)
# 计算指标
warmup_data = calculate_indicators(warmup_data)
data = calculate_indicators(data)
# 执行回测
from backtesting import Backtest
bt = Backtest(
warmup_data,
data,
strategy_class,
cash=args.cash,
commission=args.commission,