我试图编写一个代码,为所有满足以下条件的条形图着色:
1.收盘价高于20期移动平均线
和
2.他们在特定时期(比如说20天)内收于最高价以上
这是我目前的代码:
hp1 = highest(high, 20) //HH from given period
myMA = sma(close, 20) //my moving average to plot
plot(myMA)
myCond = close > hp1 and close > myMA
barcolor(myCond? yellow: na) //if condition is met
代码似乎合乎逻辑,但不起作用。有什么建议吗?
答案 0 :(得分:3)
我已经研究过你的剧本,并确定了以下问题......
这是因为您的最高逻辑包含当前的 close 。 close 不可能高于最高值,因为 是最高值。
解决方案是将一个索引值附加到最高函数的响应中,以查看前一时期的最高值。
hp1 = highest(high, 20)[1]
或您可以按原样保留作业,并在使用时附加索引
myCond = close > hp1[1] and close > myMA
我邀请您参考 series operator 。
您需要在 plot 函数上方移动条件颜色逻辑。此外,您需要将其作为参数传递给 plot 函数。我已经在下面提供了完整的解决方案。
修改:进一步审核后,您可以改变原来的颜色。你刚刚教我一些东西。干杯!
希望这有帮助