Backtest API
backtest.backtest
BacktestBase
- class BacktestBase(weight, symbol, amount, ftc=0.0, ptc=0.0, verbose=True)
回测基类,实现从调仓权重到日度净值的计算。
- Parameters:
weight – 权重DataFrame,行为时间索引,列为证券代码
symbol – 策略名称
amount – 初始资金
ftc – 固定交易费用
ptc – 百分比交易费用
verbose – 是否输出详细信息
属性
日度净值序列
- daily_amount: pd.Series
每日市值序列
- position: pd.DataFrame
每日持仓数量
- cost_price: pd.DataFrame
调仓成本价(MultiIndex: input_ts, datetime)
- cost_ret: pd.DataFrame
调仓区间收益率
- start: datetime
回测开始时间
- end: datetime
回测结束时间
方法
- get_rebalance_data()
获取调仓日数据,包含日期和标的匹配验证。
- get_position_data()
计算调仓后仓位与累计资产。
- get_daily_position_data()
计算每日市值和净值。
异常类
- exception BacktestDataError
回测数据异常基类。
- exception DateMismatchError
日期不匹配异常。当权重日期在数据库中无对应数据时抛出。
- exception CodeMismatchError
标的代码不匹配异常。
验证函数
- validate_weight_input(weight)
验证权重输入格式。
- validate_query_result(df, expected_columns, query_name)
验证数据库查询结果。
- validate_pivot_result(df, expected_codes, index_levels)
验证 pivot_table 结果。
- validate_index_alignment(df1, df2, name1, name2)
验证两个DataFrame的索引是否对齐。
- validate_calculation_inputs(*args, **kwargs)
验证计算前的输入数据。
- format_data_sample(df, max_rows, max_cols)
格式化数据样本用于错误信息。