学习编写公式入门之前,电脑上最好安装一个通达信内核的软件。因为通达信内核的软件对公式语句有简单翻译的功能。 下面所说的只对初入公式的股友说说,高手就不用看了。但请高手批评指正。 开始接触到有提示买卖功能软件的股友觉得很神奇,软件还有提示买卖的? 更是有的人把自己的公式称为千金不卖,或千金难求的东西。真的是这样吗? 其实,公式并不神秘。没有接触过公式编写的可以跟着一步一步地学会公式入门。 这里要提醒一下,玩公式是为了更好地玩股票。 一、编写股票公式最基本的元素 几乎所有的公式都离不开一根小小的K柱,也就是K柱里包含的五个基本元素,开盘价,收盘价,最高价,量低价和成交量。 开盘价,收盘价,最高价,最低价和成交量分别由(open),C(close),H(high),L(Low)和V(volume)来表示。 对这几个元素的不同运算,就造成了千百种不同的公式。 二、从最简单的公式指标——移动平均线入手 以下所以图形都是海通通达信的截图。 1、打开任意一支股票的K线图。图一 2、在主图的任意线条上单击,出现白色的小方块。图二 3、右键带小方块的线,选择"修改当前指标公式",图三 4、调出公示编辑窗口。图四 各部分简单功能 (1)公式名称,对每一个公式都要取一个名。这个名称是唯一的,不能重复。 (2)变量赋值。对公示中要遇到的变量进行赋值。公式中可以有另一种赋值方式。下面会说到。 (3)公式主窗口。所有的公示都编写在这里。 (4)公式副窗口。根据右边的分类可分为动态翻译等四个类型。 (5)测试公式。对完成的公式进行测试。如果有错误,会在副窗口的"测试结果"内提示。 (6)确定按钮。对通过测试的公式进行保存。 现在来仔细看看都说了些什么。 在变量赋值处,看到M1、M2、M3、M4这几项。公式里把它们叫做变量。 这里给M1赋值5,给M2的赋值是10,给M3的赋值是20,给M4的赋值是60 。 现在看看主窗口里的语句。 MA1:MA(CLOSE,M1); MA2:MA(CLOSE,M2); MA3:MA(CLOSE,M3); MA4:MA(CLOSE,M4); (1)结构。每一句语句的结构都公成四个部分。第一是部分命名,第二部分是冒号,或是冒号等号;第三部分是运算;第四部分是语句结束,也就是分号。这里要提醒的是,所有的标点符号都必须是在英文状态下进行。这点很重要。有时候一些莫名其妙的错误就是使用了中文状态下的标点引起的。 在这句"MA1:MA(CLOSE,M1);"中,MA1的后面只有一人冒号,说明MA1是输出结果的名称。如果是冒号等号,那么就是赋值的变量名称了。输出结果有好多种,如有划线、有文字、有图标等。但这种"名称:"的多半都是画一条线。"MA"叫做运算函数,意思是"返回X的M日简单移动平均."。当然还有其它很多的运算函数,具体见http://www.redphon.com/istock/formularinfo.php;至于"close"就是前面提到的五个元素之一,收盘价。也可以用C来表示。这句中的M1就是调用已经为变量M1赋那个值。这里是5 。好了这句的意思就是:画一条以5日的收盘价来计算的平均线。计算方式是将最近5日的收盘价加起来再除以5。 大多数主图的四条平均线分别是以5日,10日,20日,60日的数值来表现的结果。 下面再重复地说明一下。 完整的语句要用到赋值和输出。 赋值的格式为:名字:=(需要赋值的内容) 输出的格式为:名字:(需要输出的内容) 每句的结束用英文状态下的分号。如为四个名字赋值 M1:=5; M2:=10; M3:=20; M4:=60; 这里取了四个名字,M1,M2,M3,M4。说明一点,这四个名字的取名是任意的。 在标准的程序语言里,这四个名字叫做变量。英文是variables。所以在许多公式里,就看到Ver1,Ver2等。其实就是这个单词的缩写,翻译为:变量1,变量2........ 然后再输出计算的结果:MA1:MA(CLOSE,M1);MA2:MA(CLOSE,M2);MA3:MA(CLOSE,M3);MA4:MA(CLOSE,M4); 把它完整地写下来就是: M1:=5; M2:=10; M3:=20; M4:=60;MA1:MA(CLOSE,M1);MA2:MA(CLOSE,M2);MA3:MA(CLOSE,M3);MA4:MA(CLOSE,M4); 或者: M1:=5; M2:=10; M3:=20; M4:=60;MA1:MA(C,M1);MA2:MA(C,M2);MA3:MA(C,M3);MA4:MA(C,M4); 就成了一个完整的移动平均线指标了。 有的股友介绍经验说,以5日的均线上穿13日均线为买点。可是许多新股友说,怎样找到13日均线啊!现在就可以把M2:=10; 改成M2:=13; 13日的均线就出来了。 三、一个指标的变演 下面来看看一个指标是怎样变化的。 有一套比较有名的股票软件,叫益萌操盘手。里面有一个比较经典的公式,叫做顶底趋势。 见下图。其实,这个公式是由传统的W&R公式引伸来的。 在原始的W&R公式中(在通达信里叫做WR),只有这么一句:WR1:100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N)); 它的意思是:输出WR1:100*(N日内最高价的最高值-收盘价)/(N日内最高价的最高值-N日内最低价的最低值)。而且它表示的趋势要均线是相反的。(见图二) 四、传统的几个公式 观察已有的公式,是最好的学习方法。 1、KDJ随机指标。打开KDJ公式,看到这么几句: 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; 这里再啰嗦几句。我们看到第一句 RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;最前面是一个名字RSV,RawStochastic Value的缩写,中文意思是未成熟随机值。是股票里面的一个概念。 由于这个指标是由美国的乔治*莱恩(George Lane)博士所创,他取的变量名就要表达"未成熟随机值"这个意思。但对我们初学公式的人来说,它就是一个变量名。我们知道,除了保留字以外,变量名是可以任意取的。什么是保留字?就是公式的函数名之类的。如MA、EMA等等。 这句中看到,冒号等号的后面不是数字,而是一个计算。翻译成白话,就是:RSV赋值:(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100。这里我们就引入了赋值的概念。在股票公式中,赋值有两种,一种叫静态赋值,这咱赋值一般情况下是赋予一个不变的值,如50 。另一种是动态赋值,这种就是根据动态计算的结果来赋值。 既然变量是随便取的,那不用RSV,用ROV行不行?当然行。只是,在调用的时候要完全一致。在下一句输出K的语句中,就调用了变量RSV。如果给第一个变量取名为ROV,在K:SMA(RSV,M1,1);中也要改成K:SMA(ROV,M1,1);才行。 2、MACD 在MACD中看到的是这样几句 DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA:EMA(DIF,MID); MACD:(DIF-DEA)*2,COLORSTICK; 和KDJ指标写法不同的是,这些语句中没有看到等号,是不是没有赋值了?不是。只有冒号的语句是输出语句,其结果要显示在指标窗口里。但它也可以作为接下去继续运算的变量。而冒号等号的语句就只能参与运算,不能在指标窗口输出结果了。 五、一般性的输出标志 公式的计算结果的输出,都是为了提示买卖点为目的。一般情况下都是以某一条线上穿另外的某条线,或是上穿某一个值为目买入点。如在KDJ里,有J线上穿K线为买入点,还有J线上穿0值为买入点,也有J值上穿100值为买入点(这里因为讲的是公式本身,因此为评价买入点)。但有的为了方便好看,就有了图标输出。股票公式里有几个常用的输出:输出一条线,输出一个图标(DRAWICON),输出文字(DRAWTEXT),输出一根柱形图(STICKLINE)。 首先引入"交叉"概念。短周期的线从下向上交叉长周期的线叫做上穿,短周期的线从止向下交叉长周期的线叫做下破。公式里的交叉用Cross(X,Y)函数。表示X从下向上交叉Y。在KDJ里,表示J向上交叉K,就写成:Cross(J,K)。 现在我们在KDJ公式里加上一句DRAWICON(CROSS(J,K),L*0.995,1); 意思是:当J上穿K时画一个向上的箭头。 注意,cross(X,Y)是X向上交叉Y,即X上穿Y。那么X下破Y怎样表示?这时我们只需要将X与Y互换位置就行了。即cross(Y,X)它的意思是,Y从下向上交叉X,反过来,就是X下破Y。那么,再加上一句DRAWICON(CROSS(K,J),L*0.995,4); 当J下破K时画一个哭脸。 知道了这个原理,那些很神奇的,有买卖提示的就不神奇了。练习:把向上箭头换成"买"字,把哭脸换成"卖"字,怎样做? 六、公式入门学习结语 正如前面所说,公式并不神秘。网上出现的许多公式收费的软件,说穿了只不过是K柱的演变。记得有个软件,吹嘘说他们的公式有多牛,准确率有多高。所以不免费。在咨询客服时,就问是不是有第六元素。他问什么是第六元素,我就说是除了OCHLV以外的第六元素。后来,网上有的高手也把他们的公式破译了。把代码放到通达信里一测试,成功率并不比KDJ好多少。