python backtrader回测问题

qq_41560301 2023-03-11 22:14:51
  def __init__(self):
        self.data_close = self.datas[0].close
        self.data_open = self.datas[0].open
        self.data_high = self.datas[0].high
        self.data_low = self.datas[0].low
        self.buy_price = None
        self.ZS = 0
        self.ZY = 0

 elif self.data.high[0] > self.buy_price * (1+0.07): # 当前价格跌破买入价格的0.03
            self.sell(size=100,price=self.buy_price * (1+0.07),exectype=bt.Order.Limit) # 卖出1股  exectype=bt.Order.Stop, price=120
            print(f"{self.datas[0].datetime.date(0)},卖出!止盈价格为{self.buy_price * (1+0.07)}")
            print(f"期末资金2:{self.broker.getvalue()}")
            self.buy_price = None # 重置买入价格
            self.position.size == 0
            self.ZY += 1
            print(self.ZY)
            
        elif self.data.low[0] < self.buy_price * (1-0.03): # 当前价格跌破买入价格的0.03
            print(f"期末资金:{self.broker.getvalue()}")
            self.sell(size=100,price=self.buy_price * (1-0.03),exectype=bt.Order.Limit) # 卖出1股
            print(f"{self.datas[0].datetime.date(0)},卖出!止损价格为{self.buy_price * (1-0.03)}")
            self.buy_price = None # 重置买入价格
            self.position.size == 0
            self.ZS +=1
            print(f"期末资金:{self.broker.getvalue()}")
            print(self.ZS)  

初始资金:1000.0
期末资金1:1000.0
2022-12-23,买入!价格为3.23
期末资金:1011.0
2022-12-26,卖出!止损价格为3.1330999999999998
期末资金:1011.0期末资金1:1006.0
2023-02-03,买入!价格为3.67

期末资金:997.0
2023-02-16,卖出!止损价格为3.5599
期末资金:997.0
2
期末资金:997.99

数据输入是对的 为什么在买入价的0.97卖出止损 期末资金却增加了

...全文
43 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,921

社区成员

发帖
与我相关
我的任务
社区描述
人生苦短,我用python
社区管理员
  • Python 学习者
  • 嗨学编程
  • 松鼠爱吃饼干
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎来到Python学习者们的社区,

 

本社区分享你需要的文章、问题解答、技术互助、学习资源、面试系列等等

 

欢迎你的加入,祝你学有所成~

试试用AI创作助手写篇文章吧