VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 20
声望: 0

写了一段移动止盈止损的代码,回测print时发现了问题:

price_1前面有定义是开仓时的价位
下面这段代码,移动止盈的逻辑,没问题,顺着往下走
但是移动止损,只触发第一层0.992*price_1的止损,里面几层的止损都不触发……
请问这个要怎么解决呢?

elif self.pos > 0:
            if price > self.price_1*1.01:
                if price > self.price_1*1.02:
                        if price > self.price_1*1.03:
                            self.sell(price*0.8, abs(self.pos))
                            print(f"sell,{tick.datetime},price:{price},volume:{abs(self.pos)}") 
                        elif price < self.price_1*1.01:
                            self.sell(price*0.8, abs(self.pos))
                            print(f"sell,{tick.datetime},price:{price},volume:{abs(self.pos)}")
                elif price < self.price_1*1.005:
                        self.sell(price*0.8, abs(self.pos))
                        print(f"sell,{tick.datetime},price:{price},volume:{abs(self.pos)}")
            elif price < self.price_1*0.992:
                    self.sell(price*0.8, abs(self.pos))
                    print(f"sell,{tick.datetime},price:{price},volume:{abs(self.pos)}")
Member
avatar
加入于:
帖子: 4684
声望: 285

可以自己打印排查看看

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】