请确保使用backtrader框架正确引用以下模块(包括Order和Trade):
from backtrader.order import Order
from backtrader.trade import Trade
然后,请使用以下方法手动计算交易记录:
for trade in self.strategy.trades:
for order in trade.history:
if order.status == Order.Completed:
buy_size = order.executed.size
buy_price = order.executed.price
sell_price = order.executed.value / buy_size
sell_size = buy_size * sell_price / buy_price
self.buy_size_lst.append(buy_size)
self.buy_price_lst.append(buy_price)
self.sell_price_lst.append(sell_price)
self.sell_size_lst.append(sell_size)
其中self.strategy.trades是一个列表,其中包含来自Backtrader框架的已完成的交易记录。 在循环中,我们可以遍历交易历史中的订单,并使用Backtrader提供的属性(如order.executed.size和order.executed.price)计算所有必要的交易细节。 一旦我们计算了买入量,买入价格,卖出价格和卖出量,我们可以将这些值添加到我们自己的list中,以便稍后使用。 通过执行上述步骤,您可以自己计算所有必要的交易细节,并确保Backtrader框架正确执行它们。
上一篇:backtrader或backtesting.py是否与MapReduce和/或mrjob配合使用?
下一篇:backtrader时间列: ValueError: 时间数据'0'与格式'%Y-%m-%d %H:%M:%S'不匹配。