bool函数逻辑与不正确,求解惑

写了一个判断连续三个数列是否一直上涨或下跌的自定义函数。

将此代码在bar上运行时,直接将三个函数逻辑与在一起,与分别将三个函数赋值到三个变量再逻辑与到一起的结果不同,请老师解惑。

自定义函数代码如下:

If (Up==True)
    {
        If ((Price[1]<Price[0]) And (Price[2]<Price[1]))
        {
            Return True;
        }
    }
            

    Else
    {
        If ((Price[1]>Price[0]) And (Price[2]>Price[1]))
        {
            Return True;
        }
    }
    Return False;

在bar上运行时,如下的结果是False

IF_Down = DL3(Close,False,3)&&DL3(Open,False,3)&&DL3(High,False,3);

如下的结果是True

        IF_Down_C = DL3(Close,False,3);
        IF_Down_O = DL3(Open,False,3); 
        IF_Down_H = DL3(High,False,3);
        //IF_Down = IF_Down_C&&IF_Down_H&&IF_Down_O;

求论坛大佬帮助下我,解惑
图形与编码逻辑不符
求斜率公式提示“潜在逻辑错误”
求解惑
求详解一下bool型序列变量
Bool判断问题
请问委托价格与成交价格之间的逻辑
图表与A函数
求老师解答下代码逻辑
请问crossover函数的成立逻辑是什么?

后面一种写法,是正确的。