我想回测 pyalgotrade 中的交易策略,但在提交止损单时遇到问题。
在文档中它指出:头寸是用于下订单的更高级别的抽象。它们本质上是一对进出订单,允许跟踪回报和盈亏比手动下订单更容易。
我进入职位
myPosition = self.enterLong(self.__instrument, amount, True)
这基本上打开了一个新的股票头寸并以市场价格购买,这本身就是有效的。
然后我希望下止损单
myPosition.exitStop(stoplossValue, True)
......但这行为真的很奇怪!
如果仓位 isFilled,即执行 enterLong 订单时的情况,则 exitStop 会引发断言错误,因为它似乎期望订单为“isActive”(这与 isFilled 冲突)。
当我在订单 isFilled(isActive)之前调用 exitStop 时,代码不会生成断言错误,但活动订单会立即取消。
当初始订单尚未执行时,调用 exitStop 绝对没有意义。还是我的想法完全不合时宜?
不幸的是,pyalgotrade 教程策略不使用任何止损逻辑(这很糟糕)。