吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 115|回复: 3
收起左侧

[经验求助] 同花顺通达信公式OR和and逻辑的疑问

[复制链接]
timo123 发表于 2026-6-27 18:17
25吾爱币
X_1:=9;
X_2:=30;
X_3:=1;
X_4:=25;
X_5:=75;

X_6:=REF(CLOSE,1);
X_7:=SMA(MAX(CLOSE-X_6,0),X_1,1)/SMA(ABS(CLOSE-X_6),X_1,1)*100;

X_10:=REF(LLV(LOW,X_2),1);
X_11:=LLVBARS(REF(LOW,1),X_2)+1;
X_12:=ABS(REF(HIGH,X_11)-REF(LOW,X_11));
X_13:=REF(HHV(HIGH,X_2),1);
X_14:=HHVBARS(REF(HIGH,1),X_2)+1;
X_15:=ABS(REF(HIGH,X_14)-REF(LOW,X_14));

X_18:=LOW<=X_10 OR LOW-X_10<X_12*X_3;
X_19:=HIGH>=X_13 OR X_13-HIGH<X_15*X_3;
X_20:=REF(X_7,X_14);
X_21:=REF(X_7,X_11);
X_22:=(HIGH+LOW+OPEN+CLOSE)/4;
X_23:=SUM(X_22*VOL,X_14);
X_24:=SUM(VOL,X_14);
X_25:=X_23/X_24;
X_26:=SUM(X_22*VOL,X_11);
X_27:=SUM(VOL,X_11);
X_28:=X_26/X_27;

X_29:=REF(X_7,1)<X_4 OR X_7<X_4 AND X_7>X_21 AND X_18;
X_30:=REF(X_7,1)>X_5 OR X_7>X_5 AND X_7<X_20 AND X_19;

LC:=REF(CLOSE,1);
RSI9:SMA(MAX(CLOSE-LC,0),9,1)/SMA(ABS(CLOSE-LC),9,1)*100,COLORRED,LINETHICK2;
75,COLORGREEN;
25,COLORGREEN;

DRAWICON(X_29,RSI9,1);
DRAWICON(X_30,RSI9,2);

B:IF(X_29,1,0),NODRAW,COLORWHITE;
S:IF(X_30,1,0),NODRAW,COLORWHITE;


比如这段公式的买入信号逻辑是X_29:=REF(X_7,1)<X_4 OR X_7<X_4 AND X_7>X_21 AND X_18;
这样理解是对的吗:
昨日RSI小于25或  当前RSI小于25且当前RSI大于周期最低点RSI 且 最低价低于前低或差一丢丢
这样的话,只要昨日RSI小于25,今天都会无脑发出买入信号
但是实际公式运行的时候我发现,昨日RSI小于25的时候,今日并不会无脑发信号,反而还是要等后面的且逻辑实现,才会发信号。是因为同花顺通达信的逻辑是按先后顺序来算的吗(跟C语言不同)??
那么这个买入信号X_29:=REF(X_7,1)<X_4 OR X_7<X_4 AND X_7>X_21 AND X_18;的实际逻辑应该怎么理解?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

congcongzhidao 发表于 2026-6-28 00:51
你的疑问非常好,这也是很多人在写通达信/同花顺公式时最容易踩的坑之一。

先说结论:

通达信、同花顺公式里的 AND 和 OR 优先级,实际上和 C 语言是一致的。

AND 的优先级高于 OR。

所以

A OR B AND C AND D

实际上等价于

A OR (B AND C AND D)

而不是

(A OR B) AND C AND D


&#11835;

按照正常逻辑解析

你的公式

X_29:=REF(X_7,1)<X_4
      OR
      X_7<X_4
      AND
      X_7>X_21
      AND
      X_18;

真正解析就是

X_29 :=
(
    REF(X_7,1)<25
)
OR
(
    X_7<25
    AND
    X_7>X_21
    AND
    X_18
);

也就是

条件1

昨天RSI<25

或者

条件2

今天RSI<25



今天RSI>前低对应RSI



价格创新低(或者接近创新低)

&#11835;

那为什么昨天RSI<25今天没有信号?

按这个表达式来说,

只要

REF(X_7,1)<25

成立,

后面三个条件应该完全不用看。

也就是说

TRUE OR FALSE

就是 TRUE。

理论上今天应该画图标。

但是你发现没有。

这说明问题并不是 OR 优先级。

&#11835;

真正的问题其实在这里

你画图标的是

DRAWICON(X_29,RSI9,1);



RSI9:
SMA(MAX(CLOSE-LC,0),9,1)
/
SMA(ABS(CLOSE-LC),9,1)
*100;

这里的

RSI9



X_7

虽然公式一样,

但是很多平台在

DRAWICON(条件,价格,图标)

的时候,

如果第二个参数

RSI9

是无效值(例如前几根K线RSI未完全有效)或者存在某些绘图限制,就可能导致图标没有显示。

不过你说的是很多地方都没有出现。

那还有另一种可能。

&#11835;

更大的可能:X_18 根本不是你理解的

来看

X_18:=LOW<=X_10
      OR
      LOW-X_10<X_12*X_3;

其中

X_10:=REF(LLV(LOW,30),1);

注意:

这里

LOW-X_10

如果

LOW>X_10

例如

LOW=10.1

X_10=10

那么

LOW-X_10=0.1

如果

X_12=2

那么

0.1<2

成立。

所以

X_18几乎天天成立。

它并不是

“创新低”

而是

“离前低很近”

&#11835;

但是这仍然解释不了昨天RSI<25为什么没信号

所以这里要考虑另一个事实。

很多人不知道:

通达信公式存在”未来数据过滤”。



REF(X_7,X_11)

这里

X_11

不是常数。

它是

LLVBARS(...)

得到的。

也就是说

REF(X_7,X_11)

属于

动态引用。



LLVBARS

今天和昨天计算出来的值并不一样。

整个公式实际上每一天都会重新回算。

因此

X_21

不是固定值。

&#11835;

还有一个很多人忽略的地方

有些公式平台(尤其同花顺)对于

OR

不是严格短路运算。

也就是说

即使左边已经TRUE,

右边也照样计算。

例如

1 OR (0/0)

右边仍会参与计算。

虽然最终仍然TRUE,

但是如果右边出现

NULL

DRAWNULL

无效值

未来函数

等情况,

整个表达式可能变成

无效。

这一点和 C 语言不同。

C语言是真正短路。

公式语言通常不是。

&#11835;

我建议你做一个实验(最快验证)



DRAWICON(X_29,RSI9,1);

改成

DRAWICON(REF(X_7,1)<25,RSI9,1);

如果这样

昨天RSI<25

今天一定画图。

说明

左边条件没问题。

&#11835;

再改

DRAWICON(
REF(X_7,1)<25
OR
(
X_7<25
AND
X_7>X_21
AND
X_18
),
RSI9,
1
);

如果还是一样,

说明OR优先级没有问题。

&#11835;

如果还是不画,

那说明不是逻辑,

而是

REF(X_7,1)

X_21

X_18

其中某一个在当日并不是你想象的值。

&#11835;

我怀疑还有一种情况

如果这段公式是别人写的,我比较怀疑原作者实际上想表达的是下面这个逻辑:

(
REF(X_7,1)<25
OR
X_7<25
)
AND
X_7>X_21
AND
X_18

也就是:

昨天或今天 RSI 进入超卖区,同时 RSI 相比前低对应 RSI 出现抬高,并且价格创出(或接近)前低。

这是一个典型的 RSI 底背离 筛选逻辑,在技术分析中比前一种写法更合理。如果作者本意如此,那么原公式缺少括号,会导致逻辑与意图不一致。

&#11835;

我建议下一步怎么确认

为了确定到底是平台的解析还是公式其他变量导致的,最直接的方法是告诉我:
        1.        这是通达信还是同花顺公式?(虽然两者语法类似,但实现细节有差异)
        2.        发一张出现疑问的K线截图(最好能看到 RSI 副图和买点图标)。

我可以把这段公式逐根K线推演,把每一天的 X_7、X_11、X_18、X_21、X_29 的值全部列出来,很快就能定位到底是哪一个条件没有满足,而不是凭猜测分析。
 楼主| timo123 发表于 2026-6-29 13:12
congcongzhidao 发表于 2026-6-28 00:51
你的疑问非常好,这也是很多人在写通达信/同花顺公式时最容易踩的坑之一。

先说结论:

你这AI味儿也太重了吧
congcongzhidao 发表于 2026-6-29 13:15
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-6-30 05:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表