需要一些有关松木脚本的建议 我想写一个代码,计算超过EMA50的蜡烛数量, 一旦收盘跌至EMA50以下,此计数器将重置为零:
'''
MA_long = ema(close,50)
// Counting how many candles are above the MA_long
barsAboveMA = 0
if close > MA_long
for i = 1 to 9999
if close[i] < MA_long
break
barsAboveMA := barsAboveMA + 1
'''
但是此代码性能奇怪,无法正常工作。
答案 0 :(得分:0)
请注意,您没有在 for 循环中将历史参考操作符与MA_long一起使用。这意味着您将过去 关闭值与当前栏上的EMA值进行比较(还请注意,您是从开始比较close [1] ,并且不要使用当前栏中的 close 值。
在Pine中实现计数器的更好方法是使用 var 关键字。使用 var 时,变量不会在每个小节上重置为0。这样做,然后就可以修改它而无需for循环:
MA_long = ema(close,50)
var barsAboveMA = 0 // when var is used, the value is not reset to 0 at the start of every bar
if close > MA_long
barsAboveMA := barsAboveMA + 1
else
barsAboveMA := 0
plot(barsAboveMA)