我很确定这里有一个PS bug。
在我的屏幕上,我可以看到我有一个职位空缺,但无法让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替换为自strategy.open_trades >0以来的最高MA值,就像在ride old_ma上的old_ma :=一样
但是似乎不能正确地理解这一点。
发布于 2021-04-07 02:15:51
它应该工作得很好。当短仓位或无仓位到长仓位的转换发生时,barSincePosOpen = barssince(strategy.position_size < 1)将开始计数条形图,因此它将跟踪多头仓位持有的条形图的数量。
要跟踪移动平均线在交易过程中达到的最高点,您需要从进入交易的那一刻开始跟踪它。如果您有一个在必须输入交易时为真的enterLong变量,则可以使用如下代码:
ma = sma(close, 50)
var float stop = na
stop := enterLong and not enterLong[1] ? ma : max(stop, ma)https://stackoverflow.com/questions/66848061
复制相似问题