如何在Backtesting.py策略中基于买卖盘价格执行交易委托
Backtesting.py 中利用 Bid/Ask 价格执行买卖的实现方法
在Backtesting.py的TestStrategy中,你计算出的bid_price(买盘价)和ask_price(卖盘价)可以通过self.buy()和self.sell()的limit参数来应用,具体实现如下:
1. 按买盘价买入
买盘价是你愿意买入的价格,对应限价买入单——当市场价格跌到bid_price时触发成交。直接将limit参数设置为bid_price即可:
# 示例:按bid_price买入指定仓位,可按需添加止损止盈 self.buy(size=100, limit=bid_price, sl=bid_price * 0.98, tp=bid_price * 1.02)
2. 按卖盘价卖出
卖盘价是你愿意卖出的价格,对应限价卖出单——当市场价格涨到ask_price时触发成交。将limit参数设置为ask_price:
# 示例:按ask_price卖出指定仓位,可按需添加止损止盈 self.sell(size=100, limit=ask_price, sl=ask_price * 1.02, tp=ask_price * 0.98)
注意事项
- 确保
bid_price和ask_price为有效数值(非NaN或异常值),调用前可做简单校验:if not np.isnan(bid_price): self.buy(size=100, limit=bid_price) - 如果需要近似市价成交,Backtesting.py默认不指定
limit时为市价单,但如果你明确要以计算出的bid/ask价成交,必须通过limit参数指定,否则市价单会取当前K线的开盘/收盘/高低价(取决于回测模式)。
内容的提问来源于stack exchange,提问作者fcnealvillangca
相关产品推荐
相关产品推荐

