名字里带「启动」两个字的指标,天生容易被当成抄底工具——听上去像是能在底部先买一步。这份《TY_紫晶启动》一次给了三份源码:主图 95 条、幅图 15 条、同名选股 10 条,加起来 5,000 多个字符。
装上去打开主图,画面会变成这样:一根橙红色的曲线穿行在 K 线中间,收盘价站上去它变红、掉下来它变绿;K 线被整个重画了一遍,阳线是带渐变的实心红柱,阴线是黄绿渐变;少数几根 K 线底下会冒出一行黄字「底部启动」。
这份指标值得认真拆一遍,原因不在名字,在份量分布:95 条语句里,真正参与判断的只有 4 条,剩下 76 条全在画 K 线。也就是说,你看到的那些漂亮柱子,和信号是两码事。
我拿 5,094 只股票、7,123,443 个交易日把信号跑了一遍:一共 69,376 个信号,分布在 1,529 个交易日里,平均每个交易日 45 个。它一点都不稀有。更值得说的是,把买入价定在信号次日开盘、持满 20 个交易日后卖出,平均收益是 −1.46%,而同期全样本的平均是 +0.92%。
图 1|信号按月分布。横轴是月份、纵轴是当月信号数,虚线为月均 826 个。2020 年以后几乎每个月都有四位数,说明这不是偶发形态
先把结论摆在前面:这根WEKR 线本身有参考价值,但「涨 7% 以上 + 当天上穿WEKR 线」这个组合,是把两个各自都略跑输的条件叠在一起,叠完更差。下面逐条对上号,再说这个结论是怎么算出来的。
一、三份源码,三种用途
先分清这三份各自干什么① 主图(95 条):算一根WEKR、给它双色、重画 K 线、在信号处标「底部启动」、四角写上板块名② 幅图(15 条):一套完全独立的信号——涨幅 5% + 上影很小 + 收涨,再叠一个 30 日只留第一次的过滤,外加一条「tao顶」的顶部提示③ 选股(10 条):主图那 4 条判断的原样照搬,去掉全部画图语句注意:三份里只有主图和选股是同一套逻辑;幅图是另一套,跟主图信号不是一回事。这一点很容易被忽略。名字都叫「紫晶启动」,但幅图那个「↙底部启动」的触发条件,跟主图上标「底部启动」的条件完全不同:主图要的是「涨 7% 以上 + 上穿WEKR 线」,幅图要的是「涨 5% 以上 + 上影不到 1% + 30 日内首现」。两份装上去,同一个股票同一天可能一个标一个不标,这很正常,不是装错了。
二、主图逐层拆解
1. 主干只有三行,先算出这根线
ZBJN1:=REF(EMA((HIGH+LOW+CLOSE)/3,10),1);ZBJN2:=EMA(HHV(HIGH,10),3);ZBJN3:=EMA(LLV(LOW,10),3);三行中间量:ZBJN1 是典型价(最高+最低+收盘)除以 3 的 10 日 EMA 再取前一日;ZBJN2 是 10 日最高价的 EMA;ZBJN3 是 10 日最低价的 EMA。注意 ZBJN1 外面多套了一层 REF(...,1)——意思是用昨天的均价,不用今天的。这一步让这条线对当天的大涨不敏感,迟缓一天。
2. WEKR:这条线就是「主力轨迹」
WEKR:EMA(ZBJN1*2-ZBJN3,5),COLORRED,LINETHICK3;WEKR 是一条输出线(用的是:而不是:=),公式是 EMA(ZBJN1*2-ZBJN3,5)——把「昨日典型价乘 2 减去 10 日最低价的均值」,再做 5 日平滑。这个结构在通达信指标里很常见,俗称主力轨迹线:因为减掉的是低位,结果会明显高于当天的典型价,所以它平时就挂在价格上方。
这里有一处要提醒,但我不改它。常见的写法是 ZBJN2*2-ZBJN3(取最高价那条),这份原文写的是 ZBJN1*2-ZBJN3(取典型价那条)。两条都是合法写法,线的高低位置不同,信号数量也会不同。原文怎么写就怎么用,我一个字没动——但如果你按别的文章复现出来线不一样,原因就在这一处。3. 两行 IF,把一条线拆成红绿两段
IF(CLOSE>WEKR,WEKR,DRAWNULL),COLORRED,LINETHICK3;IF(CLOSE< WEKR,WEKR,DRAWNULL),COLORGREEN,LINETHICK3;这是通达信里给一条线分段上色的常规做法:当收盘在 WEKR 之上,IF 返回 WEKR 本身、画红色;在它之下时返回 DRAWNULL(空值,等于不画),于是红线断开,由下一行画成绿色。所以画面上那条线会随着价格上下穿越而变红变绿,颜色本身就表示位置关系。
看懂这一层,主图一半就懂了。WEKR 是一条「价格上方的参照线」,红 = 收盘站上去了,绿 = 收盘掉下来了。所有依赖它的判断,本质都是「今天有没有站上去」。4. DRAWKLINE:为什么 K 线长得跟平时不一样
DRAWKLINE(HIGH,OPEN,LOW,CLOSE);DRAWKLINE(HIGH,OPEN,LOW,CLOSE) 这一句会把主图自带的 K 线整个重画一遍。参数顺序是「最高、开盘、最低、收盘」,照这个顺序填进去,后面所有 STICKLINE 才有地方落笔。写完这一句,你看到的就不再是软件默认的空心柱,而是后面那 76 条语句画出来的实心柱。
5. 四道判断,构成「底部启动」
ZBJN4:=DATE< 1390720;ZBJN5:=(REF(CLOSE,1)-CLOSE)/REF(CLOSE,1)*100>=10;STICKLINE(ZBJN5,CLOSE,OPEN,2,0),COLORGREEN;ZBJN6:=DMA(CLOSE,VOL/CAPITAL);ZBJN7:=(CLOSE/REF(CLOSE,1)-1)*100>7;ZBJN8:=(CLOSE/REF(CLOSE,1)-1)*100<=(-3);四条中间量,各有分工:ZBJN4:DATE< 1390720。通达信的 DATE 是「1900 年起的年月日」,所以 1390720 就是 2039 年 7 月 20 日。这道门槛等于给指标设了个到期日,按现在的日期算它永远是成立的——留着不影响结果,2039 年之后才会失效。ZBJN5:跌 10% 以上((昨收-今收)/昨收*100>=10)。用来给大跌的阴线单独上绿柱。ZBJN7:涨 7% 以上。这才是信号的核心门槛。ZBJN6 和 ZBJN8 定义了却没用上:ZBJN6 是 DMA(CLOSE,VOL/CAPITAL) 的换手加权均价,ZBJN8 是「跌 3% 以上」,两条算完就搁在那里,后面的语句一次都没引用。原文如此,我照抄不删。
6. 信号本体:两句话
ZBJN9:=OPEN< WEKR AND CLOSE>WEKR AND ZBJN4 AND ZBJN7;STICKLINE(ZBJN9,OPEN,CLOSE,4,0),COLORRED;DRAWTEXT(ZBJN9,LOW*0.96,'底部启动'),COLORYELLOW;ZBJN9 是四个条件的交集:开盘在WEKR 线下方、收盘在WEKR 线上方、时间护栏成立、当天涨幅超过 7%。前两个条件合起来就是「今天向上穿越了这条线」,所以这个信号的完整含义是——今天放量大涨 7% 以上,并且一把冲过了WEKR 线。在低开高走的阳线上画红色粗柱(宽度 4),并在最低价 0.96 倍处写「底部启动」。
这行黄字的位置是 LOW*0.96,也就是当天最低价再往下 4%。遇到一字板或者长下影线的票,这个位置会跑到画面外,字就看不见了——不是没触发,是画在屏幕外。7. 剩下 76 条:全在画 K 线
从第 17 条开始到第 91 条,一共 75 条 STICKLINE,加 DRAWKLINE 那一条,就是那 76 条画图语句。它们的写法一模一样,只是宽度从 0.05 一路递进到 3.5,靠层层叠加做出渐变效果。
STICKLINE(CLOSE>OPEN,HIGH,LOW,0.01,0),COLORRED;STICKLINE(CLOSE>OPEN,HIGH,LOW,0,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,3.5,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,3.4,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,3.3,0),COLORRED;(同型共 13 条,宽度从 3.3 逐级递减到 0.05,颜色全部是 COLORRED,这里不再重复列。)
这一组负责阳线:先用 0.01 和 0 两根画上下影线,再用 13 根宽度递减的红柱叠出实体渐变。同样的套路还有三组:一字板与涨停、收盘涨幅 ≥6.98%、开盘涨幅 >4.99%,各 15 条。这四组的末端几条换了颜色(青色、亮黄绿),所以你会看到某些涨停 K 线的边缘泛青。
STICKLINE(CLOSE< OPEN,HIGH,LOW,0.01,0),COLORAA4433;STICKLINE(CLOSE< OPEN,LOW,HIGH,0,0),COLORAABB33;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,3.5,0),COLORAA4433;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,3.4,0),COLORAA5533;(同型共 11 条,颜色从 COLORAA6633 逐级变亮到 COLORAAF633,这里不再重复列。)
这一组负责阴线:同样是先画影线再叠实体,但颜色用的是 COLORAA4433 到 COLORAAF633 这一串,从暗红慢慢转向黄绿——这就是阴线看起来「黄绿渐变」的原因。
8. 四角文字
DRAWTEXT_FIX(1,0.05,0,0,GNBLOCK),COLORMAGENTA;DRAWTEXT_FIX(1,0.65,0,0,2),COLORFF6000;DRAWTEXT_FIX(1,0.75,0,0,HYBLOCK),COLORRED;DRAWTEXT_FIX(1,0.85,0,0,DYBLOCK),COLORRED;最后四条 DRAWTEXT_FIX 是固定在画面上的文字,不随 K 线移动:左上角写板块(GNBLOCK)、右上角附近写一个数字 2、右侧写行业(HYBLOCK)和地域(DYBLOCK)。注意第二条的内容是裸的 2,不是变量——它会在画面上固定显示一个「2」。原文如此。
9. 幅图:另一套条件,别和主图混
G1:=CLOSE;G2:=LOW;G3:=OPEN;G4:=HIGH;ZBJN1:=G1/REF(G1,1)>1.05 AND G4/G1<1.01 AND G1>REF(G1,1);ZBJN2:=FILTER(ZBJN1,30);幅图先用四行把开高低收改个名字(G1 到 G4,其中 G3 也就是开盘价,后面没再用到),然后是一套完全独立的判断:涨幅超 5%、上影不到 1%(G4/G1<1.01)、且今天收涨。三条同时成立算一次「启动苗头」。
FILTER(ZBJN1,30) 的意思是:30 个交易日内只保留第一次成立,后面的都抹掉。所以幅图上那个「↙底部启动」最多一个月出现一次,这跟主图那个每天可能几十个的信号完全不是一个量级。
ZBJN3:=(G1-LLV(G1,10))/(HHV(G1,10)-LLV(G1,10));ZBJN4:=CROSS(ZBJN3,0.05)*3 AND FILTER(G1/REF(G1,1)>1.048 AND C=H AND BETWEEN(FORCAST(VOL,4),0.2*FORCAST(VOL,12),2.1*FORCAST(VOL,12)),28);第二组条件更严:RSV 从 0.05 以下上穿(CROSS(ZBJN3,0.05) 说明短期内价格几乎贴在地板上),同时要求涨幅超 4.8%、收盘等于最高价、成交量在未来 5 日均量的 0.2 到 2.1 倍之间。中间那个 BETWEEN(FORCAST(...)) 是在给量能设上下限——既不能缩量,也不能突然暴量。
DRAWTEXT(ZBJN2,70,'↙底部启动'),COLORYELLOW;ZBJN5:=LLV(G2,10);ZBJN6:=HHV(G4,25);ZBJN7:=EMA(((G1-ZBJN5)/(ZBJN6-ZBJN5))*4,4);DRAWTEXT((CROSS(3.6,ZBJN7)),85,'↙tao顶'),LINETHICK1,COLORGREEN;最后一段画的是顶部提示:用 25 日最高最低算出一个 0~4 的百分位,再做 4 日 EMA,当它从上方掉回 3.6 以下(CROSS(3.6,ZBJN7)),就在 85 的位置标「↙tao顶」。注意这个条件是反的:3.6 在上、指标值在下,属于「从高位回落」的写法。
三、实测:把条件拆开,问题就露出来了
说信号「跑输」,得有个对照。我的做法是:每次出信号,都假设在次日开盘买入,然后数第 1、3、5、10、20 个交易日收盘能卖多少;再拿全样本里「每一天都这么买」的平均收益做基准。两者一比,就看得出这个信号到底是加分还是减分。
本地日线没有做除权处理,所以我另外剔除了窗口内出现「单日跌幅超过 15%」的样本(这种跌幅在主板不可能出现,只可能是除权或长期停牌复牌),共 2,144 个、占 3.09%,基准同口径一起剔。剩下的才是下面这些数字。
五个持有期,信号全都低于基准,而且越拿越差:1 日几乎打平(差 0.07 个百分点),到 20 日差到 2.38 个百分点,胜率从 45.1% 掉到 37.7%,基准却一直稳在 47% 上下。这不太像「没效果」,更像是追涨之后被均值回归。
图 2|上:各持有期信号与基准的平均收益(双柱);下:对应胜率。柱子在零轴下方逐级变长,胜率同步下滑,基准那条灰线几乎不动
那到底是哪一条条件在拖后腿?我把两个条件拆开单独跑了一遍,同样是 20 日口径:
答案很清楚:两条条件各自都轻微跑输,叠在一起更差。单独上穿WEKR 线,20 日还能剩 +0.13%;单独追 7% 的涨幅,是 −0.18%;两条一起要,掉到 −1.46%。这不是某一处写错了,是方向本身的问题——「今天已经涨了 7% 以上」这个事实,本身就把后面 20 天的空间消耗掉了一部分。
图 3|左:按信号当日涨幅分三档的 20 日均值;右:按当日量比(成交量/5 日均量)分三档。两图纵轴同一刻度,柱子全在零轴下方,但档与档之间方向一致
分档的结果更能说明问题。按涨幅拆:涨 7~8% 的平均 −0.25%,8~9% 是 −0.73%,超过 9% 的直接掉到 −1.88%——冲得越猛,后面回得越多。按量比拆则反过来:缩量启动最差(−4.21%),放量到 2 倍以上反而只 −0.63%。两个方向都能自洽:缩量却大涨,往往是消息或情绪推的,没有资金接力;放量上去的,至少还有人在里面。
这三个数字怎么看:① 别只盯「胜率」——如果全市场同一天买入的胜率是 47%,而信号只有 37%,那 37% 就是落后,不是「有一定把握」;② 20 日用 −1.46% 这个数,别忘了它是未复权口径,只适合用来比方向,不适合当精确收益;③ 分档表的价值在于单调——三档一路排下来方向一致,才说明不是噪音。四、实战图例:两个长得几乎一样的信号,结果相反
光看统计容易抽象,挑两张图对着看更清楚。下面两个信号,当天涨幅都在 7.7%~8.4%,量比都在 1.5 左右,都满足「低开、冲过WEKR 线、收在线上」——条件上几乎一样。
图 4|鑫源智造(sh600615)2023-11-15。橙线为WEKR,蓝色竖虚线是信号日,右侧红点标出 20 个交易日后的收盘价
看图时留意三处:① 信号日之前,价格在WEKR 线下方磨了将近一个月,线是压着的;② 信号那天一根大阳线直接穿上去,之后WEKR 线自己也开始上翘——线在跟着价格走,这是它有用的地方;③ 20 个交易日后收在 13 元以上,比信号日高出 19%。图 5|晶华微(sh688130)2023-04-14。同样的条件、同样的形态位置,但信号日正好落在一段上涨的末端
这张要看的正好相反:① 信号日之前价格已经连涨两周,WEKR 线早就被踩在脚下了;② 那根大阳线是加速段的最后一根,不是起点;③ 之后一路回落到 42 元附近,20 日 −19%。同一套条件,在第 2 张图里就是标准的「追高」。这两张图放在一起,正好解释了为什么 20 个交易日会输 2.38 个百分点:信号本身不区分「从下面刚穿上来」和「已经涨了一路再穿一次」,而后者在样本里占的比例并不小。
五、三份源码的差异对比
把三份逐条对上号,差异一目了然。这张表只做对照,完整源码统一放在最后一节。
| | | |
|---|
| | | |
| | | |
| | 涨幅 >5% + 上影 <1% + 收涨,30 日首现 | |
| 76 条(K 线重绘 + 三段渐变 + 四角文字) | 2 条 STICKLINE + 2 条 DRAWTEXT | |
| | | WEKR 那行带 COLOR / LINETHICK3 |
| | | |
| | | |
选股版有一处形式上的瑕疵:第 4 行 WEKR:=EMA(...) 用的是 :=(中间量),后面却跟着 ,COLORMAGENTA,LINETHICK3 两个显示参数。中间量本来不画线,这两个参数不会生效——通达信能正常保存和运行,不报错,只是这两个参数是白写的。原文如此,我没有删。六、实战使用注意事项
① 想拿信号,用选股版就够。10 条语句,装进「条件选股公式」。主图那 76 条画图语句跟今天买不买没有任何关系,装主图是为了看线,不是为了选股。
② 别把「底部启动」当抄底。它的字面条件里没有一条要求价格在低位——只要有「低开、涨 7% 以上、收上WEKR 线」,哪怕已经翻了一倍,它照样标。上面第四节的第二张图就是这个情形。
③ 用「线」不用「字」。这份指标真正有价值的是 WEKR 这条线的位置与方向:价格在线下磨、线走平,再突然放量穿上去,是第一张图那种形态;价格已经在线上一段、线也上翘很久了,再穿一次意义就小得多。先看线在第几波,再看信号。
④ 两个「定义了没用」的变量:主图里 ZBJN6(DMA(CLOSE,VOL/CAPITAL))和 ZBJN8(跌 3% 以上)算完就没再被引用,幅图里 G3(开盘价)也是。它们不影响任何结果,看着碍眼可以不管,但别以为删掉没影响就一定更干净——删了跟原文就不是同一份了。
⑤ ZBJN4 那道时间护栏要留意。DATE< 1390720 对应 2039-07-20,现在恒成立。要是哪天你在别的指标里看到类似 DATE<12xxxxx 的写法,那多半是「设了个到期日但早就过了」,这时候整条判断会变成恒假,指标一声不响地失效。
想把这份指标用在更长周期上,只有一条建议:先把「涨幅 >7%」这一条改掉再谈。它是整份公式里最伤的一条——上面拆开跑的结果摆在那里。真要动,改成「涨幅在 3%~7% 之间」或者干脆去掉、只留「上穿WEKR 线」,信号数量会翻很多倍,性质也从「追涨」变回「跟线」。但改完就是另一份指标了,本文所有数字都不再适用——这一点得说在前面。七、完整源码
① 主图(95 条语句,一整行)
ZBJN1:=REF(EMA((HIGH+LOW+CLOSE)/3,10),1);ZBJN2:=EMA(HHV(HIGH,10),3);ZBJN3:=EMA(LLV(LOW,10),3);WEKR:EMA(ZBJN1*2-ZBJN3,5),COLORRED,LINETHICK3;IF(CLOSE>WEKR,WEKR,DRAWNULL),COLORRED,LINETHICK3;IF(CLOSE< WEKR,WEKR,DRAWNULL),COLORGREEN,LINETHICK3;DRAWKLINE(HIGH,OPEN,LOW,CLOSE);ZBJN4:=DATE< 1390720;ZBJN5:=(REF(CLOSE,1)-CLOSE)/REF(CLOSE,1)*100>=10;STICKLINE(ZBJN5,CLOSE,OPEN,2,0),COLORGREEN;ZBJN6:=DMA(CLOSE,VOL/CAPITAL);ZBJN7:=(CLOSE/REF(CLOSE,1)-1)*100>7;ZBJN8:=(CLOSE/REF(CLOSE,1)-1)*100<=(-3);ZBJN9:=OPEN< WEKR AND CLOSE>WEKR AND ZBJN4 AND ZBJN7;STICKLINE(ZBJN9,OPEN,CLOSE,4,0),COLORRED;DRAWTEXT(ZBJN9,LOW*0.96,'底部启动'),COLORYELLOW;STICKLINE(CLOSE>OPEN,HIGH,LOW,0.01,0),COLORRED;STICKLINE(CLOSE>OPEN,HIGH,LOW,0,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,3.5,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,3.4,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,3.3,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,3.2,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,3.1,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,2.8,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,2.5,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,2.1,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,1.7,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,1.2,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.7,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.2,0),COLORRED;STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.05,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,LOW,HIGH,0,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,LOW,HIGH,0,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,3.5,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,3.4,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,3.3,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,3.2,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,3.1,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,2.8,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,2.5,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,2.1,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,1.7,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,1.2,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,0.7,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,0.2,0),COLORRED;STICKLINE(CLOSE=OPEN OR (CLOSE+0.005-REF(CLOSE,1))/REF(CLOSE,1)*100>=10,CLOSE,OPEN,0.05,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,0,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,0,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,3.5,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,3.4,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,3.3,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,3.2,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,3.1,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,2.8,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,2.5,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,2.1,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,1.7,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,1.2,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,0.7,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,0.2,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>=6.98,CLOSE,CLOSE*1,0.05,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,0,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,0,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,3.5,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,3.4,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,3.3,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,3.2,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,3.1,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,2.8,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,2.5,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,2.1,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,1.7,0),COLORRED;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,1.2,0),COLOR00DDEE;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,0.7,0),COLOR00EEEE;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,0.2,0),COLOR00EEFF;STICKLINE((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>4.99,OPEN,OPEN*1,0.05,0),COLOR00F3FF;STICKLINE(CLOSE< OPEN,HIGH,LOW,0.01,0),COLORAA4433;STICKLINE(CLOSE< OPEN,LOW,HIGH,0,0),COLORAABB33;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,3.5,0),COLORAA4433;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,3.4,0),COLORAA5533;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,3.3,0),COLORAA6633;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,3.2,0),COLORAA7733;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,3.1,0),COLORAA8833;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,2.8,0),COLORAA9933;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,2.5,0),COLORAAAA33;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,2.1,0),COLORAABB33;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,1.7,0),COLORAACC33;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,1.2,0),COLORAADD33;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,0.7,0),COLORAAE933;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,0.2,0),COLORAAF333;STICKLINE(CLOSE< OPEN,CLOSE,OPEN,0.05,0),COLORAAF633;DRAWTEXT_FIX(1,0.05,0,0,GNBLOCK),COLORMAGENTA;DRAWTEXT_FIX(1,0.65,0,0,2),COLORFF6000;DRAWTEXT_FIX(1,0.75,0,0,HYBLOCK),COLORRED;DRAWTEXT_FIX(1,0.85,0,0,DYBLOCK),COLORRED;② 幅图(15 条语句,一整行)
G1:=CLOSE;G2:=LOW;G3:=OPEN;G4:=HIGH;ZBJN1:=G1/REF(G1,1)>1.05 AND G4/G1<1.01 AND G1>REF(G1,1);ZBJN2:=FILTER(ZBJN1,30);STICKLINE(ZBJN2,1,60,2,0),COLORRED;ZBJN3:=(G1-LLV(G1,10))/(HHV(G1,10)-LLV(G1,10));ZBJN4:=CROSS(ZBJN3,0.05)*3 AND FILTER(G1/REF(G1,1)>1.048 AND C=H AND BETWEEN(FORCAST(VOL,4),0.2*FORCAST(VOL,12),2.1*FORCAST(VOL,12)),28);STICKLINE(ZBJN4,0,80,2,0),COLORRED;DRAWTEXT(ZBJN2,70,'↙底部启动'),COLORYELLOW;ZBJN5:=LLV(G2,10);ZBJN6:=HHV(G4,25);ZBJN7:=EMA(((G1-ZBJN5)/(ZBJN6-ZBJN5))*4,4);DRAWTEXT((CROSS(3.6,ZBJN7)),85,'↙tao顶'),LINETHICK1,COLORGREEN;③ 选股(10 条语句,一整行)
ZBJN1:=REF(EMA((HIGH+LOW+CLOSE)/3,10),1);ZBJN2:=EMA(HHV(HIGH,10),3);ZBJN3:=EMA(LLV(LOW,10),3);WEKR:=EMA(ZBJN1*2-ZBJN3,5),COLORMAGENTA,LINETHICK3;ZBJN4:=DATE< 1390720;ZBJN5:=(REF(CLOSE,1)-CLOSE)/REF(CLOSE,1)*100>=10;ZBJN6:=DMA(CLOSE,VOL/CAPITAL);ZBJN7:=(CLOSE/REF(CLOSE,1)-1)*100>7;ZBJN8:=(CLOSE/REF(CLOSE,1)-1)*100<=(-3);XG:OPEN< WEKR AND CLOSE>WEKR AND ZBJN4 AND ZBJN7;复制说明:上面三段都是从原文逐字复制,没有加过一个换行、没有改过一个字符,连最前面的 {...源码如下} 标记都原样保留。手机屏幕上这个块会自动折行——折行不代表换行,语句边界一律看分号。主图装进「主图指标」,幅图装进「副图指标」,第三份装进「条件选股公式」。引号里的 '底部启动'、'↙tao顶' 是画面上显示的文字,那个 ↙ 符号在通达信里能正常显示,别删。互动问答
使用指标时遇到任何问题(安装、信号解读、参数怎么改),欢迎在留言区提问,我会第一时间解答。
也可以说说:你装过哪些名字很响、实测却不占优的指标?跑出来是什么结果?
制作不易,麻烦点亮右下角的 "赞" + "在看" 支持一下。
转发给身边朋友,一起交流进步。
喜欢我的分享,记得关注我,持续更新干货。
免责声明
本文所有源码及解读内容仅为通达信公式编程教学,目的在于帮助读者理解指标编写逻辑和函数用法。文中提到的任何指标名称、信号条件、参数设置均不构成任何投资建议。
指标是辅助分析工具,其信号仅反映特定数学条件是否满足,不代表对未来走势的预测。文中统计数字基于未复权本地日线、已剔除疑似除权样本,仅用于说明方向,不构成收益承诺。实际使用时请务必结合自身判断和其他分析方法,理性决策。