同花顺公式大全附经典公式

更新时间:2024-05-24 17:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

同花顺公式编辑教程大全

什么是技术指标?

MA均线就是一种技术指标,我们在炒股的时候,经常会将一些行情数据进行数学计算得出一些曲线等等,方便我们掌握股市的变动情况。 什么是条件选股?

简单讲,就是按照您的设定的条件用电脑帮助您完成一些太多太复杂的挑选--比如您有一些好的心得和方法,可使有1000多只股票,您就是有100双眼睛有时也不一定可以看得过来,这时电脑就派上用场了! 什么是参数?

比如讲:10日均线,您可以把10日当作参数,好处在于,您觉得需要修改成5日的时候,就可以使用一些简单的方法,例如参数精灵来很方便的修改和调整。参

数需要名字,例如M就不错。还要规定参数的范围,例如1日至260日。这样我们就可以在1到260之间任意调节M的值了,M最常用的数填在“缺省”一栏,

例如你最喜欢用10日均线,那就填10吧。 什么是周期?

这么解释吧!我们有的投资者喜欢使用日线图作技术分析;有的喜欢用5分钟的K线;有的喜欢使用长一点时间的,例如周线。所以在公式设计中,允许不同喜好的使用者选择不同的分析时间--就是可以选择不同的周期。 什么是函数?

函数在公式编写非常重要,如果作个比喻,我们用一种语言去告诉电脑我的想法,并且让它去帮我做,那么函数就是这种语言的单词。 例一:

一根K线有四个价格组成: 最高价:HIGH 收盘价:CLOSE 最低价:LOW 开盘价:OPEN 成交量:VOL 成交额:AMO 例二:

两条均线不断地交叉,就专门设定了一条函数来描述两条线交叉:CROSS(X,Y) 假如下图中的两条均线一条名叫X,另外一条叫Y CROSS(X,Y)表示X向上穿过了Y CROSS(Y,X)表示Y向上穿过了X 例三:

前面的CLOSE,还是VOL,都表示当天,或者您使用的不是日线,那就表示本周期的数据,那么前几天的怎么表示呢? REF(X,M) 例如:

REF(Close,5)表示5天前的收盘; REF(Vol,10)表示10天前的成交量;

这里的M就是参数,您现在明白了什么是参数了吗? 例四:

如果我想把两个条件并列在一起怎么办? AND

X AND Y就表示条件X和条件Y 编写一条最简单的指标线

1

通过前面的学习,我们今天开始使用软件的公式编辑功能编写我们自己的第一条指标线。 其实不难,你应该对自己有信心!

按照主菜单-工具-公式管理-选择-“技术指标”-点击“新建”,然后在公式编辑器中留下你的第一行脚印吧! 点击:“确认”,现在看一下我们第一条指标线。 这条指标线与你的想法相符吗? 总结与补充:

1、如果选择:“主图叠加”,我们的指标线会与K线图显示在同一个图形框中,现在我们的指标线显示在其下方,即“副图”中; 2、参数可以有,也可以没有,但是鼓励大家设置参数,这是非常好的习惯; 3、一个句子完了,别忘了以分号结尾;

你的公式写得对不对,可以通过“测试公式”来检查,如果错了,它会告诉你错在哪里。 编写最常用的均量和均价线

均价线,不就是那个“移动平均线MA”什么的吗?不过,话说回来,听说10个人里面有11个人都在使用,我可得学习学习! 原理是??

5日平均线=(今天收盘价+昨天收盘价+.....--5天前的收盘价)/5; 10日平均线=(今天收盘价+昨天收盘价+......+10天前的收盘价)/10; 150日平均线=(今天收盘价+昨天收盘价+......+150天前的收盘价)/150;

200日平均线......不是这么麻烦吧?难道我每天都要写这么多得数才得到一条平均线???? 你有什么办法?

MA1=MA(CLOSE,5); MA2=MA(CLOSE,10); MA3=MA(CLOSE,50); ......

当然是有简单的方法了!你把我在上面说过的话写下来,按照前面几课讲的,写在公式的编辑栏当中就可以了! 注意:

“MA”表示的就是计算平均值。

在括号内写上计算的对象和计算的时间长度。

MA1,MA2,MA3......是好几条指标线,别忘记了用分号把它们分开。

同花顺公式编写教程

公式编写规则 语言规范:

在自定义公式里面的各种符号(如,“;” )只能用半角不能用全角。 关键字

if else while break continue return (无大小写之分) 常数

浮点数、整数、字符串 分隔符

“ ” ? ' ( ) ; { } 注释/* */ 标识符

由字母和数字组成,由字母开头,不分大小写 运算符(优先级从高到低排列,同级同行) * / + -

2

== != > < >= <= And Or 语句 赋值 a = b

条件 IF (a==b) c=d; 循环 while a==b c=d; 函数调用 func(a,b) 直接访问数据项的函数

例如:OPEN[t] 为t周期之前的开盘价 所有行情数据项(CLOSE等)都与此相同。 标识符:

标识符在表达式中只存名称,值保留在符号表。标识符包括函数名、参数名和变量名。函数名用来传递函数返回值;参数名用于函数调用时的参数传递;变量名在计算中存储中间计算结果。 分隔符: 符号 含义 “ ” 引用字符串 ? ' 引用字符 ( )

控制运算的优先级 ;

每行语句的结束标志 { }

将多个语句组合成一个语句体 /* */

注释,无任何实际功能 赋值语句: 其一般形式为:

a=b; 含义为将b的值付给a。

几个运算符“=”“:=”“:”“:>”。其含义分别为“赋值”、 “赋值”、“赋值并输出数值或字符串”、“赋值并输出图形”。

注意:“=”和“:=”两个运算符的意义、用法完全相同。这样做主要是为了更好地兼容市场上目前的各种带有公式编辑功能的分析软件。 条件语句: 其一般形式为:

IF(逻辑表达式) 语句1; ELSE 语句2;

上述结构表示: 如果逻辑表达式的值为非0(TURE)即真, 则执行语句1, 执行完语句1从语句2后开始继续向下执行; 如果表达式的值为0(FALSE)即假, 则跳过语句1而执行语句2。 注意:

1、条件执行语句中\语句2;\部分是选择项, 可以缺省, 此时条件语句变成: IF(逻辑表达式) 语句1;

3

表示若逻辑表达式的值为非0则执行语句1 , 否则跳过语句1继续执行。

2、如果语句1或语句2有多于一条语句要执行时, 必须使用\和\把这些语句包括在其中, 此时条件语句形式为: IF(逻辑表达式) { 语句体1; } ELSE { 语句体2; }

这里语句体指多个语句,每个语句都必须以“;”结尾。

3. 条件语句可以嵌套, 这种情况经常碰到, 但条件嵌套语句容易出错, 其原因主要是不知道哪个IF对应哪个ELSE。 例如:

IF(x>20 OR x<-10) IF(y<=100 AND y>x) A=\ ELSE B=\

对于上述情况, 规定: ELSE语句与最近的一个IF语句匹配, 上例

中的ELSE与IF(y<=100 AND y>x)相匹配。为了使ELSE与IF(x>20 OR x<-10)相匹配, 必须用花括号。如下所示: IF(x>20 OR x<-10) { IF(y<=100 AND y>x) A=\ ELSE B=\

4. 可用阶梯式IF-ELSE-IF结构。 阶梯式结构的一般形式为: IF(逻辑表达式1) 语句1; ELSE IF(逻辑表达式2) 语句2; ELSE IF(逻辑表达式3) 语句3; 循环语句:

while循环的一般形式为: while(条件) 语句;

while循环表示当条件为真时, 便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。 注意:

1、可以有多层循环嵌套。

2、语句可以是语句体, 此时必须用\和\括起来。 break语句

break语句通常用在循环语句中。当break语句用while循环语句中时,可使程序终止循环而执行循环后面的语句, 通常break语句总是与if语句联在一起。 即满足条件时便跳出循环。 注意:

1、break语句对if-else的条件语句不起作用。 2、在多层循环中, 一个break语句只向外跳一层。 continue 语句

continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。 continue语句只用在while循环体中, 常与if条件语句一起使用, 用来加速循环。 函数调用:

调用函数的基本方式为:函数名(参数,参数,…)

其返回值为函数里面的return语句规定的返回值。若无return语句,则返回被调用函数里,以函数名命名的变量的值。若无以函数名命名的变量,则返回最后一个输出的值。若无输出的值,则返回最后一个被调用的语句的值。 例如:调用KDJ指标。KDJ函数的名称为kdj,其参数和内容如下:

4

参数名 最小值 最大值 默认值 N1 1 100 9 M1 2 40 3 M2 2 40 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

则当您在其它函数里输入a=KDJ(8,6,6)的时候,相当于计算N1=8,M1=6,M2=6时的J值,并把这个值赋给a。 注意:

1、当传递的参数数目不等于被调用函数设置的参数数目时。 a、没有传递参数。则采用原来设置的默认参数计算。

b、传递参数少于被调用函数设置的参数数目。则将参数传过去,依次改变前面同样数目参数的值,后面其它的参数采用原来设置的默认参数计算。

c、传递参数大于被调用函数设置的参数数目。则将参数传过去,依次改变被调用函数的参数值,多余的参数不起作用。 2、函数名称不区分大小写。

3、新建的函数,其函数名可能与其它以存在的函数里面的内部变量重名。这样在调用那个函数时,那个内部变量将变成对这个新建函数的函数调用,从而产生错误。所以,在新建函数起名时要注意。

返回值:自定义公式里面如果有多数据项输出,则调用此函数的时候返回值默认为最后一个输出。如果希望确定某项输出则可用return,或者将函数名指定为其中一项输出。 关于“空”:

所谓“空”即指没有数据。在某些情况下,一些数据项可能取不到数据,这时返回值为“空”。例如,yearrep(&jlr,4),其含义为取该公司3年前年报的净利润。如果某家公司上市时间较短,而无三年前的年报数据,则其值为“空”。 1、“空”与任何数据作计算时,相应计算被取消。 例如:7×NULL(即“空”)得到的结果为7。 2、“空”与任何数据比较大小时,“空”较小。

例如:-7>NULL(即“空”)得到的结果为1(即条件满足)。

这样的结果可能与您原来希望得到的数值不符,如果您想避免这种情况可以用ISNULL函数来判断某个数据是否为“空”(相关说明见后面的系统函数说明部分)。 公式编写规则 代码与周期:

5

由于证券市场里的各项数据都与代码、时间密切相关,所以在这里的各项数据都只能用于特定的一类或几类代码及相应的一个或几个周期。(注意:同一个数据项可能适用于多类代码及多个周期,其具体的数值也将不同。)

代码的分类:个股(含债券)。沪深指数(仅1A0001(统计上海A、B股基金)、1A0002(统计上海A股)、1A0003(统计上海B股)、399001(统计深圳A、B股基金)、399002(统计深圳A股)、399003(统计深圳B股)六个指数)。期货。 周期分类:实时(记录当前传过来的数据)、成交明细(记录每一笔成交的数据)、分时(记录每分钟成交的数据)、分钟K线(以1分钟为单位的K线数据)、日K线(以1个交易日为单位的K线数据)。

注意: 一、分时与分钟K线的区别在于:分钟K线数据较多,包含了与K线相关的高、开、低、收、成交次数等数据。二、沪深指数没有成交明细周期的数据。三、适用于分钟K线、日K线周期的所有数据,都同时适用于个股与沪深指数,只不过其数据内容不同而已。

由于行情数据和财务数据同属于基本数据项,即其数值是主站端直接发过来,所以他们自身并不带周期。而其它计算项,即由客户端编写公式计算得到的数据项都是

带有周期的。也就是说在编写一个公式的时候我们需要确定一个周期(由于分钟K线、日K线周期里的各项数据仅有微小差别,所以统称为技术分析周期),并且想

清楚这个公式里调用的各项基本数据在这个周期下的具体含义。以后只有在这个周期下才能调用这个公式。

注意: 基本数据项自身并不带周期,也就是说编写公式的时候,如果所选用的周期不在此数据项的适用范围内,测试公式的时候系统是不会报错的,但这个数据项的数值将为“空”,即取不到任何数据。

注意: 所有的基本数据项都可以直接拖到表格里,它将依照表格的代码、周期而显示相应的数值。也都可以直接拖到窗口里作为一个曲线输出,但一般不推荐这样做,如果要画曲线最好新编写一个“曲线公式”。 另外,各个数据项用于期货时的意义另文说明。 通用数据项: NEW(现价)

含义:用于个股时为最近一笔成交的价格。用于沪深指数时为最近一次从交易所传来的指数值。 用于:个股的实时、成交明细周期。沪深指数的实时周期。 NEWVOL(现手)

含义:用于个股时为最近一笔成交的成交量。用于沪深指数时为对应市场的所有股票的最后一笔成交量之和。 用于:个股的实时、成交明细周期。沪深指数的实时周期。 INVOL(内盘)、OUTVOL(外盘)

含义:内盘、外盘(又称为主动性抛盘、主动性买盘)成交量。判断依据为若某笔成交,其价格小于等于前一次传过来的买一的价格,则称为内盘;若其价格大于等

于前一次传过来的卖一的价格,则称为外盘。(注意,内外盘之和一般不等于总成交量)在周期为“实时”、“分时”时,为当日的内、外盘。在周期为“分钟K线

”和“日K线”时,分别为某一分钟和某一日的内、外盘。用于指数时指所有相应股票的内、外盘之和。 用于:个股的实时、分时、分钟K线、日K线周期。沪深指数的实时、分时、分钟K线、日K线周期。 OPEN(开盘)、HIGH(最高)、LOW(最低)

含义:在实时周期时,为当日的开盘价、最高价、最低价。在分钟K线、日K线周期时,分别为当周期的开盘价、最高价、最低价。 用于:个股的实时、分钟K线、日K线周期。沪深指数的实时、分钟K线、日K线周期。 CLOSE(收盘) 含义:当周期的收盘价。

用于:个股的分钟K线、日K线周期。沪深指数的分钟K线、日K线周期。 PRE(昨收)

含义:上一交易日的收盘价。(注意,在分钟K线周期,也是昨日收盘价,而不是上一周期的收盘价。)如果当天有除权,则其值为除权之后的昨日收盘价。例如:某股票昨天收盘20元,今天除权,10送10。则今日PRE值为10元。 用于:所有类型、所有周期。 MONEY(金额)

6

含义:在实时、分时周期时代表当日的成交金额只和。在分钟K线、日K线周期时代表那一个周期的成交金额只和。当用于指数时,指此指数所包含所有交易品种成交金额之和。

用于:个股的实时、分时、分钟K线、日K线周期。沪深指数的实时、分时、分钟K线、日K线周期。 VOL(总手)

含义:在实时、分时、成交明细周期时代表当日的成交量只和。在分钟K线、日K线周期时代表那一个周期的成交量只和。当用于指数时,指此指数所包含所有交易品种成交量之和。

用于:个股的实时、分时、成交明细、分钟K线、日K线周期。沪深指数的实时、分时、分钟K线、日K线周期。(注意,VOL与MONEY相比多了一个成交明细周期。) OPENVOL(开盘量)

含义:开盘时第一笔成交的成交量。当用于指数时,指此指数所包含所有交易品种开盘集合竞价成交量之和。 用于:个股的实时、日K线周期。沪深指数的实时、日K线周期。 ZQMC(名称)、CODE&TYPE(代码) 含义:证券的名称、代码。

用于:个股的所有周期。沪深指数的所有周期。 DATETIME(时间)

含义:显示时间。当用于不同周期的时候,系统会自动传送相应的时间类型。而具体的显示方案则在“窗口属性”的“时间坐标”项里的“时间格式”一栏里选择。

用于:个股、沪深指数所有的周期。

VALIDBEGIN(起始)、VALIDEND(终止)

含义:区间统计的起始、终止时间。当用于不同周期的时候,系统会自动传送相应的时间类型。而具体的显示方案则在“窗口属性”的“时间坐标”项里的“时间格式”一栏里选择。与DATETIME(时间)的用法类似。 用于:个股、沪深指数所有的周期。 仅用于个股的数据项: FIVEDAYVOL(五日总量) 含义:过去五日各交易成交量之和。

用于:个股的所有的周期。(主要用来计算量比)

BUYPRICE1(买一)、BUYPRICE2(买二)、BUYPRICE3(买三)、SELLPRICE1(卖一)、SELLPRICE2(卖二)、 SELLPRICE3(卖三)、BUYCOUNT1(买一量)、BUYCOUNT2(买二量)、BUYCOUNT3(买三量)、SELLCOUNT1(卖 一量)、SELLCOUNT2(卖二量)、SELLCOUNT3(卖三量) 含义:委托买入、卖出价格一、二、三及对应的委托数量。 用于:个股的实时周期。 VOLAMOUNT(成交次数)

含义:在周期为“实时”时,为当日的成交次数。在周期为“分钟K线”和“日K线”时,分别为某一分钟和某一日的成交次数。 用于:个股的实时、分钟K线、日K线周期。 VOLCLASS(成交量分类)

含义:其数值与该笔成交的价位关系为:“3”为“成交价<=买三价”,“2”为“买三价<成交价<=买二价”,“1”为“买二价& lt;成交价<=买一价”,“0”为“买一价<成交价<卖一价”,“5”为“卖一价<=成交价<卖二价”,“6”为“卖二

价<=成交价<卖三价”,“5”为“卖三价<=成交价”。(注意,这里的买卖盘的价格都是指上一次传过来的价格,与内外盘原理相同。也

可以将“成交量分类”视为划分更为详细的内外盘。) 用于:个股的实时、分时、成交明细。 SELLPRICE(卖出)、BUYPRICE(买入)

含义:本次成交时的委托卖出、买入价。即用于成交明细的买一价、卖一价。 用于:个股的成交明细周期。

7

仅适用于大盘的数据项:

SELLCOUNT(委卖)、BUYCOUNT(委买)

含义:当前本类指数所有股票的卖出数量、买入数量之和。 用于:沪深指数的实时、分时周期。

FALLTREND(下跌趋势)、RISETREND(上涨趋势)

含义:当前本类指数所有下跌、上涨股票的最新价之和除以本类指数所有股票的最新价之和。 用于:沪深指数的实时、分时周期。

FALLCOUNT(下跌家数)、RISECOUNT(上涨家数) 含义:当前本类指数所有下跌、上涨股票的家数之和。 用于:沪深指数的实时、分时周期。 INDEXLEAD(领先指标)

含义:即不加权的指标涨跌幅再乘以10000。具体地说就是,设A=“当前本类指数所有股票的最新价之和”,B=“当前本类指数所有股票的昨日收盘价”。那么INDEXLEAD=(A-B)/B×10000。 用于:沪深指数的实时、分时周期。 TOTALSTOCK(本类股票总数) 含义:本类股票家数之和。 用于:沪深指数的实时周期。 其它数据项:

CODETYPE(证券类型)

含义:指明当前商品的类型。当返回值是0时为指数、1是A股、2是B股、3是债券、4是基金。 用于:个股、指数的各种周期。

MARKETTYPE(市场类别)、INDEXTYPE(指数种类)

这两个数据项属于保留数据项,目前暂时没用,可能会在以后用到。 财务数据说明

这里的财务数据项都是根据财政部制定的《企业会计制度》(于2001年1月1日起执行)里面规定的季报、中报、年报的各种报表里面的项目编列的。每一项的

具体含义都与《企业会计制度》(2001)里面的规定完全相同。另外我们还依照上市公司的特性将十大股东的名称、持股数,股东人数,股本结构,权息资料都 列在财务数据项中。

由于数据众多(公司、基本有1300多家,几乎每家的数据项都达400多项,且每项又分不同的时期)所以这个数据库相当庞大,检索起来较慢且消耗大量系统

资源。因此我们设立了“常用数据项”目录,这里面有100项左右常用的财务数据,含盖了股民在绝大多数情况下的需求。这些数据被放在一个特殊的数据文件里

面检索速度很快且系统资源占用量较小。所以大家一般编写公式就在“常用数据项”目录里面找相关的数据就可以了。而其它的那些数据都是用SQL数据库检索, 建议只提供给少数重要客户。

同花顺公式系统:

公式系统可以编辑多种类型的公式,且每个类型中又又若干分细,分别是1,基本公式(软件全部函数指标的集合),2,技术指标(已自带公式的集合)、3,交易系统、4,条件选股,5,五彩K线公式,6,自用公式(自编的公式及以复制/粘贴过来的他人的公式)。技术指标公式是最基本的公式,它用于指标曲线的绘制。技术指标公式是条件选股,交易系统的基础。结合选股条件逻辑判断表达式,即得到条件选股公式,用于条件选股。技术指标公式结合买卖逻辑判断表达式,得到交易系统公式,用于交易系统指示。技术指标公式结合色彩逻辑判断表达式,即得到K线模式公式,用于描述特定的K线模式。公式的编辑在公式编辑器中完成。

8

公式系统处理的原始数据的分析周期(即相邻两组数据间的时间间隔)可以从1分钟到1000天间的任意值,也可以是分笔成交数据,改变分析窗口显示的分析周期,则公式处理新的分析周期的数据。 学习公式编写,使用的基本方法

基本捷径是从软件公式或他人公式入手,多看多动手边理解其写法,为什么调用这个函数,这个函数的意义是什么,这一句预要表达什么意思等等。不动手永远不可能学会的。从简单公式入手,先弄懂一,两个公式。从修改公式加入自己的目标语句实现自己目标入手,几乎没有一个公式是那一个人自己完成的,或多或少都使用了前人的成果。 在编写中多用“测试公式”按钮,让软件作判断,告诉你编写对错与否。 使用彩色编辑可事半功倍。

多用鼠标指针指向不懂的函数,软件马上会告诉你。

公式编写步骤

1.设定公式名称:每个公式都有自己的名称,它由字母或数字组成,最多可以有9个字符。请注意,公式名称在同类公式中不能重复,且不能为空。 2.描述公式:用于简单描述该公式的含义(可不填亦能通过), 3.注释公式:用于描述一个公式如何使用、计算方法等内容。输入后,在有关窗口按“用法注释”按钮可以查看公式注释(可省略)。 4. 设计技术指标公式语句: 公式的形式由若干语句组成。每个语句得到一个计算结果,对于技术指标,就是一条指标线,语句间用分号(“;”)隔开。 一个语句由若干函数通过四则运算或逻辑运算而组成。函数是公式系统的基本成分,它是对数据做某种操作,如CLOSE()函数表示调用该分析周期的收盘价。

函数由函数名称和参数组成,参数用函数名后的括号括起来,每个函数调用的参数可以是变量或常量,变量是一个随着时间变化而变化的数据,例如收盘价;常量是一个不随时间变化而变的数据。例如函数REF(X,N)用于引用N周期前的X值,X是一个变量,N是一个常量,REF(close(),1)表示计算上一周期的收盘价。函数若需调用几个参数,则它们在括号内是有顺序的。若没有参数则可以省去括号,例如CLOSE()函数没有参数,所以写成 CLOSE和 CLOSE()都可以。函数计算得到的结果是一个变量。 计算符将函数连接成为语句。计算符分为算术计算符和逻辑计算符。算术计算符有+、-、*、/,分别是对计算符两边的数值进行加减乘除计算;逻辑计算符有>、<、<>、>=、<=、=、AND(与)、OR(或),分别是对计算符两边的数值做大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或的逻辑运算,如果逻辑条件成立返回的计算结果为1,否则为0。例如:2>1的逻辑运算结果等于1,1>2的逻辑运算结果就等于0。 语句得到的计算结果连成线就是所谓的指标线,不同的语句就得到不同的线,为了在指标图形中互相区分,不同的线有不同的颜色,而且语句还可以有自己的名称,在指标图形中显示在左上角位置。语句名写在语句的前面,用一个冒号(“:”)将它与语句隔开。语句“上日收盘价:REF(close,1)”就表示该语句REF(close,1)的名称为“上日收盘价”。该语句后而的语句若需引用它,则写公式名即可,如MA(上日收盘价,20)意思是对上日收盘价求20日平均。

设计中间语句:

一个语句将显示一条指标线,一个复杂的公式往往有很多语句,而且有些语句没必要显示出来。这时我们可以把不需要显示语句定义为中间语句,中间语句的写法只需在一般语句的名称与语句之间的等号,即“=”即可(亦可用通用的冒号加等于号“:=”)。例如,语句“上日收盘价=REF(close,1)”就表示该语句为中间语句。重复使用的语句也可以定义成中间语句。

设计其他公式语句:

其他类型的公式显示的不是指标线,而是相应的操作,如条件选股公式显示的是选股结果,交易系统公式显示的是交易指示(用\:>\表达),五彩K线公式显示的是K线颜色。这些公式需要有一条或几条逻辑表达式表示这些操作的语句,当语句返回0时表示不需要进行相应的操作,当返回非0时表示需要进行相应的操作。其他的语句都应设定为中间语句。 条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE>REF(close,1)语句,表示选出当期收盘价高于上日收盘价的股票。其他的语句必须设定为中间语句,否则编辑器出现“只能有一个输出结果”的警示。 交易系统公式需要逻辑表达式语句,分别为买入(在语句后加buy)、卖出条件(在语句后加sell),当这些语句返回非0时,表示需要进行相应的操作。其他的语句必须设定为中间语句,否则编辑器出现“非交易信号变量只能用:=赋值”的警示。条件中必须至少设定一个条件。

函数可以用简写,如收盘价开盘价分别用C,O来表示,在编写中往往可以自动变成大写字母,可以以此判断。函数名编写正确时字母变为大写。编写中要用彩色编辑,这样可以指示出软件对于此函数是否认可--应变成彩色。

9

公式编写完测试公式通过后,还需进行曲线属性的设置,在“曲线属性”:如显示曲线的位置是主图,副图,成交量图等,还可以设置是否显示曲线参数或只显示参数而不显示曲线,选择显示的图标,提供象箭头,圆,凌形(buy红色向上箭头,buy1黄色箭头,1空心三角形,2空心圆,4空心菱形,5星花...),曲线颜色等...最后再测试通过,确定退出编辑。

未来函数

公式系统对数据的运算是基于一系列函数,函数必须满足时间不变性,即时间靠后的数据不对时间靠前的结果产生影响(判断是否未来函数的依据)。这个很重要!对于未来函数可以理解为:某一量依赖另一量,如量 A和量B,B变化使A改变,那么A是B的函数,如果B是稍后的量,A是稍早的量,A跟着B变,A是B的未来函数。未来函数是有时间周期的,在一个短的周期内可能是未来函数,但在稍长的周期内就不是未来函数,比如\最高价),在一天收市前都是不确定的.如在交易没有结束时我们可以看到某一个指标,如“卖出”跟着股价的高低一会出现,一会消失(这个现象很容易观察到)。所以对于一个日周期的指标在分时周期具有“未来函数”特征。但一旦收盘该指标是定值,不应随明日及以后的价而变,所以该指标在日周期中不是未来函数。 被人们普遍认为是未来函数的是比较长时间才被确认的ZIG函数,比如把参数设置为ZIG(3,5),就要等下一个ZIG(3,5)成立时才能被确认,就是说你把周期设置得越长,被确认的时间就越长(比如ZIG(3,30)),如果把它设置的很短(比如ZIG(3,1)),那就跟\差不多了.

有未来函数的公式对历史模拟的相当准确,对号称100%的.99%准确的公式要小心。 未来函数有: zig PEAK PEAKBARS TROUGH TROUGHBARS

所以任何函数都具有未来函数特性,也没什么可怕。第一不要依据公式入市,第二还是不要依据公式入市!不要迷信公式。 公式只能给你一个信号,最终判断取舍要靠人。

关于未来函数的典型例子

有这么多人对一个叫鬼谷神算公式推崇,甚至将它说成'极品‘。我感到吃惊。应该把此公式的本质性的东西反映出来才是;该公式使用了未来函数,因而有“很高” 的准确率,因为它是马后炮所以100%准。这是需要大家十分注意的。 我不反对使用未来函数,但要充分认识其特有的“欺骗性”--已经出现的“结果\因后面的数据的改变而改变。

在此,我要说的是本来是一个及其简单的公式,故意弄成很复杂,高深,写了那么多行毫无相干的东西。是忽悠人的。我给“简化”了一下,只剩下6行。希望大家知道这样的公式人人可写。 这样的公式恐怕是别有用心之人忽悠卖钱的。

改成下面的公式,而且完全显示买卖两个信号。其核心是Z字转向于其他没关系。Z字转向即为未来函数

而ZIG函数的定义为 ,当前收盘价超过上次ZIG转向输出值的N%,则输出当前收盘价并ZIG转向。对该公式为50/5=10,即当价格变化量超过10%时转向。

对于下面的公式:

第一行,ZIG函数,它输出的是就是价格,为了欺骗乘以100; 第二行,是第一行的2日平均;

第三行,第四行是第一行,第二行的金叉,死叉; 而买卖信号的出现就是在于金叉,死叉。 请大家试试看。

简化的公式:

10

B:zIG(3,50/5)*100,colorwhite; G:MA(B,2),coloryellow; D:=CROSS(B,G)*1000,colorred; W:=CROSS(G,B)*1000,colorblue;

DRAWTEXT(W=1000,B*1.05,'卖' ),colorgreen; DRAWTEXT(D=1000,B*1.05,'买'),colorred; 原公式

公式名称:鬼谷神算

VAR1:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),25); VAR2:=HIGH-REF(HIGH,1); VAR3:=REF(LOW,1)-LOW;

VAR4:=SUM(IF(VAR2>0 AND VAR2>VAR3,VAR2,0),25); VAR5:=SUM(IF(VAR3>0 AND VAR3>VAR2,VAR3,0),25); VAR6:=VAR4*100/VAR1; VAR7:=VAR5*100/VAR1;

VAR8:=MA(ABS(VAR7-VAR6)/(VAR7+VAR6)*100,15); VAR9:=(VAR8+REF(VAR8,15))/2;

A:=(VAR7>VAR6 AND VAR7>25 AND VAR6<25); B:ZIG(3,50/5)*100,COLORWHITE; G:MA(B,2),COLORYELLOW; D:=CROSS(B,G)*1000,COLORRED; W:=CROSS(G,B)*1000,COLORBLUE; E:=REF(INDEXC,1);

F:=SMA(MAX(INDEXC-E,0),3,1)/SMA(ABS(INDEXC-E),3,1); VAR10:=F AND F<8;

VAR11:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; VAR12:=SMA(VAR11,3,1); VAR13:=SMA(VAR12,3,1); VAR14:=VAR13 AND VAR13<20; MM:=A AND D AND VAR10 AND VAR14 ; DRAWTEXT(W=1000,B*1.05,'卖' ),COLORGREEN; DRAWTEXT(D=1000,B*1.05,'买'),COLORRED; 语言规范:

在自定义公式里面的各种符号(如,“;” )只能用半角不能用全角。 关键字 if else while break continue return (无大小写之分) 常数 浮点数、整数、字符串

分隔符 “ ” ‘ ’ ( ) ; { } 注释/* */ 标识符 由字母和数字组成,由字母开头,不分大小写 运算符(优先级从高到低排列,同级同行) * / + -

!= > < >= <=

11

And Or

语句 赋值 a = b 条件 IF (a==b) c=d; 循环 while a==b c=d; 函数调用 func(a,b) 赋值语句:

其一般形式为:

a=b; 含义为将b的值付给a。

几个运算符“=”赋值、 “:=” 赋值“:”赋值并输出数值或字符串“:>”赋值并输出图形。

注意:“=”和“:=”两个运算符的意义、用法完全相同。这样做主要是为了更好地兼容市场上目前的各种带有公式编辑功能的分析软件。

同花顺公式函数注释(常用部分) 逻辑函数:

1、条件函数:根据条件求不同的值。

用法:IF(X,A,B)若X不为0则返回A,否则返回B。 例如:(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值。 引用函数:

1、满足条件的周期数:统计满足条件的周期数。

用法:COUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。例如:COUNT(CLOSE>OPEN,20)表示统计20周期内收阳的周期数。

2、第一个条件成立到当前的周期数:统计第一个条件成立到当前的周期数。

用法:BARSSINCE(X):第一次X不为0到现在的天数。例如:BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数。 3、上一次条件成立到当前的周期数:上一次条件成立到当前的周期数。

用法:BARSLAST(X),上一次X不为0到现在的天数。例如:BARSLAST(CLOSE/REF(CLOSE,1)>=1,1)表示上一个涨停板到当前的周期数。

4、有效周期数:求总的周期数。

用法:BARSCOUNT(X),第一个有效数据到当前的天数。 5、向前赋值:将当前位置到若干周期前的数据设为1。

用法:BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1。例如:BACKSET(CLOSE>OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0。 6、求和:求总和。

用法:SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始。例如:SUM(VOL,5)周期设为日线时,表示最近5个交易日的成交量之和。SUM(VOL,0)表示从传数据过来第一天起的成交量总和,具体如在区间统计里统计“总手” SUM(VOL,0)即是指全区间的成交量之和。

7、移动平均:求移动平均。

用法: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,30,1)表示求30日移动平均价。 8、向前引用:引用若干周期前的数据。

用法:REF(X,A),引用A周期前的X值。例如:REF(CLOSE,1)表示上一周期的收盘价,在日线上就是昨收。 9、简单移动平均:求简单移动平均。

用法:MA(X,N),求X的N日移动平均值。算法:(X1+X2+X3+,,,+Xn)/N。例如:MA(CLOSE,10)表示求10日均价。

12

10、最低值:求最低值。

用法:LLV(X,N),求N周期内X最低值,N=0则从第一个有效值开始。例如:LLV(LOW,0)表示求历史最低价。 11、最高值:求最高值。

用法:HHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始。 例如:HHV(HIGH,30)表示求30日最高价。 12、指数平滑移动平均:求指数平滑移动平均。

用法:EMA(X,N),求X的N日指数平滑移动平均。算法:若Y=EMA(X,N)则Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。例如:EMA(CLOSE,30)表示求30日指数平滑均价。 13、动态移动平均:求动态移动平均。

用法:DMA(X,A),求X的动态移动平均。算法: 若Y=DMA(X,A)则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1。例如:DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价。 14、最高值周期数:求上一高点到当前的周期数。

用法:HHVBARS(X,N):求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计。例如:HHVBARS(HIGH,0)求得历史新高到到当前的周期数。

15、最低值周期数:求上一低点到当前的周期数。

用法:LLVBARS(X,N):求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计。例如:LLVBARS(HIGH,10)求得10日最低点到当前的周期数。

16、加权移动平均:求加权移动平均。 用法:WMA(X,A),求X的加权移动平均。

算法:若Y=WMA(X,A) 则Y=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*XN)/(N+(N-1)+(N-2)+...+1) X0表示本周期值,X1表示上一周期值...。

例如:WMA(CLOSE,20)表示求20日加权均价。 17、求和:向前累加到指定值到现在的周期数。

用法:SUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数。例如:SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数。 时间函数:

1、总开盘分钟:求当前代码类型的开市交易时间。

用法:TRADETIME。返回交易时间,单位为分钟。目前一般市场都返回242,与日期或具体的股票无关。 2、距开盘分钟:求当前时刻距开盘有多长时间。

用法:FROMOPEN。返回当前时刻距开盘有多长时间,单位为分钟。例如:当前时刻为早上十点,则返回31。 3、距午夜秒:求当前时刻距开盘有多长时间。

用法:FROMNIGHT。返回当前时刻距午夜有多长时间,单位为秒。例如:当前时刻为早上十点,则返回36000。 4、时间格式:转换时间格式。

用法:FORMATTIME(N)。目前只支持 N=1 把当前时间转换成距开盘分钟数返回。例如:分时中的量比曲线公式:(VOL*(TRADETIME+1)*5)/(FORMATTIME(1)*FIVEDAYVOL)。 5、时间差:计算两个时间之间的差。

用法:COUNTTIME(N,L,K)。N、L为时间,其格式为YYYYMMDD。K为1、2或者3。当K为1时返回第二个之间比第一个时间晚多少年。当K为2时返回第二个之间比第一个时间晚多少月。当K为3时返回第二个之间比第一个时间晚多少日。例如:COUNTTIME(20000808,19990606,2)其返回值为-2。注意:这里返回值有正负号。

算术函数:

1、绝对值:求绝对值。

用法:ABS(X)返回X的绝对值。例如:ABS(-34)返回34。 2、介于:介于两个数之间。

用法:BETWEEN(A,B,C)表示A处于B和C之间时返回1,否则返回0

13

例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间。 3、最大值:求最大值。

用法:MAX(A,B)返回A和B中的较大值。例如:MAX(CLOSE-OPEN,0)表示若收盘价大于开盘价返回它们的差值,否则返回0。 4、最小值:求最小值。

用法:MIN(A,B)返回A和B中的较小值。例如:MIN(CLOSE,OPEN)返回开盘价和收盘价中的较小值。 5、求模运算:求模运算。

用法:MOD(A,B)返回A对B求模。例如:MOD(26,10)返回6。 6、求逻辑非:求逻辑非。

用法:NOT(X)返回非X,即当X=0时返回1,否则返回0。例如:NOT(5>3)返回0。 7、范围:介于某个范围之间。

用法:RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。例如:RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并且小于10日均线。 8、求相反数:求相反数。

用法:REVERSE(X)返回-X。 例如REVERSE(CLOSE)返回-CLOSE。 9、余弦值:求余弦值。 用法:COS(X)返回X的余弦值。 10、正弦值:求正弦值。 用法:SIN(X)返回X的正弦值。 11、平方根:开平方。

用法:SQRT(X)为X的平方根。例如:SQRT(CLOSE)收盘价的平方根。 12、上穿:两条线交叉。

用法:CROSS(A,B)表示当A从下方向上穿过B时返回1,否则返回0。例如:CROSS(MA(CLOSE,5),MA(CLOSE,10))表示5日均线与10日均线交金叉。

13、维持:两条线维持一定周期后交叉。

用法:LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均线维持5周期后与10日均线交金叉。 14、空:判断是否为空。

用法:ISNULL(A)表示如果A为空(即没有数据)则返回1,否则返回0。 15、:求幂。

用法:POW(X,Y)。求X的Y次幂。例如:POW(2,3)为8。

绘图函数 位图

含义:在图形上绘制位图。 用法:

DRAWBMP(COND,PRICE,BMPFILE),当COND条件满足时,在PRICE位置画BMPFILE文件名指定的BMP位图(缺省路径为软件安装目录登录用户名)。

例如:DRAWBMP(CLOSE>OPEN,LOW,'SUN')表示当收阳时在最低价位置画软件安装目录登录用户名Sun.BMP位图。

※BMPFILE参数指定的BMP文件默认路径为当前用户目录,如果不带后缀名即表示BMP文件,也可带后缀名使用JPG和GIF文件。 也可不用用户目录而使用全路径,路径中的''要写两个以下字符串作为参数都是合法的,如果文件存在的话: \

填充背景

含义:根据条件填充背景区域。

14

用法:

DRAWGBK(COND,COLOR),填充满足COND条件的背景区域。COLOR可以为渐变颜色STRIP,也可以为BMP图形文件名(缺省路径为\软件安装目录登录用户名\,若省略COLOR则使用指标线颜色填充(可以使用COLORRED等描述符设定)。 例如:DRAWGBK(CLOSE>OPEN),COLORRED;表示收阳时用红色填充背景。

DRAWGBK(CLOSE>OPEN,'MyBMP');表示收阳时用软件安装目录登录用户名MyBMP.BMP填充背景。 画图标

含义:在图形上绘制小图标。 用法:

DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE图标,TYPE是曲线标志的名称。 例如:DRAWICON(CLOSE>OPEN,LOW,\表示当收阳时在最低价位置画买入图标。 显示文字

含义:在图形上显示文字。 用法:

DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT。

例如:DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线')表示当日涨幅大于8%时在最低价位置显示'大阳线'字样。 RGB颜色 含义:指定颜色。 用法:

RGB(R,G,B),表示用三原色红(R)绿(G)蓝(B)混合组成指定颜色,每种颜色值可以设定为0-255。 例如RGB(255,0,0)表示红色,RGB(0,0,255)表示蓝色 画柱线 用法:

STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距),EMPTH不为0则画空心柱。

例如:STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,1)表示画K线中阳线的空心柱体部分。

提示文字

TIPTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置显示图标,若PRICE为0,则在图形底部显示图标。

例如:TIPTEXT(CLOSE/OPEN>1.08,LOW,'大阳线,股价为:'+close)表示当日涨幅大于8%时在最低价位置显示图标,鼠标移近时显示文字'大阳线,股价为:15.88'字样。 ※显示为三角图标

画垂直线

含义:在图形上绘制垂直线。 用法:

VERTLINE(COND,TYPE),当COND条件满足时,沿垂直方向绘制TYPE类型的线段,TYPE=0表示实线,1表示虚线'---',2表示点线'...',3表示点划线'-.-.-',4表示点点划线'-..-..-'。

例如:VERLINE(HIGH>=HHV(HIGH,20),1)表示在创20天新高画垂直虚线

画水平线

含义:在图形上绘制水平线。

15

用法:

HORLINE(COND,PRICE,TYPE,EXTEND),当COND条件满足时,在PRICE位置沿水平方向绘制TYPE类型的线段,TYPE=0表示实线,1表示虚线'---',2表示点线'...',3表示点划线'-.-.-',4表示点点划线'-..-..-'。EXTEND=1 表示向左延长,=2表示向右延长,=3表示左右

由简单的公式编写开始

这里举一些最简单的例子,有些只有一条语句且函数简单,较复杂的公式中函数复杂且语句较多。

收盘价线 CLOSE 均线的画法 计算N日内收盘价的算术平均值,公式为:MA(X,N)表示X的N日平均。 例如: MA1: MA (CLOSE,5) , coloryellow ; 表示为: 参数名 画一条5日收盘价的均线 设置该线为黄色 MA2:MA(C,20),color0000ff(20日收盘价均线,颜色为红色) MA3:MA(c,250),color00ff00(年线,绿色) 均线:MA(c,N);(周期N可设置最大,最小,缺省)

换手率 换手率指当期的成交量占流通股本的比例。

公式: hs:VOL/CAPITAL; VOL为当期成交量,CAPITAL为流通股本。

乖离率 当前股价与均线的偏差的程度 gl:(c-ma(c,20))/ma(c,20)*100;

量比 当期成交量与5日均量的比 lb:vol/ma(vol,5);

涨幅 涨幅指今日收盘价相对于昨日收盘价的变动幅度,即(今日收盘价-昨日收盘价)/昨日收盘价*100%, 昨日收盘价的公式为:REF(CLOSE,1),

涨幅的公式: (CLOSE-REF(CLOSE,1))/REF(CLOSE,1)

创新高 创新高指当日最高价是最近一段时间的最高价: HIGH=HHV(HIGH,N) 其中的HIGH为当期最高价,HHV(X,N)是求N周期内X最高值。因此该公式的含义是当日最高价创N日新高时返回值为1,否则为0。

横盘整理 横盘整理指最近一段时期价格在一定幅度之内摆动: (HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<0.05 其中的LLV(X,N)是求N周期内X最低值。因此该公式表示10日收盘价振幅振幅在5%以内。

放量、缩量(成交量函数为VOL) A、放量

a.今天成交量较昨天增加了1倍,表示如下: VOL/REF(VOL,1)>2 b.今天成交量较10个交易日平均成交量放大了1倍,表示如下:

a:=ma(vol,10); Vol/a>2 或者直接用如下公式表示: vol/ma(vol,10)>2;

c.今日的5日均量较10个交易日平均成交量放大了1倍,表示如下: a:=ma(vol,10); b:=ma(vol,5); b/a>2; d.今日的成交量超过了整个流通盘的5%,表示如下: vol/capital>0.05;其中capital代表流通盘。

B、缩量

a.今日成交量较昨日减少了一半,表示如下: vol/ref(vol,1)<0.5;

b.今日成交量较10个交易日平均成交量减少一倍,表示如下: a:=ma(vol,10); vol/a<2; 或者直接用如下公式表示: vol/ma(vol,10)<2;

16

c.今日的5日均量较10个交易日平均成交量减少1倍,表示如下: a:=ma(vol,10); b:=ref(a,5); a/b<2; d.今日的成交量低于了整个流通盘的5%,表示如下: vol/capital<0.05;

上涨、下跌

上涨 今天的涨幅达到5%以上,表示如下: close>ref(close,1)>1.05; 5日均价连续上涨,表示如下: a:=ma(close,5); b:=ref(a,1); 下跌 今天的跌幅达到5%以上,表示如下: close/ref(close,1)<0.95; 5日均价连续下跌,表示如下: a:=ma(close,5); b:=ref(a,1); a< b;

描述K线 阳线 close>open; 阴线 close< open; 高开 open>ref(close,1); 低开 open< ref(close,1); 跳空高开(high为最高价) open>ref(high,1); 跳空低开(low为最低价) open< ref(low,1); 引用大盘数据

INDEXDATA(“N”,&X,K) INDEXDATA 求某商品相关的数据 例:INDEXDATA(\沪指N周期最高值 个股于大盘的比较

CLOSE/INDEXDATA(\只于沪指比较 股价在N日线附近--这可是反映股价调整幅度的好公式(选股) a:=MA(C,N); 选股时输入20,30,60可选不同均线附近的股,

ABS(C-a)/C<=0.02; 在某均线的2/100附近的股票。也可根据需要改百分比。

只显示数值不显示曲线 在曲线属性-输出线形的勾去掉,在公式语句使用输出符出“:”

趋势【天】:BARSLAST(MA(C,250)

均线多头排列 a1:=ma(c,5); a2:=ma(c,10); a3:=ma(c,20); a4:=ma(c,30);

count(a1>a2 and a2>a3 and a3>a4,3)=3 and close>open; (conut统计满足条件的周期数,5,10,20,30日均线呈多头排列), 均线空头排列 a1:=ma(c,5); a2:=ma(c,10); a3:=ma(c,20); a4:=ma(c,30);

count(a1< a2 and a2< a3 and a3< a4,3)=3 and not(close< open); (5,10,20,30日均线呈空头排列)。 均线金叉 a;=ma(c,5); b:=ma(c,10);

cross(a,b); (前二句是5、10日均线,cross是交叉函数,cross(a,b)表示5日均线上穿10日均线金叉)。 均线死叉 a;=ma(c,5); b:=ma(c,10);

cross(b,a); (前二句是5、10日均线,cross是交叉函数,cross(b,a)表示5日均线下穿10日均线死叉)。

17

均线粘合 ma1:=ma(c,5); ma2:=ma(c,10); ma3:=ma(c,20);

p1:=abs(ma1-ma2)+abs(ma2-ma3);

p1/c< 2/100 and ma1>ref(ma1,1) and ma2>ref(ma2,1); (前三句是三根均线,p1是第一根均线减第二根均线差的绝对值与第二根均线减第三根均线差的绝对值之和,最后一句是p1与收盘价的比值小于一定比率2%(一般该比率为2%以下,同时前二均线今日比昨日上翘)。

在个股主图叠加(引用大盘数据的)线:

(HHV(H,n)-LLV(L,n))/(HHV(INDEXDATA(\*(INDEXDATA(\ 活跃度

CJBS:=MAX(0,SUBSAMEDAY(&VOLAMOUNT)); 成交笔数 活跃度:CJBS/CAPITAL*100,VOLSTICK; MA13:MA(活跃度,13);

每笔均量

CJBS:=MAX(0,SUBSAMEDAY(&VOLAMOUNT)); 每笔均量:VOL/CJBS*100,COLORYELLOW; 每笔均量,STICK,COLORRED; MA5:MA(每笔均量,5),COLORWHITE; MA13;MA(每笔均量,13),COLORMAGENTA; MA60:MA(每笔均量,60),COLORGREEN;

每笔均额

CJBS:=MAX(0,SUBSAMEDAY(&VOLAMOUNT)); 每笔均额:AMOUNT/CJBS,COLORYELLOW; 每笔均额,STICK,COLORRED; MA5:MA(每笔均额,5),COLORWHITE; MA:MA(每笔均额,13),COLORMAGENTA; MA:MA(每笔均额,60),COLORGREEN;

交易强度

CJBS:=MAX(0,SUBSAMEDAY(&VOLAMOUNT)); 交易强度:VOL*100/CJBS/CAPITAL*100,VOLSTICK;

三,公式函数的活用

剔除选定股票,选股时剔除ST股票

STRFIND(STRLEFT(STKNAME,2),'ST')<>0; 字符串函数,用到公式中要取结果为“非”。 获得成交笔数

MAX(0,SUBSAMEDAY(&VOLAMOUNT)) 获得“是否最后周期”ISLATBAR

18

FILTER(条件1 AND 条件2,COUNT(条件1 AND 条件2,0)) 变色柱线(在个股于指数之间画不同颜色的柱线) STICKLINE(个股>指数,个股,指数,4,0),color6666ff; STICKLINE(个股<指数,个股,指数,4,1),color66bb66; 变色曲线(符合条件时改变颜色,下为用于KDJ公式) k:PARTLINE(k,k>d,RGB(255,0,0),k

A2:=BARSLAST(REF(CROSS(KDJ.k,KDJ.d),1));引用KDJ公式的K,D并金叉 B2:=REF(C,A2+1)>C AND REF(KDJ.k,A2+1)0,5),L+0.39,'KDJ底背'),coloryellow; 语言规范:

在自定义公式里面的各种符号(如,“;” )只能用半角不能用全角。 关键字 if else while break continue return (无大小写之分) 常数 浮点数、整数、字符串

分隔符 “ ” ‘ ’ ( ) ; { } 注释/* */ 标识符 由字母和数字组成,由字母开头,不分大小写 运算符(优先级从高到低排列,同级同行) * / + -

!= > < >= <= And Or

语句 赋值 a = b 条件 IF (a==b) c=d; 循环 while a==b c=d; 函数调用 func(a,b)

赋值语句:

其一般形式为:

a=b; 含义为将b的值付给a。

几个运算符“=”赋值、 “:=” 赋值“:”赋值并输出数值或字符串“:>”赋值并输出图形。

注意:“=”和“:=”两个运算符的意义、用法完全相同。这样做主要是为了更好地兼容市场上目前的各种带有公式编辑功能的分析软件。

网上搜集的公式

请问怎样用公式表示年线摆脱下降趋势出现向上拐头? COUNT(MA(C,250)>REF(MA(C,250),1),3)=3 如果想显示年线向上的天数时(本人的指标):

趋势:BARSLAST(MA(C,250)<=REF(MA(C,250),1))/10,colorwhite;(注:显示天数和斜直线,由于天数太长时,如大牛股,可能长达400天,斜直线垂直高度太高,故用1/10。亦可不显示斜直线,在“曲线属性”内设置,只显示天数)。 怎么定义一阳线紧跟两阴线的函数?

ref(c,2)>ref(o,2) and ref(c,1)

19

股价创出新高后,又调整到30日均线附近的选股公式如何编写? COUNT(C>=HHV(C,N),5)=1 AND C/MA(C,30)>=1 AND C/MA(C,30)<1.02 破5天线,3天后又重新站上5天线的个股

cross(ref(ma(c,5),3),ref(c,3)) and cross(c,ma(c,5)) 3天内5天线上穿10天线,10天线上穿20天线的个股

count(cross(ma(c,5),ma(c,10)),3)>=1 and count(cross(ma(c,10),ma(c,20)),3)>=1

日macd翻绿3天内又翻红的个股。

count(cross(0,\

我没使用同花顺高速行情软件,你如果在使用,可以将第一行去掉,ORDER是成交单数(看同花顺是用什么函数,对号入座),将P1,P2改成5,10即可。

另外,我写了一个普通行情的(当然没有逐单分析的好): dy:SUM(OUTVOL-INVOL,0)/CAPITAL*100; dy1:MA(dy,5); dy2:MA(dy,10);

注! 由于同花顺软件的严重错误,即对涨停板的成交计入到内盘,故请主意(涨停时正好相反的走势)。

经典公式:

{金蛤蟆选股}

RSV:=(((CLOSE - LLV(LOW,6)) / (HHV(HIGH,6) - LLV(LOW,6))) * 100); K:=(POW(SMA(RSV,2,1),5) / POW(10,8)); D:=(POW(SMA(RSV,2,1),5) / POW(10,10)); 蛤:=((K+ D) / 2); 蟆:=(0 - 蛤); J:=1;

选股:CROSS(蛤,J);

金蛤蟆选股公式 选出的股票可选择最符合最好形态 {量顶天立地} A1:=V=HHV(V,120); A2:=C/OPEN>1.049; TJ:=A1 AND A2;

TJ AND (REF(BARSLAST(TJ),1)>80 OR BARSSINCE(TJ)=0);

20

量顶天立地:

某日出现半年来的天量,且收出大阳线。

本公式集有一个量顶天立地五彩K线公式D!LDTLDWC与本公式对应。

{老鸭头}缺省周期:日线 MA5 := MA(close,5); MA10 := MA(close,10); MA60 := MA(close,60);

pday1 := barslast(cross(ma5,ma60));{5日均线上穿60日均线}

6 _& g\日均线上穿60日均线,至此形成鸭颈部}

pday3 := barslast(high=hhv(high,pday2));{形成头部,要下跌} pday4 := barslast(cross(ma10,ma5));{下跌后,5日均线和10日均线死叉}

pday5 := barslast(cross(ma5,ma10));{回落不久,5日均线和10日均线形成金叉,形成嘴部}

a1:= pday1>pday2 and pday2>pday3 and pday3>pday4 and pday4>pday5 and pday5<5; a2:= count(cross(ma10,ma5),pday2)=1; A1 AND A2; 老鸭头:

(1)采用5、10和60周期的价格平均线。当5日、10日均线放量上穿60日平均线后,形成鸭颈部。

(2)股价回落时形成的高点形成鸭头部。

(3)当股价回落不久,5日、10日均线再次金叉向上形成鸭嘴部。 操作:

(1)在5日、10日均线放量上穿60日平均线形成鸭颈部时买入。 (2)在鸭嘴部附近成交量芝麻点一带逢低买入。 (3)当股价放量冲过鸭头顶瞬间时介入。

{量芝麻点}缺省周期:日线 (有未来函数慎用!) V1:=MA(V,40); HSL:=V/CAPITAL*100; A1:=COUNT(V/V1<1.3,14)>11;

21

A2:=CROSS(HSL,2);

A3:=C/REF(C,1)>1.025 AND C>OPEN; ZTJ:=A1 AND A2 AND A3;

量芝麻点:

成交量连续出现萎缩,在量柱体图上表现为小芝麻点,连续的小芝麻点与40日量平均线形成一个小水坑。 操作建议:

最好K线浅幅回档,且成交量越小越好,当放量上行时买入。

{青龙取水}缺省周期:日线 (无未来函数)

A1:=MIN(MA(C,5),MA(C,10))>MA(C,60) AND CROSS(MA(C,5),MA(C,10)); A2:=MIN(MA(C,5),MA(C,10))/MA(C,60)<1.05; A3:=COUNT(V6; A1 AND A2 AND A3; 青龙取水:

在5日、10日、60日均线图上,5、10日均线起伏不定,日K线在60日均线上逶迤。 2、龙头回到60日均线附近,犹如青龙取水,同时成交量萎缩 3、然后大涨。

操作:待龙头形成,成交量萎缩又放大后,逢低介入。

(轻松过头) 缺省周期:日线 (有未来函数慎用!) NDAYA:= HHVBARS(HIGH,120); {120日内最高价的周期数} NDAY1:= NDAYA-10; {最高点之后10日}

NDAY2:= NDAYA+10; {庄家应该在NDAY1--NDAY2之间吸纳大部分筹码} 4 o. A9 T& Y# @' O; sA1 := NDAYA>=30;{确保高点出现的周期数大于30} A2 := REF(SUM(VOL,20),NDAY1) > FINANCE(7) * 0.4; {吸纳40%} VMA:=MA(VOL,40);{40日量均线}

A3:=COUNT(VOL0.9;{成交量呈现芝麻点} A4:=CLOSE>=HHV(HIGH,120);{股价在冲击前高位}

A5:=COUNT(VOL<(MA(VOL,10)*1.3),10)>8;{近期无明显放量} A1 AND A2 AND A3 AND A4 AND A5;

22

轻松过头:

(1)前一个头部下方的成交量巨大,股价筑头后开始回档。 (2)回档完毕后成交量呈量芝麻点,股价再次上扬冲击前一头部。 (3)轻松冲过前一头部并未明显放量。 操作:

(1)在前一头部成交量巨大时跟进。

(2)在回档完毕后成交量呈现芝麻点时逢低吸纳。

(3)最经济、最大利润化的方法是在轻松过头前的一瞬间迅速介入。 (4)前头部价格一般是上升浪的腰部。

23

本文来源:https://www.bwwdw.com/article/1fw7.html

Top