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)
很确定这里有一个 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)