目录

第二讲:公式编写的基础函数

  打开技术指标公式,我们最常见的,它的组成不外乎两种情况,一是K线,二是均线。其他诸如柱状线,彩带,分段线等等,都是在K线或均线基础上的延伸或变形。为此,我们先熟悉一下构成这两种状态的基本函数。

  一、K线函数

  非常简单,大家都可能熟知。作为基础,还是说明一下。

 1、开盘价:OPEN 可简写为O

 2、最高价:HIGH 可简写为  H

 3、最低价:LOW  可简写为  L

 4、收盘价:CLOSE 可简写为  C

  有了这4个函数,就可构成一根K线了。比如:收盘价小于开盘价,即阴线:C 收阳线则互为相反。

  那么长下影的光头阳线,即T 形线呢?理解了原理,也很简单。一要以最高价收盘(否则有上影),二要开盘价大于最低价。所以有如下表示:C=H AND O>L;这里我们没有考虑下影的长度和T 字上边一横(实体部分)的宽度。

  习题:一根光头阳线,实体部分小于5分钱,下影超过实体的两倍,如何表述?

 特别提示:编辑指标必须在英文状态下输入。其中运用的数学符号,包括加减乘除、分号,引号等(+ - * / ; "" ''><#)也必须在英文状态下输入。

    二、均线函数

  单根K线的形态是相当枯燥的。尤其在主图里。配合以均线等形式就会丰富多采,或者更利于我们从中发现规律和分析问题。这就需要均线函数来解决了。

最常见的:

 1MA(X,N),XN周期简单移动平均值。

  算法:(X1+X2+X3+...+Xn)/N

  例如:MA(CLOSE,20),表示求20日均价。

 2EMA(X,N),XN周期指数平滑移动平均。

  算法: Y=EMA(X,N) Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一周期Y值。

  例如:EMA(CLOSE,20),表示求20日指数平滑均价。

 3SMA(X,N,M),XN周期移动平均,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线和均线了,但实际应用中要复杂得多,还要一些函数把他们连接起来。

大致有这么几个:

 1AND 就是的意思。如:AANDB;就是AB两个条件要同时成立。

 2OR或者的意思。如:AORB;就是AB两个条件有其中一个成立就行。

 3IF 根据条件取不同的值。如:IF(X,A,B),若X不为0则返回A,否则返回B。实例:IF(C,表示收阴返回最低价,否则返回最高价。

 4CROSS 交叉函数。CROSS(A,B),表示A从下方向上穿过B

 5REF 向前引用。引用若干周期前的数据。例如: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 C0.03*REF(CLOSE,1) AND VOL=2*VOLREF(VOL,1)

大庆老杨

基本正确。用一句话概括,精简。

需要指出的是最后一句:成交量比昨天放大一倍,这句话的表述。老兄用的是:VOL/REF(VOL,1)=2 ,应该是非常准确。但在实际应用中,却是行不通的。正好等于2倍是极难遇到的,所以编写公式变通的办法,或者说应该用的是:VOL/REF(VOL,1)>=2 ,更符合实际。

增加一个大于号,成为问题的关键所在。

提出这个问题,并非小题大作,应该看做以后编写时的注意事项。