You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用backtesting包设置低止盈期货订单的问题求助

解决方案

1. 修正变量名笔误

你的代码里tp= Support + 8使用了大写的Support,但函数参数是小写的support,这会导致未定义变量问题(可能你实际运行时是小写,但输入时写错了),先修正为:

tp= support + 4

2. 简化下单参数,避免止损限价单冲突

你当前同时设置了stop和limit参数,这会创建止损限价单(stop-limit order),触发backtesting包的严格价格校验逻辑。当止盈点数较小时(如4点),可能因为价格校验的阈值问题触发报错。

改为只使用limit参数创建限价买单,移除stop参数:

def support_trade_level(self, support, resistance, lower_support): 
    if self.close <= support + 1 and self.close >= support - 1:
        self.buy(sl= support - 2, 
                 limit= support, 
                 tp= support + 4)

如果需要市价买入(无需挂单),可以直接去掉limit参数:

def support_trade_level(self, support, resistance, lower_support): 
    if self.close <= support + 1 and self.close >= support - 1:
        self.buy(sl= support - 2, 
                 tp= support + 4)

3. 手动校验价格逻辑

在下单前添加价格校验代码,确保符合sl < limit < tp的要求,排查隐性错误:

def support_trade_level(self, support, resistance, lower_support): 
    if self.close <= support + 1 and self.close >= support - 1:
        sl_price = support - 2
        limit_price = support
        tp_price = support + 4
        # 校验价格顺序
        if not (sl_price < limit_price < tp_price):
            print(f"价格不满足要求: sl={sl_price}, limit={limit_price}, tp={tp_price}")
            return
        self.buy(sl=sl_price, 
                 limit=limit_price, 
                 tp=tp_price)

4. 升级backtesting包

旧版本的backtesting包可能存在价格校验的逻辑bug,执行以下命令升级到最新版本:

pip install --upgrade backtesting

内容的提问来源于stack exchange,提问作者Zeeshan Ansari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:03:16