止损订单所需的 Pyalgotrade 建议

Pyalgotrade advice needed for stoploss orders

我想在 pyalgotrade 中回测交易策略,但我在提交止损订单时遇到问题。

documentation 中指出:头寸是用于下订单的更高级别的抽象。它们本质上是一对进出场订单,允许跟踪 returns 和 PnL 比手动下订单更容易。

我入仓

myPosition = self.enterLong(self.__instrument, amount, True)

这基本上是在股票中开立新头寸并以市场价格买入,这本身就有效。

然后我希望用

下止损单
myPosition.exitStop(stoplossValue, True)

…但这行为真的很奇怪!

如果 position isFilled,这是执行 enterLong 订单时的情况,则 exitStop 引发断言错误,因为它似乎期望订单为“isActive”(与 isFilled 冲突)。

当我在订单已成交前调用 exitStop 时(当订单处于活动状态时),代码不会生成断言错误,但活动订单会立即被取消。

在初始订单尚未执行时调用exitStop 是绝对没有意义的。还是我的想法完全脱离了常态?

不幸的是,pyalgotrade 教程策略不使用任何止损逻辑(这很糟糕)。

由于您已经将相同的问题发布到图书馆组,因此我不会在此处重复回答。看看https://groups.google.com/forum/#!topic/pyalgotrade/WNNZQ0VvuTc