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 – 是否输出详细信息

属性

nav: pd.Series

日度净值序列

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)

格式化数据样本用于错误信息。