总目录
第一讲:认识公式编辑器
第二讲:公式编写的基础函数
第三讲:认识颜色符号或绘图函数
第四讲:源码的引入和修改
第五讲:各种形态的描述
第六讲:均线(选股)的基本形态
第七讲:在源码中提取选股公式
第八讲:函数的综合运用
第九讲:常用函数示例
第十讲:系统常用指标原理解析
第一讲:认识公式编辑器
公式编辑器是导入源码和进行编写指标的窗口。公式编辑器共分4种,分别是:
1、技术指标公式编辑器;
2、条件选股公式编辑器;
3、交易系统公式编辑器;
4、五彩K线公式编辑器。
由于这几种编辑器的展开和使用大同小异。所以,本文仅以技术指标公式编辑器为例加以说明。
由于目前各种股软的区别,不仅有些函数不通用,编辑器的打开方式也略有区别。本讲就是告诉大家如何展开公式编辑器。
第二讲:公式编写的基础函数
打开技术指标公式,我们最常见的,它的组成不外乎两种情况,一是K线,二是均线。其他诸如柱状线,彩带,分段线等等,都是在K线或均线基础上的延伸或变形。为此,我们先熟悉一下构成这两种状态的基本函数。
一、K线函数
非常简单,大家都可能熟知。作为基础,还是说明一下。
1、开盘价:OPEN 可简写为 O
2、最高价:HIGH 可简写为 H
3、最低价:LOW 可简写为 L
4、收盘价:CLOSE 可简写为 C
有了这4个函数,就可构成一根K线了。比如:收盘价小于开盘价,即阴线:C<o; 收阳线则互为相反。
那么长下影的光头阳线,即 T 形线呢?理解了原理,也很简单。一要以最高价收盘(否则有上影),二要开盘价大于最低价。所以有如下表示:C=H AND O>L;这里我们没有考虑下影的长度和 T 字上边一横(实体部分)的宽度。
习题:一根光头阳线,实体部分小于5分钱,下影超过实体的两倍,如何表述
特别提示:编辑指标必须在英文状态下输入。其中运用的数学符号,包括加减乘除、分号,引号等(+ - * / ; "" ''''><#)也必须在英文状态下输入。
二、均线函数
单根K线的形态是相当枯燥的。尤其在主图里。配合以均线等形式就会丰富多采,或者更利于我们从中发现规律和分析问题。这就需要均线函数来解决了。
最常见的:
1、MA(X,N),求X的N周期简单移动平均值。
算法:(X1+X2+X3+...+Xn)/N
例如:MA(CLOSE,20),表示求20日均价。
2、EMA(X,N),求X的N周期指数平滑移动平均。
算法: 若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y'']/(N+1), 其中Y''表示上一周期Y值。
例如:EMA(CLOSE,20),表示求20日指数平滑均价。
3、SMA(X,N,M),求X的N周期移动平均,M为权重。
算法: 若Y=SMA(X,N,M) 则 Y=(M*X+(N-M)*Y'')/N, 其中Y''表示上一周期Y值,N必须大于M。
例如:SMA(CLOSE,20,1),表示求20日移动平均价。
这三个均线函数在股软中是通用的。关于它们的区别,开始学习时不必深究。其实数值区别也不是很大。要均线真实反映每天的价格变化,用MA,适当圆滑些,用EMA 或SMA。
三、常用连接函数
有了上述基本函数,可以表述出K线和均线了,但实际应用中要复杂得多,还要一些函数把他们连接起来。
大致有这么几个:
1、AND 就是“和”的意思。如:A AND B;就是A和B两个条件要同时成立。
2、OR “或”,“或者”的意思。如:A OR B;就是A和B两个条件有其中一个成立就行。
3、IF 根据条件取不同的值。如:IF(X,A,B),若X不为0则返回A,否则返回B。实例:IF(C<O,L,H),表示收阴返回最低价,否则返回最高价。
4、CROSS 交叉函数。CROSS(A,B),表示A从下方向上穿过B。
5、REF 向前引用。引用若干周期前的数据。例如:REF(CLOSE,1),表示昨收的收盘价。那么前天的最高价呢,就是:REF(H,2)。
四、成交量
VOL 表示每天的成交量。因以后会经常用到,所以先交待给大家。
上面这几个函数是最常用的,希望大家记住,不知怎么写也要知道其表述的意思。当然,记不住也不要紧,《公式编辑器》中全有。
习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。
听雪寻股
习题:一根光头阳线,实体部分小于5分钱,下影超过实体的两倍,如何表述?
c=h and c-o<0.05 and o-l>(c-o)*2;
STICKLINE(c=h and c-o<0.05 and o-l>(c-o)*2,o,c,8,1),COLORRED;
STICKLINE(c=h and c-o<0.05 and o-l>(c-o)*2,o,l,1,0),COLORRED;
习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。
aa10:=ma(c,10);
aa20:=ma(c,20);
zf:=if((c-ref(c,1))/ref(c,1)*100>3,1,0);
av:=v>=ref(v,1)*2;
CROSS(aa10,aa20) and zf and av
以上作业请老师批阅
老师批改如下
此句 zf:=if((c-ref(c,1))/ref(c,1)*100>3,1,0); 如下表述更简练些:zf:=c/ref(c,1)>0.03;
关于两个习题,听雪寻股都回答的非常好,完全正确。已加分鼓励。
其实,有时编写公式就这么简单。以上就可看做是两个选股公式。
此句 zf:=if((c-ref(c,1))/ref(c,1)*100>3,1,0); 如下表述更简练些:zf:=c/ref(c,1)>0.03;
单独提出此句,是告诉大家。编写公式和数学解题一样,有很多时候可能有多种方法,殊途同归。这也是有时对于同一求助问题,不同的人有不同的回复一样。
这个习题,运用了第二讲中的内容:1,涨幅,就是收盘价与昨天的收盘价之比。2,昨天的表示符号(向前引用函数)和其他运算符号。
网通用户
习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。
答:CROSS(MA(CLOSE,10),MA(CLOSE,20)) AND C/REF(CLOSE,1)>3/100 AND VOL/REF(VOL,1)=2
方方面面2008
习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。
答:CROSS(MA(CLOSE,10),MA(CLOSE,20)) AND C>0.03*REF(CLOSE,1) AND VOL>=2*VOLREF(VOL,1)
基本正确。用一句话概括,精简。
需要指出的是最后一句:“成交量比昨天放大一倍”,这句话的表述。老兄用的是:VOL/REF(VOL,1)=2 ,应该是非常准确。但在实际应用中,却是行不通的。正好等于2倍是极难遇到的,所以编写公式变通的办法,或者说应该用的是:VOL/REF(VOL,1)>=2 ,更符合实际。
增加一个大于号,成为问题的关键所在。
提出这个问题,并非小题大作,应该看做以后编写时的注意事项。
第三讲:认识颜色符号或绘图函数
我们所看到的指标是以线为基础的。不论是均线,K线,或在线与点之间的填充,又都离不开颜色。正是有了五颜六色才使得图形丰富多采,便于区分,或者更具立体感。本讲就是告诉大家如何利用颜色或修改颜色。
一、颜色函数
(一)基本符号:COLOR
所有显示颜色时,都必须用这个符号做为引导。但它本身并没有色彩,在它的后面还需加上具体的颜色,才能使用。
举例:COLORBLACK;后面加上英文的黑色单词,在图中就会显示出黑色来了。
(二)常用颜色:
颜色:1、飞狐的;2、大智慧;3、大智慧;4、通达信;5、同花顺;6、通用符号
红 色COLORRED; 同前,与飞狐基本相通
白 色COLORWHITE; 一般不用修改
黄 色COLORYELLOW; 同前,以下略--
黑 色COLORBLACK; 同前
蓝 色COLORBLUE; 同前 COLORFFFF00
棕 色COLORBROWN; 同前 COLOR0055FF
青 色(淡蓝)COLORCYAN; 同前 COLORFFFF00 COLORF0F000
灰 色COLORGRAY; 同前
绿 色COLORGREEN; 同前 COLOR00FF00
晶红色(粉)COLORMAGENTA; 同前 COLORff00ff COLORF00FF0
此外还有:金黄色COLOR008364 紫红COLOR000999 深黄色COLOR00CCCC 紫罗蓝COLORE66878 等等。
(三)常见颜色问题。
从上表中我们可以看出,大部分颜色符号是通用的。但在将源码粘贴时,因股软的不同,有时会出现《未定义的标识符》字样,很多时候就是颜色惹的祸。常见的是:
COLORCYAN 淡蓝色,大智慧不识别,需改成:COLORFF0000
COLORMAGENTA 晶红色,大智慧不识别,需改成:COLORF00FF0
特别提示:找不到相对应的颜色函数怎么办?一是删除,让系统自动填加。二是更换数字或字母。
实际上只要在COLOR后面加上0-9、A-F中的任意6个数字字母,就可组成不同的颜色。有兴趣的可试试
(四)指标线粗细函数 LINETHICK 放在语句的后面,用 , 号隔开。例:LINETHICK2,后面的数值越大,线就越粗。
特别提示:LINETHICK0 表示不画出指标线,但可在顶部显示数值。
二、绘图函数
1、DRAWICON 在图形上绘制小图标。这是最常用的绘图函数之一。
用法:DRAWICON(条件,位置,图标)
飞狐15种图标编码为1-15(1-3为小脸,4-5为上下箭头,6-7为红绿小旗,8-9为三角形,10-12为信号灯,13-15为O、X、四方形)。
大智慧2的图标编码为14个。
其他股软略少。
这个函数通用。但同一数字编码,显示出的图形区别却非常大,形态也不一样。大家可通过变动数字编码自行调整。
2、DRAWTEXT 在图形上显示文字。这也是最常用的绘图函数之一。
用法:DRAWTEXT(条件,位置,文字),注意,文字必须用单引号 '''' 引上才能输出。
飞狐可用''\n''换行, 飞狐和大智慧2可用 ALIGN 0-3 定义对齐方式。
3、STICKLINE 在图形上绘制柱线。
用法:STICKLINE(条件,上位置,下位置,宽度,实体或空心)。
此函数股软通用。宽度最大为10(一般K线的宽度为6)。 0 --画实心柱, 1 --画空心柱。
4、PARTLINE 分段绘制指标线。
飞狐用法:PARTLINE(条件,需要变色的线)。
例如:PARTLINE(C>REF(C,1),C),colorred 表示收盘大于前收以红色绘制收盘价连线。
大智慧2用法:PARTLINE(需要变色的线,条件1,条件1用的颜色,条件2,条件2用的颜色...),最多可以有10组条件。
例如:PARTLINE(C,C>O,RGB(255,0,0),C<ORGB(0,255,0),1,RGB(0,0,255))表示画收盘价线,阳线时用红色,阴线时用绿色,平盘用蓝色。注意最后一个条件为1,表示前面都不满足时必然满足这个条件。
特别提示:大智慧2同分析家一样,在绘制分段线时,用的不是正常的颜色函数,而是用RGB(255,0,0)来表达。以下是几种常用颜色:
洋红(255,0,255) 红色(255,0,0) 绿色(0,255,250) 黄色(255,255,0) 紫色(128,0,128) 灰色(169,169,169) 天蓝(255,215,0)。
同花顺和大智慧2一样,运用相同的函数。
通达信的划分段线是用IF条件函数来实现的。
例:IF(C>=O,A线,DRAWNULL),COLORRED,LINETHICK2;
翻译过来是:当收盘价大于等于开盘价时,在A线上划红色,否则不划。指标线为2等粗。
特别提示:DRAWNULL 是通达信的专用函数。意思是返回0。其他股软遇到此函数时,可直接用0替代。
大智慧没有这项功能。一般用如下三种方式替代:
第一种:用 DRAWTEXT 在图形上显示文字的方式。在文字栏用的文字是小圆圈。
第二种:用 STICKLINE 在图形上绘制柱线的方式。但注意柱线必须要短。
第三种:用 IF 条件函数的方式,适用于3条线以上。本文略去。
5、FILLRGN 画区间彩带
飞狐用法:FILLRGN(条件,线1,线2)
例如:FILLRGN(MA1>MA2, MA1,MA2),colorred 表示MA1>MA2时以红色填充MA1和MA2之间的区域。
大智慧2用法:FILLRGN(线1,线2,条件1,颜色1,条件2,颜色2...),填充条件1到条件2之间的区域,当条件1满足时,用颜色1,当条件2满足时,用颜色2,否则不填充,最多可以有10组条件。
例如:FILLRGN(CLOSE,OPEN,CLOSE>OPEN,RGB(255,0,0),CLOSE<OPEN,RGB(0,255,0))表示填充开盘价和收盘价之间的区域,阳线时用红色,阴线时用绿色,平盘不绘制。
其他三种股软好像都没有这项功能。
为了实现这一效果,一般都是用划柱线的方式替代。注意的是,一般要将宽窄的数字加大,目的是让相邻的柱线合在一起显示出整体的效果。
例:STICKLINE(J<K,J,K,10,0),COLOR00FF00;即,当J小于K 时,在J与K之间填充柱线,宽度为最大粗值--10。
最常用的就这些。其他还有,大家打开公式编辑器慢慢研究吧。
第四讲:源码的引入和修改
(一)在各种股软中的引入方法
股软之间虽然区别较大,但有一个共同点,就是第一步都是打开公式编辑器。下面再分别简要说明一下:
一、大智慧
1. 把要导入的公式(源码)考下来,方法是用左键先把源码变蓝,之后点右键,点复制;
2. 进入大智慧------>特色功能------>自编指标------>常用------>技术指标------>新建,在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确认------>退出。
3、在大智慧的底部显示栏中点击公式名称即可看到刚刚导入的公式。
二、飞狐
1、复制源码,方法同上。
2、进入主界面,即K线图模式。
用鼠标靠近左侧单击,出现管理面板------>双击技术指标------>用鼠标右键单击任何一个公式组的名称,比如“其它”------>点新建公式------>在出现的公式编辑区的下面的空白处,把刚考的源码粘贴上,将公式名称复制后粘贴到公式名称栏------>确定------>退出。
3、找到新建的公式,双击即可使用。
三、大智慧2
特别提示:必须在联网的状态下才可操作
有两种方式可以进入公式编辑页面。一是将鼠标靠近上部,点击《公式》―――《公式管理》―――双击《技术指标》―――单击指标组―――《新建》。
另一种方式是,将鼠标靠近左边,在出现的对话框中双击《技术指标》―――右键单击选定的公式组―――《新建》。
三、分析家
复制公式原码到分析家界面―――点击上面的《公式》―――点击《公式管理》―――按公式归类把其点击变色―――点击《新建》。
四、通达信
将鼠标靠近左边,在出现的对话图标中选F(x)即《公式管理器》图标―――双击《技术指标公式》―――单击选定的指标组―――《新建》。
五、同花顺
将鼠标靠近上部―――点击《公式》图标,进入后的操作与其他股软基本一样。
特别提示:必须在《描述》栏中加上文字或字母之类,否则无法通过。
(二)公式引入时的注意事项和说明
一、参数问题
复制的源码中有参数的,例如:{N 1 100 15},有三种解决办法:
1、手工将参数分别填加到参数表中。
2、采取变通方式进行改动。{N 1 100 15}改动后为:N:=15;
特别提示:注意用参数的大小处于中间的值来替换。这个中间值也是缺省值。另外:N后面必须加上等号,它的意思是不显示。
3、对于INPUT:N(5), M(10,1,100,2);这类有申明参数函数的,飞狐,大智慧2和分析家可不用理它,系统会自动将参数填加到参数表中。这里的M(10,1,100,2)里面的2是步长,手工填加时可删去。
二、粘贴源码时常见的问题和注意事项
1、未定义的标识符
多数是由参数引起的。还有就是有些源码中附带了公式名称或说明,这些公式源码以外的内容,如:名称,说明以及参数等等,凡在{ }以外的,均要删除,或者用{ }将其括上。
2、条件选股类的公式,应加入到和“技术指标”并列的“条件选股”组中。
3、是主图公式的,需在公式编辑区中点“主图叠加”。
4、通达信的输出一般都限定在16条。多出的解决办法是:将没有必要输出的语句后面加上“等号”,或者删去。例:
买点: STICKLINE(Var6>REF(Var6,1) AND Var6>0 ,Var6,Var8,10,0);
DRAWICON(FILTER(Var6>REF(Var6,1) AND Var6>0,30),-140,4);
DRAWTEXT(FILTER(Var6>REF(Var6,1) AND Var6>0,30),-40,''建议关注 ''),COLORffffff;
这三项分别是划柱线、显示小箭头和显示文字。留一个就行了。
加“等号”的例子:
Var2:MA(CLOSE,10);
Var3:MA(CLOSE,20);
Var4:MA(CLOSE,30);
加上后:
Var2:MA(CLOSE,10);
Var3:=MA(CLOSE,20);
Var4:MA(CLOSE,30);
意思是保留了10日均线和30日均线的输出,将20日的隐去。
特别提示:不论什么股软,当遇到线条过多过乱时,都可以采用这种办法使图形简练清晰。
5、颜色符号及逗号问题
例:仓:EMA(100*(CLOSE-LLV(LOW,34))/(HHV(HIGH,34)-LLV(LOW,34)),3),,colormagenta;
此句可能存在两个问题,一是后面有两个“逗号”,对于飞狐等通过,而对于大智慧2和分析家等,则是问题,必须删去一个。反之,一个没有也不行。二是后面的colormagenta,大智慧是不认识的。换成通用的:colorf00ff0就行了。
6、是否输出与颜色标识问题
例:仓:=EMA(100*(CLOSE-LLV(LOW,34))/(HHV(HIGH,34)-LLV(LOW,34)),3),colormagenta,LINETHICK0;
这个语句的特点是在前面有等号“ = ”,意思是不输出,但后面还有颜色修饰符和指标线粗细函数。有些股软对此是放行的,即:不输出。而大智慧2和分析家却不认,把它看成相互矛盾的病句。解决办法:将修饰符全部删去,或将前面的 = 号去掉,让语句输出。
表衫飞杨
请问大智慧的DMI和钱龙的DMI为什么有区别啊.怎么调整大智慧的才能和钱龙一样的了.因为看钱龙习惯了,调整参数为7也还是有区别.应改怎么调整该公式.才能和钱龙一样的了?谢谢 请问大智慧的DMI和钱龙的DMI为什么有区别啊.怎么调整大智慧的才能和钱龙一样的了.因为看钱龙习惯了,调整参数为7也还是有区别.应改怎么调整该公式.才能和钱龙一样的了?谢谢
这是飞狐的,你和另两个分别对照一下,看看源码是不是一样,如果一样,则是软件自身的问题:
TR := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),14);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SUM(IF(HD>0 AND HD>LD,HD,0),14);
DMM:= SUM(IF(LD>0 AND LD>HD,LD,0),14);
PDI: DMP*100/TR;
MDI: DMM*100/TR;
ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,6);
ADXR:(ADX+REF(ADX,6))/2
老师学炒股
作业二:
A1:=CROSS(MA(C,10),MA(C,20));
A2:=CLOSE>OPEN AND CLOSE/OPEN>1.03;
A3:=V>=REF(V,1);
A1 AND A2 AND A3;
第五讲:各种形态的描述
懂得运用公式编辑器,掌握了公式的基本函数,就可以进行简单的公式编写了。下面我们共同认识一下公式的基本语句。这些基本语句,是编写公式和整理选股公式信号的基础,大家要熟知。
一、K线的基本形态
1、当天收阳:CLOSE>OPEN;
2、当天收阴:CLOSE<OPEN;
3、当天股价高开,言下之意开盘高于昨日收盘:OPEN>REF(CLOSE,1);
4、当天股价低开:OPEN<REF(CLOSE,1);
5、跳空高开:OPEN>REF(HIGH,1);当日开盘在昨日最高价之上
6、跳空低开:POEN<REF(LOW,1);
7、长阳:C/O>1.03 或者 (C-O)/O*100>5 或者 (C-O)/O>0.05 意思是收盘价比开盘价上涨5%以上。当然,用7%以上也可。
8、长阴:C/O<0.94; 注意:同一语句可有多种表述,此为其一。
9、高开大阴:O/REF(C,1)>1.04 AND C/O<1.94; 今天开盘比昨天收盘高出4%和收盘价较开盘下降6%。低开大阳与此正好相反。
10、标准十字星:CLOSE=OPEN AND HIGH<>LOW
更多见的是近似十字星。例:ABS(C-O)<0.02 AND H-C>0.03 AND C-L>0.03; 该语句用上了一个函数:ABS,意思是求绝对值。这样,该近似十字星即可能是阳星也可能是阴星。
再认识两个函数:MAX(A,B) 求A和B中的最大值。
MIN(A,B) 求A和B中的较小值
有了这两个函数,近似十字星还可这样表述:ABS(C-O)<0.02 AND H> MAX(C,O) AND L< MIN(C,O);
另外,该公式还可以用比例数编写。
11、长下影线:也有收阴收阳之分。以阳线长下影线为例:C>O AND (O-L)>(C-O);此公式只表达了下影线比实体线长,并没有表达长度比例和有无上影线。
留个习题吧:不限制阴阳线,上影小于5分钱,下影线是实体的两倍以上。
形态还有许多,有几十种,不一一例举了,大家举一反三,慢慢摸索吧。
二、条件选股的基本形态
1、阶段最高价:HHV(H,N) 意思是取得N天之内的最高价。新函数:HHV,最高值。
2、阶段最低价:LLV(L,N)意思是取得N天之内的最低价。新函数:LLV,最低值。
3、阶段涨幅 (C-REF(C,N))/REF(C,N)*100 N日收盘价的差值的百分比。
4、再创新高 HIGH=HHV(HIGH,N) 是指今日最高价是N日以来的最高价.。再创新低:略。
5、放量:
(1)今日比昨日的成交量放大了1倍: VOL/REF(VOL,1)>2;
(2)今日的五日均量比前五天的五日均量放大了3倍:
AA:=MA(VOL,5);
BB:=REF(AA,5);
AA/BB>4;
(3)今天的成交量达到了整个流通盘的10%以上: VOL/CAPITAL>10/100;
注意,10%的表达式是10/100,或者0.1
6、缩量:
(1)今日比昨日的成交量缩小了1倍: VOL/REF(VOL,1)<0.5;
(2)今日的五日均量比前五天的五日均量缩小了一半:
AA:=MA(VOL,1)<0.5;
BB:=REF(AA,5);
AA/BB<0.5;
(3)今天的成交量不足整个流通盘的0.5%: VOL/CAPITAL<0.5/100;
7、放量上攻 是指价格上扬,成交量剧增
C/REF(C,5)>1.2 AND VOL>MA(VOL,5)*3; 表示5日上涨20%和成交量超过5日均量的3倍。
8、持续放量:COUNT(V>REF(V,1),N)=N; 实际上这种情况不是很多。如果用3日均量,或5日均量则非常普遍。即:COUNT(MA(V,3)>REF(MA(V,3),1),N)=N;
9、阶段放量
N(1,100,10) M(1,100,5)
SUM(VOL,N1)/CAPITAL>=(N/100) M日内换手率大于百分之N
10、温和放量上攻
M(2,10,3) N(1,40,10)
UP:=MAX(C,O)>REF(MAX(C,O),1);
A:=VOL>REF(VOL,1);
COUNT(IF((UP AND A),1,0),N)=N AND C>O
AND (C-REF(MAX(C,OPEN),1))/REF(MAX(O,C),1)<=(3/100)
AND VOL/CAPITAL<=(M/100)
连续N个周期放大并保持上涨势头 当日换手率小于 M%
11、突然放量
N(1,300,10)M(1,40,3)
VOL>REF(HHV(VOL,N),1)*M
成交量较前N周期的最大成交量增大M倍
12、上涨: C/REF(C,1)>1.07;今日涨幅达到了7%以上。
注意:涨幅是指当天收盘价与昨天的收盘价之比。
13、下跌:同上面的表达方式一样,将方向改变了而已。
14、十日均价继续上涨:
AA:=MA(C,10);
BB:=REF(AA,1);
AA>BB;
15、窄幅整理:就是指近一段时期价格维持在一定幅度之内
(HHV(C,20)-LLV(C,20))/C<0.08 ;即20日内价格振幅在8%以内波动。
16、连续N天收阳:COUNT(C>O,N)=N;
特别提示:新函数:COUNT(X,N),统计满足条件的周期数。若N=0则从第一个有效值开始。
例:COUNT(C<O,10) 表示统计10周期内收阴的周期数。此句使用时必须加上条件,即收阴时怎么了方才有效。如:AA AND COUNT(C<O,10) 的返回值仍是AA,只有AA AND COUNT(C<O,10)<=3;时,即加上条件“小于等于3”周期时,才有实际意义。这个函数经常用到,务请留意。
17、N日内阳线多于阴线:COUNT(C>O,N)>N/2;
18、创历史新高:C=HHV(C,0);
特别提示:此公式本应为:C=HHV(C,N); 当N等于0时,从第一天开始统计。统计历史数据时,如果从头开始,都用0。
19、尾盘拉升
HOUR>14 AND MINUTE>56 AND CLOSE/REF(CLOSE,2) >= 1+N/100
14:56以后2分钟涨幅超过N%
20、突破长期盘整
N(10,60,30) M(5,50,30)
REF(((HHV(H,N)-LLV(L,N))/LLV(L,N)),1)<=(M/100)AND C>=REF(HHV(H,N),1) AND BARSCOUNT(C)>N
前N日在上下M%的幅度内整理,今日突破。
21、阶段强势股
N(700101,1341231,990519) M(700101,1341231,990913)
A:=SUM(IF(DATE-N=0,INDEXC,0),0);
B:=SUM(IF(DATE-M=0,INDEXC,0),0);
E:=SUM(IF(DATE-N=0,C,0),0);
F:=SUM(IF(DATE-M=0,C,0),0);
((F-E)/E)>((B-A)/A)
选择N日----M日之间内走势强于大盘的股票.
22、大盘同步选股
N(1,100,10)M(1,100,50)
COUNT((C>O AND INDEXC>INDEXO) OR (C< O AND INDEXC< INDEXO),N)/N > M/100
N周期中与大盘走势相同(同收阴线或同收阳线)的比例超过M%
23、今收盘对于N日内最低收盘价的涨幅(%)
(C-LLV(C,N))/LLV(C,N)*100;
24、今收盘对于N日内最高收盘价的跌幅(%)
(HHV(C,N)-C)/HHV(C,N)*100;
25、股价在过去N日内运行空间的相对位置
(C-LLV(L,N))/(HHV(H,N)-LLV(L,N))*100;
26、股价上方N1%至N2%处的筹码(%)
AA:=WINNER(C+C*N2/100)*100;
BB:=WINNER(C+C*N1/100)*100;
AA-BB
认识新函数:WINNER(CLOSE) 获利盘比例。表示以当前收市价卖出的获利盘比例,如返回0.2表示20%获利盘;例如:WINNER(10) 表示10元价格的获利盘比例。该函数仅对比较日线分析周期有效。
27、股价下方N1%至N2%处的筹码(%)
(WINNER(C-C*N1/100)-WINNER(C-C*N2/100))*100;
28、收盘价N%处的套牢盘
100-(WINNER(C*N/100))*100;
29、收盘价N%处的获利盘
WINNER(C*N/100)*100;
三、基本面选股举例
1、小盘选股
CAPITAL<=500000 AND FINANCE(33)>=0.01 AND CLOSE<=30
2、低市盈率选股
DYNAINFO(39)<=N AND DYNAINFO(39)>0
3、业绩选股
N(0,100,0.4)
FINANCE(33)>N 每股收益在0.4元以上
4、小盘股
N:=5000;
FINANCE(7)<=N
5、大盘股
N:=20000;
FINANCE(7)>=N
6、净资产收益率选股
FINANCE(37)>(N/100) 净资产收益率高于N的股票
7、每股净资产选股
FINANCE(34)>N 选出每股净资产大于N元的股票.
8、每股未分配利润选股
FINANCE(32)>N 每股未分配利润大于N的股票
9、市净率选股
C/FINANCE(34)< N
市净率=市价/每股净资产 市净率>N
市净率越低公司股价越有被低估的可能,这类股票从理论上讲具有更高的安全性.
10、换手率选股
DYNAINFO(37)>=N/100 单日换手率大于N的股票
换手率的计算公式或表达式:VOL/CAPITAL*100; 因此也可写作:VOL/CAPITAL*100>=N/100
11、掁幅:(H-L)/REF(C,1)*100; 注意:是比的昨天收盘价。
天天★学习
问个菜鸟问题:压缩后的公式,解压后成了FNC文件,请问楼主怎么加到公式管理器里去?
FNC是大智慧2和分析家格式,只有这两个股软能够导入。导入的方法是:打开公式编辑器,点击导入---找到存放此公式的文件夹---双击---在出现的列表中掸单击该公式---选导入。
特别提示:必须先将公式存放在一个文件夹中,已有的,新建都可以。否则编辑器无法找到该公式。
淡定笑人生
习题:不限制阴阳线,上影小于5分钱,下影线是实体的两倍以上
不懂何谓5分线,无法做习题!
按自己理解的意思做出来:
(H-O)/O<0.05 AND MIN((C-L),(O-L))/ABS(C-O)>=2
方方面面2008
交作业:不限制阴阳线,上影小于5分钱,下影线是实体的两倍以上。
A:=c>0 AND H-C<0.05 AND (O-L)/(C-O)>2;
B:=C<0 AND H-O<0.05 AND (C-L)/(O-C)>2;
A OR B
可能大家不知道,
当初对于大智慧1中不能用英文表示颜色只能用6位16进制代码的表示,我曾专门对照查找过的,很费时间,
也就是说老杨写的几个字都是用大量时间精力换来的,来之不易,
希望大家好好学习。
这里我转几个针对线性和颜色函数方面的公式实例,做个参考吧。是原来五行鼠的帖子,这人很久不来了。
1间隔点:
20,colorred,pointdot,linethick2;
80,colorred,pointdot,linethick2;
50,colorred,pointdot,linethick2;
2间隔线
20,colorred,linethick2;
80,colorred,linethick2;
50,colorred,linethick2;
3信号字
DRAWTEXT(RSI1<10,RSI1,''买''),Colorlime;
DRAWTEXT(RSI1>85,RSI1,''卖''),Colorlime;
4笑哭脸
DRAWICON(VR24<25,VR24,1),ColorFF0000;
DRAWICON(VR24>350,VR24,2),ColorFF0000;
5一线提示
cross("kdj.j"(9,3,3),"kdj.d"(9,3,3)) and "kdj.j"(9,3,3)<20,colorred
6一柱顶天
IF(VAR4=50,50,0),stick,linethick2;
7小人作怪
多头卒:Var3,LINETHICK2, COLORf00ff0;
空头卒:Var4,LINETHICK2, COLORYELLOW;
DRAWICON(Var9,Var9,1);
DRAWICON(Var10,Var10,2);
8小人
买入:Var1 AND Var2,stick,linethick2,colorred;
卖出:CROSS(80,Var4),stick,linethick2,colorgreen;
drawicon(卖出,1.1,2);
drawicon(买入,1.1,1);
9粗细面条
LINETHICK2
第3,4,6和7,还有8只要把RSI或VR或Var改成所在公式参数就可用;第5cross不能改,其它的可改;9你爱把线设多粗细都行。
1方块STICKLINE
AA:=VOL/((HIGH-LOW)*2-ABS(CLOSE-OPEN));
买盘:IF(CLOSE>OPEN,AA*(HIGH-LOW),IF(CLOSE<OPEN,AA*((HIGH-OPEN)+(CLOSE-LOW)),VOL/2));
卖盘:IF(CLOSE>OPEN,0-AA*((HIGH-CLOSE)+(OPEN-LOW)),IF(CLOSE<OPEN,0-AA*(HIGH-LOW),0-VOL/2));
qq:=买盘+卖盘;
STICKLINE(卖盘<0,0,VOL,5,1),COLORlime;
STICKLINE(买盘>0,0,买盘,5,0),COLORRED;
结果:ma(qq,5)*5,COLORRED,LINETHICK2;
VOL后面的5,1是方块大少。VOL是坐标,也就是方块所放的地方。
2 3D效果
STICKLINE(OPEN>=CLOSE ,CLOSE ,OPEN,9,0 ),COLORaaaaaa;
STICKLINE(OPEN>=CLOSE ,CLOSE ,OPEN,6,0 ),COLORbbbbbb;
STICKLINE(OPEN>=CLOSE ,CLOSE ,OPEN,2.4,0 ),COLORcccccc;
STICKLINE(OPEN>=CLOSE ,CLOSE ,OPEN,1.1,0 ),COLORdddddd;
STICKLINE(CLOSE>OPEN,CLOSE,OPEN,9,0 ),COLOr6666cc;
STICKLINE(CLOSE>OPEN,CLOSE,OPEN,6 ,0 ),COLOR7777dd;
STICKLINE(CLOSE>OPEN,CLOSE,OPEN,2.4 ,0 ),COLOR8888ee;
STICKLINE(CLOSE>OPEN,CLOSE,OPEN,1.1 ,0 ),COLOR9999ff;
STICKLINE(CLOSE>OPEN,OPEN,LOW,0.5,0 ),COLOR1199ff;
STICKLINE(CLOSE>OPEN,CLOSE,HIGH,0.5 ,0 ),COLOR1199ff;
STICKLINE(OPEN>=CLOSE,CLOSE,LOW,0.5 ,0 ),COLORcccccc;
STICKLINE(OPEN>=CLOSE,OPEN,HIGH,0.5 ,0 ),COLORcccccc;
3颜色
大智慧只能用浅色调,一用深绿深蓝就看不见了。所以我调了几个浅色的,够大智慧用的。
COLOR+RED;WHITE;LIME;YELLOW;aabbcc;ffaabb;abcdef;999999;C0C0C0.
4变色
变色可分3种:
1用DRAWTEXT:
ma10:ma(c,10),colorwhite;
llv(h,30),colorffcc66;
llv(l,30),coloryellow;
vhh:hhv(h,30),colorred;
vhl:hhv(l,30),color00ff00;
v1:=ma(HIGH,30)*1.15 ;
v2:=ma(HIGH,3)*1.03;
v3:=ma(LOW,3)*0.97;
v4:=ma(LOW,30)*0.85;
小通道上:=ma(v2,30);
小通道下:=ma(v3,30);
A2:=小通道上-REF(小通道上,1);
A3:=小通道下-REF(小通道下,1);
K:A2>0 and ref(A2<0,1),colorblue;
K1:A3>0 and ref(A3<0,1),colorff00ff;
K2:c<小通道下 and h<小通道下,color0099ff;
K3:c<小通道下 and A3>0,colorffcccc;
K4:h<小通道下 and A3>0,colorffbbff;
DRAWTEXT(A2>0 ,小通道上,''?/SPAN>''),colorred;
DRAWTEXT(A2<0 ,小通道上,''?/SPAN>''),color00ff00;
DRAWTEXT(A3>0 ,小通道下,''?/SPAN>''),colorred;
DRAWTEXT(A3<0 ,小通道下,''?/SPAN>''),color00ff00;
DRAWTEXT(A2=0 ,小通道上,''?/SPAN>''),COLORWHITE;
DRAWTEXT(A2=0 ,小通道下,''?/SPAN>''),COLORWHITE;
DRAWTEXT(A3=0 ,小通道上,''?/SPAN>''),COLORWHITE;
DRAWTEXT(A3=0 ,小通道下,''?/SPAN>''),COLORWHITE;
2用STICKLINE
AA:=WINNER(C)*100;
KA:=winner(O)*100;
高:=winner(H)*100;
低:=winner(L)*100;
庄筹线:EMA(AA*0.7,3),linethick2;
散筹线:EMA((WINNER(C*1.08)-WINNER(C*0.92))*70,3),linethick2;
stickline(AA<KA,高,低,0,0),colorlime;
stickline(AA<KA,AA,KA,6,0),colorlime;
stickline(AA>=KA,高,低,0,0),colorred;
stickline(AA>=KA,AA,KA,6,0),colorred;
stickline(庄筹线>散筹线,庄筹线,0,0),colorwhite;
3用IF
主图公式1:
A1:=Ma(C,5);{5日移动平均线}
A2:=Ma(C,10);{10日移动平均线}
A3:=(A1+A2)/2;{5、10日移动平均线之和除2的平均线,也就是中心线}
IF (A1>A2,A1,A3),Colorred,linethick2;{5日线大于10日且5日线交叉A3线显示粗红线}
IF (A1>A2,A2,A3),Colorred,linethick2;{5日线大于10日且10日线交叉A3线显示粗红线}
IF (A1<=A2,A1,A3),Color00ff00,linethick2;{5日线小于等于10日且5日线交叉A3线显示粗绿线}
IF (A1<=A2,A2,A3),Color00ff00,linethick2;{5日线小于等于10日且10日线交叉A3线显示粗绿线}
A3,colorwhite,linethick2;{中心线显示粗白线}
这是以中心线为轴通过A1、A2这两条线与中心线的交叉来变换颜色的。
主图公式2:
MA1:=MA(CLOSE,5);{5日移动平均线}
MA2:=MA(CLOSE,10);{10日移动平均线}
MA3:=MA(CLOSE,20);{20日移动平均线}
MA4:=MA(CLOSE,30);{30日移动平均线}
MAA:=MA(CLOSE,60);{60日移动平均线}
MA5:IF(MA1<MA4,MA1,MA4),COLOR00ff00;{MA1线小于MA4且MA1线交叉MA4线显示绿色线}
IF(MA1<MA4,MA4,MA1),coloryellow;{MA1线小于MA4且MA4线交叉MA1线显示黄色线}
MA10:if(ma2<ma4,ma2,ma4),colorffcc66;{MA2线小于MA4且MA2线交叉MA4线显示青色线}
if(ma2<ma4,ma4,ma2),color0099ff;{MA2线小于MA4且MA4线交叉MA2线显示橘黄色线}
MA20:if(ma3<ma4,ma3,ma4),colorwhite;{MA3线小于MA4且MA3线交叉MA4线显示白色线}
if(ma3<ma4,ma4,ma3),colorblue;{MA3线小于MA4且MA4线交叉MA3线显示青色线}
MA30:if(ma4<maa,ma4,maa),colorff00ff,linethick2;{MA4线小于MAA且MA4线交叉MAA线显示粉色粗线}
if(ma4<maa,maa,ma4),colorred,linethick2;{MA4线小于MAA且MAA线交叉MA4线显示红色粗线}
MA60:if(ma4>maa,maa,maa),linethick2,colorblue;{MA4线大于MAA且MAA线交叉MAA线显示兰色粗线}
这是分别以MA4、MAA线为轴通过向上交叉和向下交叉来变换颜色的。
单条变色线
ma10:ma(c,10);
if(ma10>ref(ma10,1),ma10,0),Circledot,COLORRED,LINETHICK2;
if(ma10<ref(ma10,1),ma10,0),Circledot,COLOR00FF00,LINETHICK2;
一、线形函数
线形函数要和其它指标函数一起用才能发挥效力,因为它们都是描述其它指标函数的。正确用好线形函数可以使主副图指标显示丰富多彩,色彩缤纷。
1、函数:STICK 说明:画棒状线,STICK的英文是棍、棒的意思。
如副图公式:C>REF(C,1) AND C>REF(C,2),STICK;
2、函数:COLORSTICK 说明:以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色,这样零轴就如楚汉交界,泾渭分明了。
如副图公式:C-REF(C,1),COLORSTICK;
3、函数:LINESTICK 说明:同时画棒状线与指标线。LINE是线,STICK是棒,LINESTICK自然是线棒一起显示了。如副图公式:
A:=C-REF(C,1);
A,LINESTICK;
即想显示指标线和棒状线,又想以零轴为中心上下显示两种彩色棒状线,可以用分开的两句语句来达到目的,如副图公式:
A:=C-REF(C,1);
A,LINESTICK;
A,COLORSTICK;
4、函数:VOLSTICK 说明:画成交量柱状线。这是专门为显示成交量设计的。如副图公式:
VOL,VOLSTICK;
5、函数:CROSSDOT 说明:画叉状线或x状线。CROSS是交叉,DOT是点。如副图公式:
ma1:ma(c,30),CROSSDOT;
6、函数:CIRCLEDOT 说明:画小圆圈线,如副图公式:
ma1:ma(c,30),CIRCLEDOT;
7、函数:LINETHICK 说明:改变指标线粗细。取1、2、3、4、5、6、7放在LINETHICK后面如:LINETHICK2,数字越大,线越粗,最大可取7。如副图公式:
例1:ma1:ma(close,30),COLORFF00FF,linethick2;
例2:A:=C-REF(C,1);
A,COLORSTICK,LINETHICK4;
8、函数:POINTDOT 说明:画点状线,POINT是点、加点的意思。这个点状线看起来有点太小了,可以用加粗线函数。如副图公式:
ma1:ma(c,30),COLOR00FF00,POINTDOT,LINETHICK2;
我们编个指标,看看都用了哪些线形函数。
{顶底指标}
股价趋势:3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1),COLORFF00FF,LINETHICK2;
底部警戒:10,COLORFFCCCC,POINTDOT;
买入警戒:IF(股价趋势<=10,40,0),stick,linethick3,coloryellow;
买入信号:IF(CROSS(股价趋势,底部警戒),80,0),stick,linethick3,colorblue;
强弱分界:50,COLORWHITE,POINTDOT,LINETHICK2;
顶部警戒:90,COLORFFCC66,POINTDOT;
卖出警戒:IF(股价趋势>=85,40,0),stick,linethick3,colorred;
卖出信号:IF(CROSS(股价趋势,顶部警戒),80,0),stick,linethick3,color00ff00;
指标解析:
{顶底指标}
股价趋势:3*移动平均((收盘价-最低值(最低价,27))/(最高值(最高价,27)-最低值(最低价,27))*100,5,1)-2*移动平均(移动平均((收盘价-最低值(最低价,27))/(最高值(最高价,27)-最低值(最低价,27))*100,5,1),3,1),COLORFF00FF,LINETHICK2;
底部警戒:10,COLORFFCCCC,点状线;
买入警戒:条件函数(股价趋势<=10,40,0),棒状线,linethick3,coloryellow;{黄粗棒状}
买入信号:条件函数(交叉函数(股价趋势,底部警戒),80,0),棒状线,linethick3,colorblue;{蓝粗棒状}
强弱分界:50,COLORWHITE,点状线,LINETHICK2;{粗点状线}
顶部警戒:90,COLORFFCC66,点状线;
卖出警戒:条件函数(股价趋势>=85,40,0),棒状线,linethick3,colorred;{红粗棒状}
卖出信号:条件函数(交叉函数(股价趋势,顶部警戒),80,0),棒状线,linethick3,color00ff00;{绿粗棒状}
二绘图函数
绘图函数的功能是在主图或副图上设定条件输出图标、直线、文字、数字、指标线、指标柱等。运用恰当使编制出的主副图指标给以视觉上的美感。
1、函数RAWICON
用法RAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。
说明:在图形上绘制小图标,其中TYPE可选3种图标,编码为1-3(1为红脸、2为绿脸、3为平脸)。
示例:DRAWICON(CLOSE>OPEN,LOW,1);表示当收阳时在最低价位置画1号图标,也就是红脸。
DRAWICON(CLOSE<OPEN,high,2);表示当收阴时在最高价位置画2号图标,也就是绿脸。
指标示例:
{月均线主图}
ma1:ma(close,5),colorwhite,linethick2;{画一条5日收盘价的均线,设置该线为粗白色}
ma2:ma(close,10),colorff00ff,linethick2;{画一条10日收盘价的均线,设置该线为粗粉色}
ma3:ma(close,20),color00ff00,linethick2;{画一条20日收盘价的均线,设置该线为粗绿色}
a1:=cross(ma1,ma2);{5日均线上穿10日均线,金叉}
a2:=cross(ma2,ma1);{10日均线下穿5日均线,死叉}
DRAWICON(a1,low,1);{当a1条件满足时,在最低价位置上显示红脸,表示此处可作为买入点}
DRAWICON(a2,high,2);{当a2条件满足时,在最高价位置上显示绿脸,表示此处可作为卖出点}
2、函数:DRAWLINE
用法RAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND),当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为延长类型。
说明:在图形上绘制直线段。
示例: DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1);表示在创20天新高与创20天新低之间画直线并且向右延长。
DRAWLINE是唯一一个一句里面用到两个COND的绘图函数。因为它需要两个点来决定一直线。
COND1相当于指定K线位置(横坐标),PRICE1相当于是指定价位(纵坐标),这样一个点在平面上的位置就决定了。
DRAWLINE是从第一点画到第二点的,即有起点与终点的顺序关系:第一点出现的时间,要在第二点之前。否则线是画不出来的。
EXPAND,扩张、发展,这里是延伸的意思吧。取0,不延长;取1,延长。实际上是取大于等于1的数就延长,小于1就不延长。
指标示例:
{季均线主图}
ema1:ema(close,20),colorff00ff;{画一条20日收盘价的均线,设置该线为粉色}
ema2:ema(close,40),color00ff00;{画一条40日收盘价的均线,设置该线为绿色}
ema3:ema(close,60),colorwhite,CIRCLEDOT;{画一条60日收盘价的均线,设置该线为白色o线}
DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,HIGH>=HHV(HIGH,20),HIGH,1),colorwhite;{表示在创20天新高与创20天新低之间画直线并且向右延长。}
DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1),coloryellow;{表示在创20天新高与创20天新低之间画直线并且向右延长。}
3、函数RAWTEXT 说明:在图形上显示文字。
用法RAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT,可显示多行文本。
示例RAWTEXT(CLOSE/OPEN>1.08,LOW,''大涨啦'');表示当日涨幅大于8%时在最低价位置显示''大涨啦''字样。在某些满足条件的地方直接显示文字或字符,比显示图标要更直观一些。注意,显示的文字要用英语状态下的单引号括起。
指标示例:
{长短结合主图}
sma1:sma(close,5,1),color00ff00;{画一条5日收盘价的均线,设置该线为绿色}
sma2:sma(close,10,1),coloryellow;{画一条10日收盘价的均线,设置该线为黄色}
sma3:sma(close,60,1),colorblue,linethick2;{画一条60日收盘价的均线,设置该线为蓝色粗线}
DRAWTEXT(CLOSE/OPEN>1.08,LOW,''大涨啦''),colorwhite;{表示当日涨幅大于8%时在最低价位置显示''大涨啦''字样。}
4、函数:POLYLINE 说明:在图形上绘制折线段。
用法:POLYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。
示例:POLYLINE(HIGH>=HHV(HIGH,20),HIGH);表示在创20天新高点之间画折线。
指标示例:
{长短结合主图}
sma1:sma(close,5,1),color00ff00;{画一条5日收盘价的均线,设置该线为绿色}
sma2:sma(close,10,1),coloryellow;{画一条10日收盘价的均线,设置该线为黄色}
sma3:sma(close,60,1),colorblue,linethick2;{画一条60日收盘价的均线,设置该线为蓝色粗线}
POLYLINE(HIGH>=HHV(HIGH,20),HIGH),COLORWHITE;{表示在创20天新高点之间画折线(白色)。}
5、函数:STICKLINE 说明:在图形上绘制柱线。
用法: STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH可为0---100(10为标准间距),EMPTH不为0则画空心柱。
示例:STICKLINE(CLOSE>OPEN,CLOSE,OPEN,4,1);表示画K线中阳线的空心柱体部分。
运用要点:
⑴PRICE1和PRICE2没有顺序关系,即何者在前何者在后都不影响语句的执行。
⑵WIDTH宽度,支持小数。用1和用0.1,会有很大的差别。取4时和主图的K线宽度差不多。
以下的副图公式,画出的K线,与主图中显示的K线差不多。
指标示例:
{副图K线}
STICKLINE(C>O OR (C=O AND C>REF(C,1)),O,C,4,1),colorred;{画出红K实体}
STICKLINE((C>O AND C<>H) OR (C=O AND C>REF(C,1)),C,H,0.1,0),colorred;{画出红K上影线}
STICKLINE((C>O AND L<>O) OR (C=O AND C>REF(C,1)),L,O,0.1,0),colorred;{画出红K下影线}
STICKLINE(C<O OR (C=O AND C<=REF(C,1)),C,O,4,0),colorffcc66;{画出青K实体}
STICKLINE(C<O OR (C=O AND C<=REF(C,1)),L,H,0.1,0),colorffcc66;{画出青K影线。因为青K是实心的,所以影线从中穿过}
ma5:MA(C,5),colorwhite;
ma10:ma(c,10),colorff00ff;
绘图函数结合示例介绍完了,相信你一定有所收获吧,举一反三自己动手编个指标。不要怕失败,失败是成功之母。
三背景装饰
飞狐、分析家股软能将背景颜色通过渐变颜色函数装扮的很漂亮,那么大智慧股软能做到吗?能,但做出的背景色虽不如飞狐、分析家平滑漂亮,也能起到装扮的作用,效果也可以。
在大智慧设计背景色的原理主要是通过主、副图的坐标用画柱线函数STICKLINE或者设定坐标用颜色代码就可以完成。下面用实例来说明背景色的设计过程。
一、单色背景色,这是最简单实用的一种装饰方法。我们先来设计一个主图指标:
要领:1、设定坐标:STICKLINE(CLOSE>0,h*9.0,l*0.01,8,0),color7d7f0f;意思是CLOSE>0条件满足时,在坐标h*9.0至坐标l*0.01处画宽度为8的实体柱线(也就是在整个主图上添色)。
也可以这样设定STICKLINE(110,0,110,8,0),color7d7f0f;显示的是同样效果。
2、添色的源码必须在指标的头条位置上,否则会覆盖均线、K线、文字等图形。
3、必须另外编制K线,因为背景色会覆盖系统中的K线图。
4、可以把背景色分为五档、十挡或更多,同时注意与你的指标的最大值、最小值(也就是坐标)相匹配,否则会在指标中出现背景色残缺不全的情况。
5、用你喜欢的颜色需要结合调色器可随意自定义自己喜欢的颜色。不过可得有耐心啊!
指标示例一:
{多空密码主图}
STICKLINE(CLOSE>0,h*9.0,l*0.01,8,0),color7d7f0f;{设置背景,可以将这句源码复制粘贴到任意主图指标的头条位置上}
Var1:=(3*CLOSE+LOW+OPEN+HIGH)/6;
Var3:=(20*Var1+19*REF(Var1,1)+18*REF(Var1,2)+17*REF(Var1,3)+16*REF(Var1,4)+15*REF
(Var1,5)+14*REF(Var1,6)+13*REF(Var1,7)+12*REF(Var1,8)+11*REF(Var1,9)+10*REF
(Var1,10)+9*REF(Var1,11)+8*REF(Var1,12)+7*REF(Var1,13)+6*REF(Var1,14)+5*REF
(Var1,15)+4*REF(Var1,16)+3*REF(Var1,17)+2*REF(Var1,18)+REF(Var1,20))/221;
Var4:=MA(Var3,78),LINETHICK2;
Var5:=EMA(MA(CLOSE,3),34);
Var6:=MA(Var3,5);
Var7:=MA(Var3,9);
M60:MA(C,60),COLOREEFFFF,CIRCLEDOT;
STICKLINE(Var3>1.005*Var4,Var3,Var4,4,1),COLORYELLOW;
STICKLINE(IF(Var3<Var5,Var3<=1.015*Var4,Var3<=1.005*Var4),Var7,Var4,2,1),COLORffff88;
STICKLINE(Var3>Var6,Var3,Var7,4,1),COLORff88ff;
STICKLINE(IF(Var3<Var6,Var3<=1.015*Var6,Var3<=1.005*Var6),Var3,Var7,3,1),COLORFF6633;
STICKLINE(Var3>Var6,Var3,Var7,4,1),COLOR0000ff;
{下面是柱形K线,如果喜欢这样的K线,你可以复制粘贴到任意主图指标里面}
STICKLINE(C>=O,C,O,7,0),COLORRED;
STICKLINE(C>=O,C,O,4,0),COLOR7070ff;
STICKLINE(C>=O,C,O,2,0),COLORYELLOW;
STICKLINE(C>=O,H,L,0,0),COLORYELLOW;
STICKLINE(C<=O,C,O,7,0),COLORFF2020;
STICKLINE(C<=O,C,O,4,0),COLORFF6600;
STICKLINE(C<=O,C,O,2,0),colorffcc66;
STICKLINE(C<=O,H,L,0,0),colorffcc66;
M9:MA(C,9),COLORYELLOW;
生命线: MA(CLOSE,13),COLORYELLOW,LINETHICK2;
牛熊线: (EMA(CLOSE,5)*7+EMA(CLOSE,5)*3)/10,COLORFF00CC,LINETHICK2;
箱顶:MA(REF(HHV(CLOSE,30),1),2);
箱底:MA(REF(LLV(CLOSE,30),1),2);
AA:(MA(C,13)+MA(C,21)+MA(C,34)+MA(C,55))/4,COLORFF00FF;
半年线:ma(close,125),colorffcc66;
指标示例二:
{财出水面副图}
VAR2:=(CLOSE-LLV(LOW,20))/(HHV(HIGH,20)-LLV(LOW,20))*100;
VAR3:=SMA(SMA(VAR2,3,1),3,1)/28.57;
VAR4:=EMA(VAR3,5);
操盘:=3*VAR3-2*VAR4;
A1:=CROSS(操盘,VAR3) AND VAR3<2.1 and c>o;
40,colorred,pointdot;
STICKLINE(c>0,40,22,8,0),colorff8080;{设置背景,CLOSE>0条件满足时,在坐标40至坐标22处设置宽度为8的兰色背景}
STICKLINE(c>0,22,4,8,0),color916f87;{设置背景,CLOSE>0条件满足时,在坐标22至坐标4处设置宽度为8的深紫色背景}
stickline(a1,18,15,28,0),colorred;
stickline(a1,18,18,18,0),colorblue;
stickline(a1,8,8,9,0),colorffff00;
stickline(a1,6,6,4,0),colorffff00;
stickline(a1,10,10,12,0),colorffff00;
stickline(a1,12,12,20,0),colorffff00;
stickline(a1,14,14,24,0),colorffff00;
stickline(a1,16,34,0.1,0),colorc0c0c0;
stickline(a1,33,18,9,0),colorwhite;
drawtext(a1,36,''财出水面''),COLORWHITE;
VarE:=30+(REF(CLOSE,1)-REF(OPEN,1))/REF(OPEN,1)*100/1.5;
VarF:=30+(REF(CLOSE,2)-REF(OPEN,2))/REF(OPEN,2)*100/1.5;
Var10:=CROSS("KDJ.K"(9,3,3),"KDJ.J"(9,3,3)) AND "KDJ.D"(9,3,3)>13;
Var11:=CROSS(REF("KDJ.K"(9,3,3),1),REF("KDJ.J"(9,3,3),1)) AND REF("KDJ.D"(9,3,3),1)>13;
Var12:=CROSS(REF("KDJ.K"(9,3,3),2),REF("KDJ.J"(9,3,3),2)) AND REF("KDJ.D"(9,3,3),2)>12;
Var13:=Var10 OR Var11 OR Var12;
Var14:=REF("BIAS.BIAS2"(6,12,24),1)>2;
Var15:=REF("RSI.RSI1"(6,12,24),1)>(VarE+VarF)/1.8 AND REF("ROC.ROC"(12,6),1)-"ROC.ROC"(12,6)>0 AND Var13 AND Var14;
卖出:=Var15*100/15,color00ff00;
stickline(卖出,18,15,28,0),coloryellow;
stickline(卖出,18,18,18,0),colorblue;
stickline(卖出,8,8,9,0),colorffff00;
stickline(卖出,6,6,4,0),colorffff00;
stickline(卖出,10,10,12,0),colorffff00;
stickline(卖出,12,12,20,0),colorffff00;
stickline(卖出,14,14,24,0),colorffff00;
stickline(卖出,16,28,0.1,0),colorc0c0c0;
stickline(卖出,28,18,9,0),color00ff00;
drawtext(卖出,31,''落袋为安''),COLOR00FF00;
指标示例三:
{金叉死叉}
STICKLINE(100,0,100,8,0),colorff0098;{设置背景,100条件满足时,在坐标100至坐标0处设置宽度为8的紫兰色背景}
Var1:=EMA(HHV(HIGH,500),21);
Var2:=EMA(HHV(HIGH,250),21);
Var3:=EMA(HHV(HIGH,90),21);
Var4:=EMA(LLV(LOW,500),21);
Var5:=EMA(LLV(LOW,250),21);
Var6:=EMA(LLV(LOW,90),21);
Var7:=EMA((Var4*0.96+Var5*0.96+Var6*0.96+Var1*0.558+Var2*0.558+Var3*0.558)/6,21); Var8:=EMA((Var4*1.25+Var5*1.23+Var6*1.2+Var1*0.55+Var2*0.55+Var3*0.65)/6,21);
Var9:=EMA((Var4*1.3+Var5*1.3+Var6*1.3+Var1*0.68+Var2*0.68+Var3*0.68)/6,21);
VarA:=EMA((Var7*3+Var8*2+Var9)/6*1.738,21);
VarB:=REF(LOW,1);
VarC:=SMA(ABS(LOW-VarB),3,1)/SMA(MAX(LOW-VarB,0),3,1)*100;
VarD:=EMA(IF(CLOSE*1.35<=VarA,VarC*10,VarC/10),3);
VarE:=LLV(LOW,30);
VarF:=HHV(VarD,30);
Var10:=IF(MA(CLOSE,58),1,0);
Var11:=EMA(IF(LOW<=VarE,(VarD+VarF*2)/2,0),3)/618*Var10;
Var12:=IF(Var11>40,10,Var11);
STICKLINE(Var12>8,0,Var12,4,1), , COLORFF00FF;
Var13:=HHV(HIGH,30);
Var14:=LLV(LOW,30);
能量K:EMA((CLOSE-Var14)/(Var13-Var14)*97,5),COLORRED,linethick2;
能量D:EMA((CLOSE-Var14)/(Var13-Var14)*100,15),linethick2,colorff9933;
底部峰:5,pointdot,linethick2,COLORFF00FF;
DRAWTEXT(CROSS(底部峰,能量K),能量d,''●''),COLORWHITE;
DRAWTEXT(CROSS(底部峰,能量K),能量K+15,''底部形成''),COLORWHITE;
大智慧:100,,pointdot,linethick2,color00ccff;
强弱分界:50,pointdot,COLORWHITE;
DRAWTEXT(CROSS(90,能量K),80,''●''),COLOR00FF00;
DRAWTEXT(CROSS(90,能量K),90,''有风险''),COLOR00FF00;
DRAWTEXT(CROSS(90,能量K),能量K+13,''●''),COLOR00FF00;
DRAWTEXT(CROSS(能量D,能量K),98,''死叉''),COLORFFCC66;
DRAWTEXT(CROSS(能量D,能量K),90,''●''),COLORFFCC66;
DRAWTEXT(CROSS(能量K,能量D),8,''金叉''),COLORYELLOW;
DRAWTEXT(CROSS(能量K,能量D),15,''●''),COLORYELLOW;
0,pointdot,linethick2,COLORFF00FF;
渐变色源码供参考:
STICKLINE(0 ,0,-1,15,0) ,COLORFF0098;
STICKLINE(10 ,10,0,15,0) ,COLORFF009A;
STICKLINE(20 ,20,10,15,0),COLORFF009C;
STICKLINE(30 ,30,20,15,0),COLORFF009E;
STICKLINE(40 ,40,30,15,0),COLORFF00A0;
STICKLINE(50 ,50,40,15,0),COLORFF00A2;
STICKLINE(60 ,60,50,15,0),COLORFF00A4;
STICKLINE(70 ,70,60,15,0),COLORFF00A6;
STICKLINE(80 ,80,70,15,0),COLORFF00A8;
STICKLINE(90 ,90,80,15,0),COLORFF00AA;
STICKLINE(100 ,100,90,15,0),COLORFF00AC;
STICKLINE(110 ,110,100,15,0),COLORFF00AF;
单色源码供参考:
STICKLINE(CLOSE>0,h*9.0,l*0.01,8,0),color7d7f0f;
K线
STICKLINE(C>=O,C,O,7,0),COLORRED;
STICKLINE(C>=O,C,O,4,0),COLOR7070ff;
STICKLINE(C>=O,C,O,2,0),COLORYELLOW;
STICKLINE(C>=O,H,L,0,0),COLORYELLOW;
STICKLINE(C<=O,C,O,7,0),COLORFF2020;
STICKLINE(C<=O,C,O,4,0),COLORFF6600;
STICKLINE(C<=O,C,O,2,0),colorffcc66;
STICKLINE(C<=O,H,L,0,0),colorffcc66;
副图背景色源码供参考:
STICKLINE(100,0,100,8,0),color7d7f0f;{注意指标的坐标,按不同的坐标做相应的调整,本例是100的坐标。
这些公式只为学习函数用,不做买卖参考。公式中是以分析家为主要对象表述的,时间久远了,假如不能和现在的软件配套了,不必强求。
第六讲:均线(选股)的基本形态
提示:K线的初步平均。(O+H+L+C*2)/5; 或 (H+L+C*2)/4;
一般认为:收盘价是最有说服力的和最有价值的,它是每天激烈争夺的最后妥协。但也有人认为:收盘价固然重要,其他价格也是争夺的产物。所以将全天的几种价格因素都考虑进去更能反映每天的真实情况。
1、最简单的指标线
(1)均价线 就是移动平均线MA,“MA”表示的就是计算平均值。
MA1=MA(CLOSE,5);5日平均线=(今天收盘价+昨天收盘价+.....--5天前的收盘价)/5;
MA2=MA(CLOSE,10);10日平均线=(今天收盘价+昨天收盘价+......+10天前的收盘价)/10;
(2)均量线 均价线会了,照着葫芦画瓢,把收盘价CLOSE换成成交量VOL就行了!
例:MA1:MA(VOL,5);
MA2:MA(VOL,10);
2、再次平均 指将已有的均线(多条均线)相加后进行再平均。
MA1=MA(CLOSE,5);
MA2=MA(CLOSE,10);
(MA1+MA2)/2;
3、N日均线向上 (本题反映均线波浪式延伸过程中某阶段的形态。)
AA:=MA(C,N);
BB:=REF(AA,1);
AA>BB
均线向下呢? AA< BB 就可以了。
N日均线走平怎么表述?AA=BB
4、均线由下跌状态刚刚转为上升
AA:=MA(C,N);
COUNT(AA<REF(AA,1),6)=5 //用来确认前5日处于下跌状态
AND AA>REF(AA,5);
5、年线拐头向上
A250:=MA(C,250);
REF(A250,1)<REF(A250,2) AND A250>REF(A250,1);
6、两条均线交叉
股软中专门设定了一条函数来描述两条线交叉:CROSS(X,Y),此函数通用。
假如两条均线一条名叫X,另外一条叫Y 且(X<Y)
CROSS(X,Y)表示X向上穿过了Y 通称:金叉
CROSS(Y,X)表示Y向上穿过了X 通称:死叉
特别提示:交叉有两种,一种是向上交叉,另一种是向下交叉。如果要求向上交叉时,X线必须比前一天高,所以需要加上 X>REF(X,1) 。完整的表达式为:CROSS(X,Y)AND X>REF(X,1)
加餐:
上述交叉是不限制周期的,有时我们会感到交叉特别频繁,如何取得他们较长时间交叉一次的数据呢,系统提供了另一个函数: LONGCROSS(X,Y,N) 两条线维持N周期后交叉。如果N等于15,则X Y两条线超过15天后交叉有效,否则不输出。
7、多次金叉(以常见的MACD指标为例)
(1)二次金叉
(COUNT(CROSS(DIF,DEA),20)=2 AND CROSS(DIF,DEA);
(2)二次死叉
COUNT(CROSS(DEA,DIF),20)=2 AND CROSS(DEA,DIF);
(3)0轴上二次金叉
COUNT(CROSS(DIF,DEA) AND DEA>0,20)=2 AND CROSS(DIF,DEA) AND
DEA>0;
(4)0轴上三次金叉
COUNT(CROSS(DIF,DEA) AND DEA>0,20)=3 AND CROSS(DIF,DEA) AND
DEA>0;
8、三线金叉
A5:=MA(C,5);
A10:=MA(C,10);
A30:=MA(C,30);
AA:=CROSS(A5,A10);
BB:=CROSS(A5,A30);
CC:=CROSS(A10,A30);
COUNT(AA,3)=1 AND COUNT(BB,3)=1 AND COUNT(CC,3)=1;
9、三线同时金叉
A5:=MA(C,5);
A10:=MA(C,10);
A20:=MA(C,20);
AA:=CROSS(C,A5);
BB:=CROSS(C,A10);
CC:=CROSS(C,A20);
AA AND BB AND CC;
10、均线多头排列
A1:=MA(C,N1);
A2:=MA(C,N2);
A3:=MA(C,N3);
A4:=MA(C,N4);
A1>A2 AND A2>A3 AND A3>A4;
11、均线空头排列3天以上
A1:=MA(C,N1);
A2:=MA(C,N2);
A3:=MA(C,N3);
A4:=MA(C,N4);
COUNT(A1< A2 AND A2< A3 AND A3< A4,3)>=3;
12、向前N日至M日出现过均线死叉(P1< P2)
AA:=MA(C,P1);
BB:=MA(C,P2);
CC:=REF(CROSS(BB,AA),N);
COUNT(CC,M);
13、均线粘合
MA1:=MA(C,5);
MA2:=MA(C10);
MA3:=MA(C,20);
P1:=ABS(MA1-MA2)+ABS(MA2-MA3);
P1/C<1/100 AND MA1>REF(MA1,1) AND MA2>REF(MA2,1);
14、均线粘合(另种表达式)
MA1:=MA(C,5);
MA2:=MA(C,10);
MA3:=MA(C,30);
A:=MAX(MAX(MA1,MA2),MA3);
B:=MIN(MIN(MA1,MA2),MA3);
COUNT(ABS(A-B)/B<0.01,3)=3;表示已粘合3天(含3天)以上
15、多条均线粘合 如5、10、20、30、120、250日移动平均线粘合
aa:=(ma(c,5)+ma(c,10)+ma(c,20)+ma(c,30)+ma(c,120)+ma(c,250))/6;
up:=aa*n/100+aa;
down:=aa-aa*n/100;
count(BETWEEN(ma(c,5),up,down) and BETWEEN(ma(c,10),up,down) and BETWEEN(ma(c,20),up,down) and BETWEEN(ma(c,30),up,down)and BETWEEN(ma(c,120),up,down) and BETWEEN(ma(c,250),up,down),m)=m;
n(2,1,500) m(10,1,100)调整参数n为粘合程度,n值越小粘合的程度越高,即均线距离越近;m为粘合周期。
16、乖离均线
BIAS1:(CLOSE-MA(CLOSE,N))/MA(CLOSE,N)*100;
当日股价与N日均线的乖离率=(当日股价-N日均价)/N日均价*100;
特别提示:乖离均线是由乖离率的“点”连成的均线。此线虽非普通均线,因常用,故单提出来。
原理:以当日的均线价格为准,股价和均价之间的差距称为乖离程度,以乖离程度除以均价的百分比就是乖离率。
新兵老头ch
新兵有个想法,不知怎样用公式表达,望高手指教。
各股涨跌同步,没有强弱的情况下,大盘的涨跌幅度对应分摊到各股,各股的涨跌幅度是多少?如何用公式表达。
我的意思是:大盘涨跌幅度,对应到各股是不同的。比如:大盘下跌1%,各股分别应下跌多少(假设各股之间没有强弱之分)才能对应。
老师答:
(INDEXC/REF(INDEXC,1)-1)/1400;
全A股1400多支,每天开盘的约1400支,不考虑各股所占比重,均摊如上。注意,负数时为下降。
第七讲从源码中提取选股公式
要点:从后往前找,删除没用条,去掉修饰符,个别加等号。
例一:找出买点
VAR1:=(((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36))) * 100);
VAR2:=SMA(VAR1,5,1);
VAR3:=SMA(VAR2,8,1);
H1:EMA(CLOSE,8),LINETHICK1;
H2:EMA(H1,20),LINETHICK1;
VAR4:=(CROSS(VAR2,VAR3) AND (VAR3 < 20));
VAR5:=((CLOSE > (LLV(CLOSE,60) + (0.3 * LLV(CLOSE,60)))) AND VAR4);
VAR6:=IF((CLOSE > 1000),VAR4,VAR5);
M1:EMA(CLOSE,60);
M2:EMA(CLOSE,89);
M3:EMA(CLOSE,233),LINETHICK1;
M4:EMA(CLOSE,583),LINETHICK1;
STICKLINE((H1 > H2),H1,H2,1,0.8);
STICKLINE((H1 < H2),H1,H2,1,0.8);
DRAWTEXT((CROSS(H1,H2) AND (CLOSE < EMA(CLOSE,60))),(LOW * 0.92),''买'');
DRAWTEXT(VAR6,(HIGH * 1.08),''卖'');
分解说明:
VAR1:=(((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36))) * 100);
VAR2:=SMA(VAR1,5,1);
VAR3:=SMA(VAR2,8,1);
H1:EMA(CLOSE,8),LINETHICK1;
H2:EMA(H1,20),LINETHICK1;
VAR4:=(CROSS(VAR2,VAR3) AND (VAR3 < 20));
VAR5:=((CLOSE > (LLV(CLOSE,60) + (0.3 * LLV(CLOSE,60)))) AND VAR4);
VAR6:=IF((CLOSE > 1000),VAR4,VAR5);
M1:EMA(CLOSE,60);
M2:EMA(CLOSE,89);
M3:EMA(CLOSE,233),LINETHICK1;
M4:EMA(CLOSE,583),LINETHICK1;
STICKLINE((H1 > H2),H1,H2,1,0.8);
STICKLINE((H1 < H2),H1,H2,1,0.8);
第一步{从后往前找}找到下面这行“买”的输出语句。然后看这条语句的基本条件。
DRAWTEXT((CROSS(H1,H2) AND (CLOSE < EMA(CLOSE,60))),(LOW * 0.92),''买'');
查看结果:输出文字 交叉 条件,条件 直 接 输 出 语句 输出位置 文字
DRAWTEXT(VAR6,(HIGH * 1.08),''卖'');
知道“基本条件”为 H1,H2,那么与此没有任何关系的语句从后往前删除。删的办法有两种:一是直接删掉;二是先用{}括上,待没问题时再一次性删除。加蓝色的为找到的不输出语句。
第二步{删除没用条}后,剩下的有用语句:
H1:EMA(CLOSE,8),LINETHICK1; {加蓝的为修饰类函数,原则一律删除。}
H2:EMA(H1,20),LINETHICK1;
DRAWTEXT((CROSS(H1,H2) AND (CLOSE < EMA(CLOSE,60))),(LOW * 0.92),''买'');
第三步{去掉修饰符} 分别去掉:指标线粗细、显示文字、文字位置函数和文字
H1:EMA(CLOSE,8);
H2:EMA(H1,20);
CROSS(H1,H2) AND CLOSE < EMA(CLOSE,60);
第四步{个别加等号} 条件选股只能输出一条语句,上面这三行为全部输出,所以,作为“条件”的前两行还必须在冒号后面加上等号,表达不输出。结果:
H1:=EMA(CLOSE,8);
H2:=EMA(H1,20);
CROSS(H1,H2) AND CLOSE < EMA(CLOSE,60);
例二、找出笑脸和买入信号
以本人发过的《跟庄建仓》为例。
A01:=DYNAINFO(7);
A03:=BARSCOUNT(CLOSE);
A04:=(SMA((CLOSE / HHV(HIGH,120)),3,1) * 100);
A05:=IF((A03 > 20),A04,0);
A06:=IF((LOW > A01),0,IF((HIGH < A01),1,(((A01 - LOW) + 0.009) / ((HIGH - LOW) + 0.009))));
A07:=DMA(A06,(VOL / CAPITAL)) * 60;
A09:=IF((((A07 > 0) AND (A07 > REF(A07,1))) AND (A05 <= 88)),A07,0);
Var1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1);
Var2:=EMA(Var1,8);
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
FILLRGN(趋势>80,趋势,80);
DRAWICON(CROSS(趋势,0),0,1);
FILLRGN((A09 > 0 AND (趋势<20 OR 趋势>REF(趋势,1)AND 趋势<50)),0,A09),colorFFFF00;
机构建仓区:0,LINETHICK0,colorFFFF00;
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
STICKLINE(趋势<=13,0,20,5,0),colorcc9900;
DRAWTEXT(FILTER(趋势<=13,15),30,''准备现金''),colorcc9900;
STICKLINE(趋势<=13 AND Var4>13,0,50,5,0),color0099ff;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
DRAWTEXT(Var5,60,''买入''),color0099ff;
STICKLINE(趋势>=90 AND Var4,0,30,5,0),colorgray;
Var6:=FILTER(趋势>=90,10);
DRAWTEXT(Var6,40,''清仓''),colorgray;
Var7:=LLV(LOW,30);
Var8:=HHV(HIGH,30);
Var9:=EMA((CLOSE-Var7)/(Var8-Var7)*4,4)*25;
STICKLINE(Var9>90,100,105,10,2),COLORRED;
STICKLINE(CROSS(Var4,-40),10,55,6,0),COLORRED;
Var10:=(Var9-LLV(Var9,4))/(HHV(Var9,4)-LLV(Var9,4))*100;
DRAWTEXT(IF(CROSS(Var9,Var10) AND Var9>87,95,0),88,''险''),Color00FF00,ALIGN1;
DRAWICON(CROSS(90,Var9),95,9);
Var11:=SMA(ABS(L-REF(L,1)),3,1)/SMA(MAX(L-REF(L,1),0),3,1)*100;
Var12:=HHV(Var11,30)*8;
火焰山:EMA(IF(LOW<=Var7 AND 趋势<40,(Var11+Var12),0),3)/618,COLORRED,linethick2;
STICKLINE(火焰山>0,0 ,火焰山*1.2,8,0 ),COLORRED;
Var13:=(MA(C,1)+MA(C,3)+MA(C,5)+MA(C,7)+MA(C,9))/5;
Var14:=(MA(C,2)+MA(C,4)+MA(C,6)+MA(C,8)+MA(C,10))/5;
趋势线: 趋势,colorff0000;
Var16:=MAX(EMA(Var13,2)-EMA(Var14,5),0)*200;
Var17:=EMA(Var16,5);
波浪峰:Var17,stick,colorff00ff;
STICKLINE(Var17<REF(Var17,1),0,Var17,1,0),color00ff00;
Var18:=MA(趋势线,8);
if(CROSS(Var2,Var18) AND Var2<15,50,0),COLORRED;
DRAWTEXT(CROSS(趋势线,Var2)AND 趋势线>REF(趋势线,1)AND 趋势线<50,50,''追涨''),COLORFF0000;
分析:这个公式输出语句非常多,但多数都是用于趋势判断的。所以不用管它。仍按我们既定的思路进行。
第一步{从后往前找},先删除发出信号关键语句之后的(红色为输出语句,它以下的语句已经删去,蓝色为等待下步删除的)
A01:=DYNAINFO(7);
A03:=BARSCOUNT(CLOSE);
A04:=(SMA((CLOSE / HHV(HIGH,120)),3,1) * 100);
A05:=IF((A03 > 20),A04,0);
A06:=IF((LOW > A01),0,IF((HIGH < A01),1,(((A01 - LOW) + 0.009) / ((HIGH - LOW) + 0.009))));
A07:=DMA(A06,(VOL / CAPITAL)) * 60;
A09:=IF((((A07 > 0) AND (A07 > REF(A07,1))) AND (A05 <= 88)),A07,0);
Var1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1);
Var2:=EMA(Var1,8);
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
FILLRGN(趋势>80,趋势,80);
DRAWICON(CROSS(趋势,0),0,1);
FILLRGN((A09 > 0 AND (趋势<20 OR 趋势>REF(趋势,1)AND 趋势<50)),0,A09),colorFFFF00;
机构建仓区:0,LINETHICK0,colorFFFF00;
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
STICKLINE(趋势<=13,0,20,5,0),colorcc9900;
DRAWTEXT(FILTER(趋势<=13,15),30,''准备现金''),colorcc9900;
STICKLINE(趋势<=13 AND Var4>13,0,50,5,0),color0099ff;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
DRAWTEXT(Var5,60,''买入''),color0099ff;
第二步{删除没用条}后
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
DRAWICON(CROSS(趋势,0),0,1);
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
DRAWTEXT(Var5,60,''买入''),color0099ff;
第三步{去掉修饰符后}:
趋势:=EMA(Var3,3)-10;
CROSS(趋势,0);
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
Var5;
第四步{个别加等号}本公式中的“条件”语句都是不输出的,所以此项省略,但因是要笑脸和买入两个信号,所以还必须把它们连结起来:
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
CROSS(趋势,0)or Var5;
江南茶外汇 请问老师?
我的软件是银河双子星我在写习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。时做了如下操作:
1,MA1:=MA(CLOSE,10);MA2:=MA(CLOSE,20);CROSS(MA1,MA2);
2,C:=CLOSE/REF(CLOSE,1)>3/100;
3,V:=VOL/REF(VOL,1)>2;
4,CROSS(MA1,MA2)ANDCLOSE/REF(CLOSE,1)>3/100AND(VOL/VOL,1)>2;
但我完成测试时电脑不给通过 上面提示说"行2:缺少;"
请问我是哪里错了?谢谢!
老师答:以这个题目讲解一下。
1、收盘价等专用函数如(C,O,H,L,V,AND,OR)是不能作为引导语句的。
2、后面输出和前面交待的条件多处重复。
整理后的:
MA1:=MA(CLOSE,10);
MA2:=MA(CLOSE,20);
CROSS(MA1,MA2)ANDCLOSE/REF(CLOSE,1)>3/100 AND VOL/(VOL,1)>2;
或者:
MA1:=MA(CLOSE,10);
MA2:=MA(CLOSE,20);
AA:=CROSS(MA1,MA2);
BB:=CLOSE/REF(CLOSE,1)>3/100;
VV:=VOL/REF(VOL,1)>2;
AA AND BB AND VV;
编写公式如同做数学题,要有一个反复领会和实践的过程,不能指望一蹴而就。
没事时打开公式编辑器,从简单的入手,编几个,看看图形,慢慢就会,熟能生巧。
第八讲 函数的综合运用
第一部分:引用已有公式中的数据
基本引用例一
"macd. diff", "macd.dea";
基本格式: 指标名称 语句名称 (注意:必须用双引号引上)
加入参数例二
"kdj. k" (9,3,3) ;
基本格式:指标名称 语句名称 参数 (指标名称和语句名称之间用隔点.隔开)加入参数例三
周m:"macd. diff #WEEK";
引用周线:指标名称 语句名称 周函数 (注意:周函数前加#字号)
月K:"kdj.k#MONTH";
引用月线同上,只是换成月函数。
应用实例:主图 顶底背离
A1:=BARSLAST(ref(cross("macd.diff"(12,26,9),"macd.dea"(12,26,9)),1));
B1:=ref(c,A1+1)>c and ref("macd.diff"(12,26,9),A1+1)<"macd.diff"(12,26,9) and cross("macd.diff"(12,26,9),"macd.dea"(12,26,9));
MACD底背离:STICKLINE(FILTER(B1>0,5),0,0.75,3,0),COLOR00FF00;
DRAWTEXT(FILTER(B1>0,5),0.57,''MACD底背离''),COLOR00FF00;
A2:=BARSLAST(ref(cross("kdj.k"(9,3,3),"kdj.d"(9,3,3)),1));
B2:=ref(c,A2+1)>c and ref("kdj.k"(9,3,3),A2+1)<"kdj.k"(9,3,3) and cross("kdj.k"(9,3,3),"kdj.d"(9,3,3));
KDJ底背离:STICKLINE(FILTER(B2>0,5),0,1,3,0),COLORYELLOW;
DRAWTEXT(FILTER(B2>0,5),0.80,''KDJ底背离''),COLORYELLOW;
A3:=BARSLAST(ref(cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24)),1));
B3:=ref(c,A3+1)>c and ref("RSI.RSI1"(6,12,24),A3+1)<"RSI.RSI1"(6,12,24) and cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24));
RSI底背离:STICKLINE(FILTER(B3>0,5),0,0.5,3,0),COLORFFCC66;
DRAWTEXT(FILTER(B3>0,5),0.25,''RSI底背离''),COLORFFCC66;
DRAWTEXT(FILTER(D1>0,5),1.47,''MACD顶背离''),COLOR0066FF;
C2:=BARSLAST(ref(cross("kdj.d"(9,3,3),"kdj.k"(9,3,3)),1));
D2:=ref(c,C2+1)"kdj.k"(9,3,3) and cross("kdj.d"(9,3,3),"kdj.k"(9,3,3));
KDJ顶背离:STICKLINE(FILTER(D2>0,5),2,1,3,0),COLORRED;
DRAWTEXT(FILTER(D2>0,5),1.2,''KDJ顶背离''),COLORRED;
C3:=BARSLAST(ref(cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24)),1));
D3:=ref(c,C3+1)"RSI.RSI1"(6,12,24) and cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24));
RSI顶背离:STICKLINE(FILTER(D3>0,5),2,1.5,3,0),COLORFF00FF;
DRAWTEXT(FILTER(D3>0,5),1.75,''RSI顶背离''),COLORFF00FF;
第二部分 逐步增加函数
以均线为例,主图:
基本句型
MA5:MA(C,5);
MA10:MA(C,10);
MA30:MA(C,30);
MA60:MA(C,60);
增加颜色(注:在没有颜色输出符号时,系统会自动加上颜色)
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW;
将10日均线变成小圆圈线
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW;
将60日均线加粗
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW,LINETHICK3;
在5日均线金叉10日均线处显示符号
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW,LINETHICK3;
金叉:=CROSS(MA5,MA10);
DRAWICON(金叉,L,1);
DRAWTEXT(金叉,L,''金叉'');
STICKLINE(金叉,H,L,6,0); (注:这三种显示方式用其中一种就行)
30日均线向上时显示红色,否则为绿色
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW,LINETHICK3;
金叉:=CROSS(MA5,MA10);
DRAWICON(金叉,L,1);
DRAWTEXT(金叉,L,''金叉'');
STICKLINE(金叉,H,L,6,0);
PARTLINE(MA30>=REF(MA30,1),MA30),COLORRED;
PARTLINE(MA30
(注:最后两行为划分段线,大智慧没有此项功能,大智慧2和分析家 同花顺用下面这行)
PARTLINE(MA30,MA30>=REF(MA30,1),RGB(255,0,0),MA30
第九讲:常用函数示例
系统中的函数非常多,其中的一些函数只有在特定的语句中才会用得到。本文介绍几个能经常用到函数,方便大家在以后编写时使用。
1、COUNT 统计总数
原理:COUNT (X,N),统计N周期中满足条件X的周期数,若N=0则从第一个有效值开始。
例如:COUNT(C
以前曾列举过这个函数,今天单独拿出来,是想进一步说明它的应用原理。以上面这个例子,单独使用是没有任何意义的。如语句:金叉 AND COUNT(C
那么怎么才能发挥它的作用呢?还必须在它的后面加上我们要求的条件。如:10周期内收阴的周期数大于7,完整的表达式:金叉AND COUNT(C7; 再举几个例子:
成交量连续5天上升:COUNT(VOL>(VOL,1),5)=5;
如果求5天内只能1天上升:COUNT(VOL>(VOL,1),5)=1;
如果在5天内成交量大于5日均量有2天以上呢COUNT(VOL>MA(VOL,5),5)>=2;
2、FILTER 信号过滤
用法:FILTER(X,N),X满足条件后,将其后N周期内的数据置为0。此函数常应用于画图标、显示文字以及选股公式出现连续信号时。
例如:当3日均线和5日均线金叉时在最低价位置标记“金叉”:
MA3:=MA(CLOSE,3);
MA5:=MA(CLOSE,5);
AA:=CROSS(MA3,MA5);
DRAWTEXT(AA,L,''金叉'');
这样有时就会出现“金叉”字重叠现象,杂乱难看。若过滤一下,舍去5天内重复出现的,则最后一句改为:
DRAWTEXT(FILTER(AA,5),L,''金叉'');就不会出现信号过多的现象了。
3、SUM 求和
用法:SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始。
例如:SUM(VOL,10),表示统计从10周期以来的成交量总和。这个好理解,就不多说了。
4、HHV 最高值
用法:HHV(X,N),求N周期内X的最高值,N=0则从第一个有效值开始。
例如:HHV(HIGH,30),表示求30日最高价。那么10天内的最高收盘价呢?HHV(C,10)。
另外还有一个与此相反的函数 最低值 LLV 原理与此相同。
5、MAX 最大值
用法:MAX(A,B)返回A和B中的较大值
例如:MAX(C,0),表示取得收盘价和开盘价中较大的值。若求开盘价、收盘价和昨天收盘价中的最大值,则:MAX(MAX(C,0),REF(C,1));就是叠加一个最大值函数。
另外,还有一个相反函数:MIN,最小值,原理与最大值相同。
注:最大值与最高值是不能混用的。
6、COST 成本分布
用法:COST(20) 表示20%获利盘的价格是多少
即有20%的持仓量在该价格以下,其余80%在该价格以上,为套牢盘。
7、WINNER 获利盘比例 与成本分布相对应,都是计算获利情况的。
WINNER(10) 表示10元价格的获利盘比例;
WINNER(CLOSE) 表示以收盘价卖出的获利盘比例,如该值返回0.2,表示在当天的收盘价上卖出,只有20%的人是赚钱的。
以上两个函数仅对日线分析周期比较有效。
以上两个函数在有些股软或《未来函数检测器》中被认定为未来函数。
据有人考证,该函数的在极个别的情况下确实出现过信号漂移现象。但一般情况下还是比较稳定的。
第十讲:系统常用指标原理解析
例一、BIAS乖离率
指标原理:BIAS是运用股价指数与移动平均值的比值关系,观测股价偏离移动平均线的程度,以此决定投资者的买卖行为。
计算方法:(当日收盘价-当日MA均线值)/当日MA均线值*100
BIAS1:(CLOSE,MA(CLOSE,L1))/MA(CLOSE,L1)*100;
BIAS2:(CLOSE,MA(CLOSE,L2))/MA(CLOSE,L2)*100;
BIAS3:(CLOSE,MA(CLOSE,L3))/MA(CLOSE,L3)*100;
应用原则:偏离率与移动平均值一致时,偏率为0,偏离率为正值时,偏离率在移动平均线上方,说明股市呈上升趋势;偏离率为负值时,偏离率在移动平均线下方,说明股市有下跌趋势;Y值偏离移动移动平均线的界定范围大体在15%至-15%,即:当Y值在0-15%时,可适当卖出股票,股价有可能反跌,当Y值在0-15%时,可适当买入股票,股价有可能反弹。
例二、MACD(柱线的编写实例)
指标原理:MACD实质上是基于BIAS乖离率的变形应用。它是利用二条不同速度(一条变动的速率快--短期的移动平均线,另一条较慢--长期的移动平均线)的指数平滑移动平均线来计算,二者之间的差异状况(DIF)作为研判行情的基础,然后再求其DIF之9日平滑移动平均线,即MACD线,MACD实际就是运用快速与慢速移动平均线聚合与分离的征兆,来研判买进与卖出的时机和讯号。
计算方法:EMA:指数平滑移动平均线
N:周期 DIFF:乖离率 DEA:离差平均值
移动平均线(12日EMA)=前一日EMA*/1-2/(N+1)+今日收盘价*2/(N+1)
DIFF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:EMA(DIFF,M);
MACD:2*(DIFF-DEA),COLORSTICK;
在最后一句话当中,2是实际一个常数参数,它在这里的作用在于放大效果。
应用原则:
1、DIF与DEA均为正值时,大势属多头市场;
2、DIF与DEA均为负值时,大势属空头市场;
3、DIF向上突破DEA时,可买入;
4、DIF向下突破DEA时,应卖出;
例三、RSI指标
指标原理:该指标根据估价“择强汰弱”的原理,以特定时期内股价的变动情况推测价格未来的变动方向,并根据股价涨跌幅度显示市场的强弱,通过比较一段时期内的平均收益涨数和平均收盘跌数来分析市场买卖盘的意向和实力,从而作出未来市场的走势的分析。
计算方法:计算公式为:rsi=n日内收盘涨幅平均值/n日内收盘涨跌幅绝对值的平均值的平均值*100。
编写要点:该指标由两条指标线组成,编写出其一,其他的依次类推;涨幅的表达用“今日收盘-前日收盘”,即“LC:=CLOSE-REF(CLOSE,1)”表示;ABS(X)表示求得绝对值;MAX(CLOSE-LC,0),表示如果本周期上涨即得上涨值,否则取0,很多时候我们利用MAX函数使变量和0进行比较,然后求得变量中的正值。
LC:=REF(CLOSE,1);
RSI1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;
RSI2:SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;
RSI3:SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100;
应用原理: RSI取值超过50,表明市场进入强势。RSI低于50,表明市场处于弱势。
短期的RSI在20以下的水平,由下往上交叉长期的RSI时,为买进讯号。短期的RSI在80以上的水平,由上往下交叉长期的RSI时,为卖出讯号。
从RSI与股价的背离方面判断行情,RSI处于高位,并形成一峰比一峰低的两个峰,而此时,股价却对应的是一峰比一峰高,这叫顶背离。股价这一涨是最后的衰竭动作。这是比较强烈的卖出信号。RSI在低位形成两个依次上升的谷底,而股价还在下降,这是最后一跌或者说是接近最后一跌,是可以开始建仓的信号。
连接RSI连续的两个底部,划出一条由左向右上方倾斜的切线,当RSI向下跌破这条切线时,是一个很好的卖出讯号。连接RSI连续的两个峰顶,划出一条由左向右下方倾斜的切线,当RSI向上突破这条切线时,是一个很好的买进讯号。
例四、KDJ指标
KDJ随机指标是欧美期货常用的一套技术分析工具。KD线的随机观念,远比移动平均线实用很多。因为移动平均线在习惯上其以收盘价来计算,无法表现出一段行情的真正波幅。
编写要点:RSV的计算方法为收盘价和N1天内的最高和最低的差的比值,使用函数HHV、LLV可以轻松地得到最高和最低;
RSV:=(CLOSE-LLV(LOW《N1))/(HHV(HIGH,N1)-LLV(LOW,N1))*100;
K:SMA(RSV,N2,1);
D:SMA(K,N3,1);
J:3K-2D
买卖原则:K值由右边向下交叉D值作卖,K值由右边向上交叉D值作买。
D值<20%超卖,D值>80%超买;J>100%超买,J<100%超卖,KD值于50%左右徘徊或交叉时,无意义。
例五、OBV指标
指标原理:有些人把每一天的成交量看作像海里的潮汐一样,形象地称OBV为能量潮。我们可以利用OBV验证当前股价走势的可靠性,并可以由OBV得到趋势可能反转的信号,对于准确预测未来是很有用的,比起单独使用成交量,OBV比成交量看得清楚。
计算方法:OBV构成的基本原理,是根据潮涨潮落的原理。每一天的成交量可以理解成潮水,但这股潮水是向上还是向下,是保持原来的方法,还是中途回落?这个问题就有当天的收盘价与昨天的收盘价的大小比较而决定。
1、如果今收盘价≥昨收盘价,则这一潮水属于多方的潮水,
2、如果今收盘价<昨收盘价,则这一潮水属于空方的潮水。
SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE
买卖原则:OBV不能单独使用,必须用股价曲线结合使用才能发挥作用。从OBV的取值大小不能得到任何结论。我们关心的只是近日的OBV曲线的相对走势,而OBV的取值的绝对数字对我们是没有用处的。OBV曲线的上升和下降对我们进一步确认当前股价的趋势有着很重要的作用。股价上升(或下降),而OBV也相应地上升(或下降),则我们可以更相信当前的上升(或下降)趋势。股价上升(或下降),但OBV并未相应的上升(或下降),则我们对目前的上升(或下降)趋势的认可程度就要打折扣。这就是背离现象。OBV已经提前告诉我们趋势的后劲不足,有反转的可能。在股价进入盘整区后,OBV曲线会率先显露出脱离盘整的信号,向上或向下突破。
例六、BOLL指标
指标原理:利用统计学原理,求出股价的标准差及其信赖区间,其上下限的范围不被固定,随股价的变动而表动。
计算方法:先规定一个标准差,再求算出一个上下限波动区间,其波动的上下限随股价浮动。
MID=N天的收盘价的均价;
STD=N天的收盘价的标准差;
UPPER=MID+离差系数*STD;
LOWER=MIN-离差系数*STD;
编写要点:STD(X,N)表示计算标准差。首先得到一段时间N天的MA,然后按照您要设定的参数赋与标准差之后加减即得到上下两根BOLL线,中间的通道为BOLL通道。
MID:MA(CLOSE,N);
UPPER:MID+P*STD(CLOSE,N);
LOWER:MID-P*STD(CLOSE,N);
买卖原则:
1、当布林通道由宽变窄时,说明股价逐渐向中值回归,股市进入一个整理区间,投资者应以观望为主。
2、当通道由窄变宽时,意味着行情开始发生变化,如果股价逼近或穿过上限值,表明超买力量增强,股市可能会短期下跌,此时应卖出股票,反之,当股价逼近或穿过下限值时,表明超卖力量增强,股市可能会短期反弹,此时应买进股票。
3、柱体在布林通道中沿上限线运行,意味涨幅会持续。
例七、威廉指标W&R
指标原理:威廉指标是一种利用振荡点来反映市场超买超卖现象,预测循环周期内的高点和低点,从而提出有效的信号来分析市场短期行情走势,判断股市强弱分界的技术指标。
AA:=(HHV(HIGH,N)-CLOSE);
BB:=(HHV(HIGH,N)-LLV(LOW,N));
W&R:100*AA/BB
买卖原则:当W&R高于80%,即处于超卖状态,行情即将见底,应当考虑买入。W&R低于20%,即处于超买状态,行情即将见顶,应当考虑卖出。在W&R进入高位后,一般要回头,如果这时股价还继续下跌,这就产生背离,是进货的信号。在W&R进入低位后,一般要反转,如果这时股价还继续上升,这就产生背离,是卖出的信号。W&R连续几次撞顶(底),局部形成双重或多重底(顶)则是(进货)出货的信号。
附件一: 关于“未来函数”问题的探讨
很多人使用指标公式,不知有“未来函数”,更有人一提到“未来函数”就谈虎色变,大骂“未来函数”之害,这都是不正确的。要弄懂“未来函数”的本质,必须知其然并知其所以然,下面从五个方面进行探讨。
一、什么是“未来函数”
所谓“未来函数”,是指可能引用未来数据的函数,即引用或利用当时还没有发生的数据对之前发出的判断进行修正的函数。具体地说,就是本周期结束后显示的指标值,包括线段和买卖提示信号,可能在以后发生新的数据后改变位置或消失。通俗地讲,含有不确定性判断的指标公式,就是含“未来函数”的指标公式。
含有未来数据指标的基本特征是买卖信号不确定,常常是某日发出了买入或卖出信号(线段的转折点与此同理),第二天如果继续下跌或上涨,则该信号消失,并在明天新的位置标示出来。
二、含有未来函数公式的种类
(一)以之字转向为代表的ZIG类函数。我们最常见到和经常提到的多指此类。
1、ZIG(K,N)之字转向。
当价格变化量超过N%时转向。K表示 0:开盘价;1:最高价;2:最低价;3:收盘价
例如:ZIG(3,5)表示收盘价的5%的ZIG转向 。
2、PEAK(K,N,M)向前数前M个ZIG转向波峰值。(以下用法略。点击软件中相应的函数时,下面有提示或用法)
3、PEAKBARS(K,N,M)前M个ZIG转向波峰到当前距离。
4、TROUGH(K,N,M)前M个ZIG转向波谷值。
5、TROUGHBARS(K,N,M)前M个ZIG转向波谷到当前距离。
6、FLATZIG、FLATZIGA、PEAKA、PEAKBARSA、TROUGHA、ZIGA等等都属于此类未来函数。
(二)准未来函数。
这部分函数存在引用未来数据的问题,但不如上述函数明显,有些目前争议较大。
1、FFT(X,N)、傅立叶变换。对序列X进行傅立叶变换或变换处理后反变换。
2、BACKSET(X,N)、向前赋值。若X非0,则将当前位置到N周期前的数值设为1。
3、WINNER、LWINNER等获利盘比例类的和COST也有未来函数的性质,有时可使信号产生漂移。
(三)、使用跨周期数据。
这是一种最为隐弊的方法,它的危害性更大。例如在日线中引用本周周线或本月月线数据时,就会造成本周或本月股价上涨时则信号成功;如果股价下跌,则信号自动消失。用公式检测的办法测试不出来。我们经常见到的用KD月、周、日同时金叉进行选股,就属于此类,看起来成功率很高,实际是虚假的。
(四)、指定买卖日期或买卖价格。
一般多发生在交易系统里。比如指定最低价买入,最高价卖出,或指定涨跌幅度,这些在交易过程中是无法实现的,所以尽管测试成功率时非常高,其实没有任何实用价值。
三、未来数据的检测方法
知道了未来函数的特征和种类,具备了认识公式中有无未来数据的基础,具体应用中如何识别呢,有以下方法:
1、公式中凡是用了ZIG之字转向类的函数和使用了跨周期数据(如上所述)均应视为使用了未来函数。
2、看买卖信号是否确定。凡是已经出现的信号在新的一天或若干周期中存在漂移的,公式中存在未来函数。
3、从指标图中鉴别。凡是买卖提示信号极为准确的(应看多张图),即没有失误的,肯定有未来函数。
4、用股软鉴别。A、使用分析家软件的系统测试平台检测,是否含有未来数据系统会自动提醒。如果想亲自看看信号的稳定性和历史的变化过程,分析家的时空隧道可以令时光倒流让你回到从前,信号如何产生、如何消失一目了然。 B、使用飞狐软件的,更为简单,在左侧《管理面板》中用右键单击公式的名称,在出现的下拉菜单中点击“公式检测”即可。
此外还有一种方法是搞清公式的算法。对于源码公式,逐条分析后,是否含有未来数据的引用立刻便知。
四、未来数据在实战中的运用
1、未来数据对于阶段顶底转折点的判断是非常具有参考价值的。他可以给操作者一个可能转折的点位,这是一般指标所无法办到的。经过比较严格的限制优化后完全可以作为选股依据。
2、含未来数据的公式信号会由于继续下跌或上涨而后移,因此当其信号出现后,要结合其他指标是否也发出信号,同时也要结合大盘形势。在熊市中含未来数据的卖出信号较准,买入信号不太准;而在牛市中买入信号较准,而卖出信号不太准,这较符合这么一个规律:在熊市中每次逢高抛出都是正确的,在牛市中每次逢低买入都是正确的。
3、在跌势中含未来数据指标的买入信号肯定是经常向后移的,因此要慎用,不仅是含未来数据的指标,就是不含未来数据的买入信号虽然不变,但是也是发出了又下跌,再发出,再下跌,因此也要慎用,但是卖出信号在跌势中反倒是比较准的。
对于未来函数应当充分了解其意义后针对使用。对于不了解指标的运算方法和特性的,慎用为佳。尤其是含有未来数据的引用的的选股公式,不易直接使用。
五,是是非非话“未来”
以下是根据网友的观点归纳整理而成,引用于此,供大家参考:
1、买股票,买的本来就是股票的未来!都是对未来股价的一种预期、一种预测。不管你使用什么样的分析方法,只要你买入或卖出股票了,就本质上而言,你就已经使用未来数据了!
2、未来函数不能直接用,并只作为谨慎参考,用时,要同时提醒自己,这是用未来函数表达的,可能会变异。
3、ZIG是陷阱,也能使人绕开许多陷阱,关键是正确地组织和应用,熟悉指标的特征表达。
4、严格的说动态中的公式都有未来数据,从这层意义上说,未来函数无处不在。因此不必一见到未来数据就头痛。
5、使用未来数据不用花费任何精力就可以轻松获得表面上非常高的成功率。发出的买入信号在实际操作中毫无价值,是一种赤裸裸的欺骗行为,在实战中给投资者带来的惨痛损失和后果苦不堪言。
6、未来数据的要害是什么?从本质上讲是美化历史而并不能从真正意义上揭示(启示)未来,它把历史上的一切功劳归为自己,而完美地回避了所有历史错误。它揭示的只是一种过去时的未来,而非现实意义上的未来。
说明:本文中部分段落引用了网友的“成果”,在此谨致谢意。同时欢迎大家对此问题深入探讨,让未来函数成为我们的工具,更好地为我们服务。
附件二: 高成功率公式背后的陷阱
这是转自“地狱美人”的一篇文章,感觉很好,特提供给大家参考。
说明:本人对其中的观点并不是完全赞同,如“(买价定在“收+高+低/3”)实际是无法操作的,这就是引用未来数据。”一句,此所谓见仁见智的问题。个人认为,整个文章是非常棒的。
如何判断公式的好坏呢?许多人主观第一感觉就是要看公式的成功率有多高,似乎成功率越高,公式的性能越好。有些人就是利用股民这种片面的看法,绞尽脑汁制作了一堆中看不中用的公式欺骗股民,往往采用如下几种骗术:
骗术一:以提高成功率为最终目的,导致信号大量减少或信号过分集中,有迎合某个历史特殊情况的迹象。特点是在历史大底大量出击,其余时间段很少出击甚至是亏损出击,由于历史底部的出击数量权重极大,导致其余阶段即使为失败记录,总体仍能保持高成功率。这就失去了测试结果的统计意义,无任何实战价值!
识别方法:看出击分布图。
友情提示:当您再购买选股公式时,一定要向对方索取出击分布图,假如对方不愿提供,那就要小心了。
许多网站只提供成功率测试图,却不敢把出击分布图贴出来,这样的网站99%是骗人网站,请敬而远之。更有些网站,每天都提供密码验证下载(采取错了就删或者称原件损坏要求重新下载等等伎俩作假),却不敢公布任何评测图,购买前一定要三思。
骗术二:使用攻击涨停板的公式,这类公式,往往短线成功率特别高,出击分布也非常好,具有非常强的迷惑性,许多网站对于出售此类公式乐此不疲,更有某些知名的网站也加入这一行列,标价上千甚至上万元。
这类公式以追击涨停板股票为主,在股票涨停时才发出买入信号,而一旦发出买入信号,往往已经无法买入,即使排队买进了,但尾盘一旦涨停板被打开,买入信号随之消失,此时投资者只能自认倒霉,套在涨停板可不是件好事。
识别方法:看出击案例,出击的股票是否涨停!
攻击涨停板公式
x:=close/ref(close,1)>1.099 and close=high;
y:=vol<ma(vol,5);
x and y;
骗术三:使用未来数据的公式,所谓未来数据,就是靠后面的数据来对时间靠前的结果产生影响,也就是说选出的股票一旦下跌,之前发出的买入信号会自动消失,所以这类公式无论成功率、出击分布、还是实例,均完美得无懈可击,对于制作这类公式出售的人,只能用缺德来形容。
识别方法:一看该网站是否保证无未来数据(当然有些网站为了达到目的有也会说没有),二看该网站的信誉、成立时间的长短,专骗人的网站由于信誉极差,经常每隔几个月就打一枪换一个地方。页面制作简单,不留电话,没有论坛等等。
骗术四:使用偷梁换柱的手法,把MACD指标、威廉指标、布林线、KDJ等等各种常用指标改头换面,采用各种华丽的外表去包装它,浪费系统资源根本就是中看不中用。使用指标不是追求它华丽的外表,而是实用的功能。
以上仅是是些常见的骗术,当然还有更多的就不一一指出了,只希望广大网民在购买使用公式的之前,多去了解有关分析家的常识,多长一份心眼才能让骗子无空可专。本工作室也欢迎大家来信互相交流及咨询。
对于有志于自己编制公式指标的,希望下文能够对您有些帮助:
为了能使自己从繁琐的选股工作中解脱出来,许多公式的编制者会编出一些自己秘密的好公式。但依然实战效果不佳,这可能是他们落入了误区,但离成功已经不远了。不幸的是绝大多数人都会被误区所吞没,变成了公式无用论者。在这里只想谈谈我所走过的几个误区,提醒朋友们小心。
误区一:过分追求成功率或其它测试统计指标
一个公式的好坏,成功率当然是很重要的衡量指标,但也不是唯一指标。成功率过高往往引起信号量减少到很低的水平和信号过分集中,这就失去了测试结果的统计意义,有迎合某个历史特殊情况的迹象。实际上一个好的实用型公式并不一定要求很高的历史测试成功率,70%以上也就不错了。
误区二:对公式中的参数调整过度或过于精雕细啄
一般在公式编制过程中都需要对其中的一些参数进行调整优化。但是任何一个参数在公式中一般都有它的实际意义和适宜的调整范围。如果对参数调整过分,就会导致公式失真,失去公式原本的含义。另外,即使是在合理范围内的调整也不宜过分精细。在很多情况下,调参可以把某个指标(如成功率)调到极大值,但往往会趋向于历史特例,无实际意义。不少分析软件都提供所谓参数优化平台,使用时应小心才是。
误区三:公式由过多的子公式组合而成
公式往往由若干个子公式(或称为子条件)用条件“与”或条件“或”组合而成。每增加一个子条件就会增加公式的自由度,而自由度越大越容易趋向于历史特例,公式的可伤心性随之迅速降低。一般公式的子条件应控制在五个以内。
误区四:对分析软件的算法了解不足,受其误导
很多分析软件的分析平台是有缺陷的,必须弄清楚之后才能对其进行调整,并考虑其影响。例如《分析家》3.16版对买卖价格是按均价计算的,而均价的默认设置是“收+高+低/3”。这看起来很合理,实际上引用了未来数据。因为公式中常用的数值,如收盘价、成交量等,都在收盘时才得知,用其所提示的买入信号指导盘中买入(买价定在“收+高+低/3”)实际是无法操作的,这就是引用未来数据。“低开大阳线”公式的测试成功率很高就是这种误导的结果。
上述的这些错误在很多公式中都能见到,归纳起来可以总结为:对公式缺乏可行性的考虑。这里所说的可行性是指公式在未来的使用中能保持其良好特性的能力。这应当是实用型公式所要追求的重点!
虽然公式指标不是万能的!但在技术水平比较一般的情况下,没有公式指标是万万不能的,当你到达超一流水平时,你可以说公式指标是无用的,但在你到达此目标之前,公式指标还是有用的!这就象一个学武之人,在没有到达最高境界之前,武术的一照一式,还是有用的,而且是你学武的正规入门之道,也是你走向武术高手的必经之路!等哪一天你到达了武林高手之列时,你才可以自豪地说:无招胜有招!才可以说:指标、公式是无用的!
青衫飞扬
请问.比如说.时间是8天内的MACD中的DIFF最高值减今天的值大与0.50发出信号是不是这么表达
a1:=HHV(DIFF,8)-DIFF >0.50; DRAWTEXT(FILTER(a1,5) ,LOW,''▲'') 图表被压缩了.不知道应该正确使用什么,我想叫买入信号在最下边(就是指标栏最下边一条线上,不影响原来的美观,可以随指标波动吗,就是说0544最低位置在-0.58/而2069却在-7.40了.谢谢.....
答:
DRAWTEXT(FILTER(a1,5) ,LOW,''▲'') 这一句有误。一般在主图上用最低价这个位置。副图波动较大。一般用交叉点,即交叉的线之一。如:DRAWTEXT(FILTER(a1,5) ,DIFF,''▲'')
《公式编写入门》全文完,我只是整理刊登在这里,谢谢大家的关注 |