我有一个简单的策略,我想打开OR 1个多头头寸或1个空头头寸。例如,我不想在已经有一个多头头寸的情况下打开一个空头头寸。
所以,我的代码是:
strategy.entry("Long", strategy.long, stop=livelloIngressoLong, when = strategy.position_size == 0)
和
strategy.entry("Short", strategy.short, stop=livelloIngressoShort, when = strategy.position_size == 0)
但它们不起作用。您可以看到屏幕截图添加。当打开空头时,它打开多头,但如果空头打开策略.position_size不为0!那么为什么要开一个长呢?我简直不敢相信!
我也尝试过一些变体,比如:
if strategy.position_size == 0
strategy.entry("Long", strategy.long, stop=livelloIngressoLong)
或
longCondition = Strategy.position_size == 0
if longCondition
strategy.entry("Long", strategy.long, stop=livelloIngressoLong)```
[1]: https://i.stack.imgur.com/HFkex.png
when
参数指定何时生成条目顺序。但当达到停止价格条件时,可以稍后执行停止订单。您的案例的修复方法可以是:
longCondition = Strategy.position_size == 0
if longCondition
strategy.entry("Long", strategy.long, stop=livelloIngressoLong)
else
strategy.cancel("Long")