编辑股票公式 - pc1234ok的日志 - 网易博客
来源:百度文库 编辑:神马文学网 时间:2024/04/27 07:44:01
第一讲:认识公式编辑器
公式编辑器是导入源码和进行编写指标的窗口。公式编辑器共分4种,分别是:
1、技术指标公式编辑器;
2、条件选股公式编辑器;
3、交易系统公式编辑器;
4、五彩K线公式编辑器。
由于这几种编辑器的展开和使用大同小异。所以,本文仅以技术指标公式编辑器为例加以说明。
由于目前各种股软的区别,不仅有些函数不通用,编辑器的打开方式也略有区别。本讲就是告诉大家如何展开公式编辑器。
以下共分5个图片说明打开《公式编辑器》的方法:
FNC是大智慧2和分析家格式,只有这两个股软能够导入。导入的方法是:打开公式编辑器,点击导入---找到存放此公式的文件夹---双击---在出现的列表中掸单击该公式---选导入。
特别提示:必须先将公式存放在一个文件夹中,已有的,新建都可以。否则编辑器无法找到该公式。
ALG是飞狐和金狐软件的格件格式,exp式,tnc是通达信软是大智慧internet版格式,hxf是同花顺格式,还有比较特殊的fml是多空阵线格式(与飞狐的自编公式文件后缀一样)
第二讲:公式编写的基础函数
打开技术指标公式,我们最常见的,它的组成不外乎两种情况,一是K线,二是均线。其他诸如柱状线,彩带,分段线等等,都是在K线或均线基础上的延伸或变形。为此,我们先熟悉一下构成这两种状态的基本函数。
一、K线函数
非常简单,大家都可能熟知。作为基础,还是说明一下。
1、开盘价:OPEN 可简写为 O
2、最高价:HIGH 可简写为 H
3、最低价smi49liesOW 可简写为 L
4、收盘价:CLOSE 可简写为 C
有了这4个函数,就可构成一根K线了。比如:收盘价小于开盘价,即阴线:C 那么长下影的光头阳线,即 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 4、CROSS 交叉函数。CROSS(A,B),表示A从下方向上穿过B。 5、REF 向前引用。引用若干周期前的数据。例如:REF(CLOSE,1),表示昨收的收盘价。那么前天的最高价呢,就是:REF(H,2)。 四、成交量 VOL 表示每天的成交量。因以后会经常用到,所以先交待给大家。 上面这几个函数是最常用的,希望大家记住,不知怎么写也要知道其表述的意思。当然,记不住也不要紧,《公式编辑器》中全有。 习题:10日均线与20日均线金叉和涨幅超过百分之三,且成交量比昨天放大一倍。 第三讲:认识颜色符号或绘图函数 我们所看到的指标是以线为基础的。不论是均线,K线,或在线与点之间的填充,又都离不开颜色。正是有了五颜六色才使得图形丰富多采,便于区分,或者更具立体感。本讲就是告诉大家如何利用颜色或修改颜色。 一、颜色函数 (一)基本符号:COLOR 所有显示颜色时,都必须用这个符号做为引导。但它本身并没有色彩,在它的后面还需加上具体的颜色,才能使用。 举例:COLORBLACK;后面加上英文的黑色单词,在图中就会显示出黑色来了。 (二)常用颜色: 颜 色 1:飞狐的: 2、大智慧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 在图形上显示文字。这也是最常用的绘图函数之一。 用法smi52liesRAWTEXT(条件,位置,文字),注意,文字必须用单引号 '' 引上才能输出。 飞狐可用'\'换行, 飞狐和大智慧2可用 ALIGN 0-3 定义对齐方式。 3、STICKLINE 在图形上绘制柱线。 用法:STICKLINE(条件,上位置,下位置,宽度,实体或空心)。 此函数股软通用。宽度最大为10(一般K线的宽度为6)。 0 --画实心柱, 1 --画空心柱。 4、PARTLINE 分段绘制指标线。 飞狐用法ARTLINE(条件,需要变色的线)。 例如ARTLINE(C>REF(C,1),C),colorred 表示收盘大于前收以红色绘制收盘价连线。 大智慧2用法:PARTLINE(需要变色的线,条件1,条件1用的颜色,条件2,条件2用的颜色...),最多可以有10组条件。 例如:PARTLINE(C,C>O,RGB(255,0,0),C 特别提示:大智慧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 其他三种股软好像都没有这项功能。 为了实现这一效果,一般都是用划柱线的方式替代。注意的是,一般要将宽窄的数字加大,目的是让相邻的柱线合在一起显示出整体的效果。 例:STICKLINE(J 第四讲:源码的引入和修改 (一)在各种股软中的引入方法 股软之间虽然区别较大,但有一个共同点,就是第一步都是打开公式编辑器。下面再分别简要说明一下: 一、大智慧 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和分析家却不认,把它看成相互矛盾的病句。解决办法:将修饰符全部删去,或将前面的 = 号去掉,让语句输出。 懂得运用公式编辑器,掌握了公式的基本函数,就可以进行简单的公式编写了。下面我们共同认识一下公式的基本语句。这些基本语句,是编写公式和整理选股公式信号的基础,大家要熟知。 一、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 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; 注意:是比的昨天收盘价。 提示: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 AND AA>REF(AA,5); 5、年线拐头向上 A250:=MA(C,250); REF(A250,1)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; 特别提示:乖离均线是由乖离率的“点”连成的均线。 此线虽非普通均线,因常用,故单提出来。 原理:以当日的均线价格为准,股价和均价之间的差距称为乖离程度,以乖离程度除以均价的百分比就是乖离率。 第七讲:从源码中提取选股公式 口诀:从后往前找,删除没用条,去掉修饰符,个别加等号。 例一:找出买点 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 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; 第八讲:函数的综合运用 第一部分:引用已有公式中的数据 基本引用例一 "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 通达信用下面这两行: IF(MA30>=REF(MA30,1),MA30,DRAWNULL),COLORRED;