优化代码风格
This commit is contained in:
47
backtest.py
47
backtest.py
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user