PineScript barssince( strategy.position_size > 0) 无法正常工作?

PineScript barssince( strategy.position_size > 0) not working correctly?

很确定这里有一个 PS 错误。

在我的屏幕上,我可以看到我有一个未平仓头寸,但无法让 barSincePosOpen 增加价值。

但是当我改变的时候:

barssince(strategy.position_size > 1) 到 barssince(strategy.position_size < 1)

然后它实际上开始递增。

barSincePosOpen = barssince(strategy.position_size < 1)

plot(barSincePosOpen, "Bars Since Pos Open", color.green)

我基本上是在尝试使用 MA 构建一个系统,如果价格高于 MA 则做多,并使用相同的 MA 作为追踪止损。

但我希望它在该 MA 的最高点退出,所以即使 MA 向下移动(如果经常这样做,没有交叉),我也会将 MA 替换为 old_ma : = 自 strategy.open_trades > 0

以来的最高 MA 值超越 old_ma

不过好像不太对。

它应该可以正常工作。 barSincePosOpen = barssince(strategy.position_size < 1) 将在空头头寸或无头寸与多头头寸之间发生转换时开始计算柱数,因此它将跟踪持有多头头寸的柱数。

要跟踪 MA 在交易过程中达到的最高点,您需要从进入交易的那一刻起就开始跟踪它。如果您有一个 enterLong 变量,该变量在必须输入交易时为真,您可以使用如下代码:

ma = sma(close, 50)
var float stop = na
stop := enterLong and not enterLong[1] ? ma : max(stop, ma)