「91」把所有条件符合时的提示,集中到一个副图指标里
大家好!我是股市帅锅。今天是第91篇教程,离100篇的目标越来越近了。内容很多,干货也很多,为了方便大家查找和检索,这几天我把所有我写的知识型内容整理成了目录,并集中在一个链接里,大家可以体验一下,是不是很方便?
以后大家在学习股票指标公式编写时,可以通过本链接查找帅锅写过的所有教程,这就相当于一个简单的学习资料库了。
每次我提到指标公式,总会有一些人质疑,你凭这些东西发财了吗?在我一开始写教程的时候,我就说过,我教的是一种技能,学这个技能是为了有朝一日,能把自己的思路逻辑转化为代码,方便选股和盯盘。这里我们要注意先后顺序,先有思路,后有指标公式,而不是学会了编写指标,就赚到钱了。按照这个逻辑的话,程序员个个都是股神了,所以不是这么回事。总会有人,想自己学习编写指标公式,以前网上都没有系统的教程,而我做了这件事情,让想学习的人,有了可以参考的资料,这就是教程的目的。
学习内容:
今天的内容属于技巧性的,不属于思路模型。
有这样一个场景:当股票走势符合某个条件时,我们在主图上标记文字或图标;当符合另一个条件时,标记另外的提示,有时候我们需要提示很多条件,一旦标记多了之后,主图会变得很凌乱,会给盯盘带来负面的视觉效果,所以我就想着把所有的提示,都集中到一个副图指标里。
这样一来,我们的主图是非常干净整洁的,除了K线,就是几条均线,并没有其他多余的东西。那么怎么样把所有的提示集中到一个副图指标里呢?我们先来看看演示效果图。
上图中,这个黄绿色调的副图指标,就是我们今天要学习编写的,我用了三行,每行提示一个条件。比如:最下面的一行,红色M字母表示MACD金叉,黑色M字母表示MACD死叉;中间这一行,红色K字母表示KDJ金叉,黑色K字母表示KDJ死叉;最上面一行,红色“均”字表示5均线金叉10均线,黑色“均”字表示5均线死叉10均线。
这样提示信号,集中到一个副图指标后,界面非常干净,盯盘也非常方便。上面的条件,我只是为了方便演示,用了最简单的条件,复杂的条件也是一样的,下面我们来演示如何编写。
编程和测试:
----------
(1>0,0,1,4,0),;
(1>0,1,2,4,0),;
(1>0,2,3,4,0),;
{代码共分四部分,第一部分是画背景,即三行色带,第二、三、四部分分别表示满足不同的三个条件时,在不同的色带里标记文字,画色带用函数,在括号里,我跟的条件是1>0,这个条件肯定满足,所以背景是任何条件下都画的,三句代码,画线的起点和终点分别是0和1,1和2,2和3,表示最下面一行,中行一行,最上面一行,色带的宽度为4,看起来是一行,其实是宽度为4的色柱拼起来的,把K线放大足够大时,是可以看到拼接的缝隙的}
SHORT:=12;LONG:=26;MID:=9;
DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIF,MID);
MACD:=(DIF-DEA)*2;
(CROSS(DIF,DEA),0.4,'M');
(CROSS(DEA,DIF),0.4,'M');
{这几句代码,老粉丝如果从头开始学下来的,一看就懂了,MACD金叉时,在0.4的位置写M字母,涂红色,为什么是0.4?因为我上面设置的最下面一行是0到1,把M写在0.4的高度,就差不多在色带的中间,同理,死叉时画黑色的字母M}
N:=9;M1:=3;M2:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
J:=3*K-2*D;
(CROSS(J,K),1.4,'K');
(CROSS(K,J),1.4,'K');
{同理同上,我们只要把条件的源码都复制过来,所有的内容全部改为赋值,赋值就隐藏在了这个指标的背后,界面上就只显示符合条件时的提示。需要注意的是,画线的位置是1.4,和上面的0.4不同,这样文字就写到了第二行,下面用的是2.4,文字就写到了最上面哪一行}
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
(CROSS(MA5,MA10),2.4,'均');
(CROSS(MA10,MA5),2.4,'均');
-----------
我们把上面分割线内的代码做成一个副图指标。如果复制文中的代码有误,请点击我的头像,关注我,点私信,发送私信“第91篇配套代码”,系统会自动回复本篇对应的指标代码给你。
思维延伸:
(1>0,0,1,4,0),;
(1>0,1,2,4,0),;
(1>0,2,3,4,0),;
在这几句画背景的代码里,我这里演示了三行,如果需要更多行,可以不断的往上加,每句的画色柱起点和重点,依次加1就行,颜色最好能够依次间隔,这样看起来界面更清晰,比如我再加两行,修改的文字我加粗了:
(1>0,3,4,4,0),;
(1>0,4,5,4,0),;
我来说两句