前辈们。 我试图用松树脚本绘制一个满足这种特殊条件的箭头。 条件如下: - 如果低点呈深绿色且其值高于或等于任何最低点 在接下来的五根蜡烛中,向第一根匹配的蜡烛画一个箭头。 - 如果最高点呈深红色且其值低于或等于任何一个的最高点 接下来的五根蜡烛,向第一根匹配的蜡烛画一个箭头。 谢谢大家的解答。
对我来说最困难的部分是确定接下来的五个蜡烛值。 为此,我定义了一个全局范围变量,但我无法使用该全局范围变量的历史数据。 例如。 var int highindex = na ... 如果 highindex[2] > highindex[3] ... 这里,highindex[2], highindex[3] ...具有相同的值,但它们在逻辑上不能具有相同的值。 我已附上目标图片。
您可以使用
ta.pivothigh(high, 0, 5)
和 pivotlow
查找最高/最低极值点,将它们存储在用户定义类型的数组中,然后检查当前蜡烛是否覆盖了这些值中的任何一个。
永远记住,所有 pine 脚本代码都会在每根蜡烛上执行(如果这是最后一根蜡烛,则在每个价格变动时执行)。
最好只在最后一根蜡烛 (
barstate.islast
) 上绘制箭头,并且每次之前都从图表中删除所有箭头。
类似:
<...>
if matching_array.size() > 0
for i = 0 to matching_array.size() - 1
udt_element = matching_array.get(i)
if udt_element.isLow and close > udt_element.high
udt_element_to = bar_index
<...>
line.all.clear()
if barstate.islast and matching_array.size() > 0
for i = 0 to matching_array.size() - 1
udt_element = matching_array.get(i)
line.new(udt_element.from, udt_element.high, udt_element.to, udt_element.high)
最高点的低点具有相同的逻辑。