我想知道如何在Pine Script版本5中绘制满足特殊条件的箭头

问题描述 投票:0回答:1

前辈们。 我试图用松树脚本绘制一个满足这种特殊条件的箭头。 条件如下: - 如果低点呈深绿色且其值高于或等于任何最低点 在接下来的五根蜡烛中,向第一根匹配的蜡烛画一个箭头。 - 如果最高点呈深红色且其值低于或等于任何一个的最高点 接下来的五根蜡烛,向第一根匹配的蜡烛画一个箭头。 谢谢大家的解答。

对我来说最困难的部分是确定接下来的五个蜡烛值。 为此,我定义了一个全局范围变量,但我无法使用该全局范围变量的历史数据。 例如。 var int highindex = na ... 如果 highindex[2] > highindex[3] ... 这里,highindex[2], highindex[3] ...具有相同的值,但它们在逻辑上不能具有相同的值。 我已附上目标图片。

conditional-statements pine-script draw arrows
1个回答
0
投票

您可以使用

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)

最高点的低点具有相同的逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.