qlib
qlib copied to clipboard
账户初始资金cash及最小成本min_cost面值与购买力存在差异
qlib提供的雅虎财经数据,是经过首日收盘价缩放(股票上市第一天收盘价调整为1)的后复权数据。 在回测过程中,使用后复权价进行买卖,会导致账户初始资金cash及最小成本min_cost面值与购买力不一致的问题。
举例: 假设账户初始资金cash = 100000, 股票stock_1的真实收盘价为10,复权之后为100。 如果按照真实收盘价,可以购买10000股,而按照复权价只能购买到1000股。虽然在回测交易过程中,现金和股价都是用后复权价格进行交易,不会存在这个问题,但是账户初始现金没有经过复权因子处理,其面值和购买力显然存在偏差。
另外,最小交易成本min_cost是一个固定值,也会存在类似问题。如代码 trade_cost = max(trade_val * cost_ratio, self.min_cost)
为什么在回测过程中不使用原始价格(未复权)进行交易呢 ?
有同样的问题,为什么backtest不使用真实的收盘价格进行回测呢?