《同花顺公式大全附经典公式.doc》由会员分享,可在线阅读,更多相关《同花顺公式大全附经典公式.doc(23页珍藏版)》请在金锄头文库上搜索。
1、同花顺公式编辑教程大全 什么是技术指标? MA均线就是一种技术指标,我们在炒股的时候,经常会将一些行情数据进行数学计算得出一些曲线等等,方便我们掌握股市的变动情况。 什么是条件选股? 简单讲,就是按照您的设定的条件用电脑帮助您完成一些太多太复杂的挑选-比如您有一些好的心得和方法,可使有1000多只股票,您就是有100双眼睛有时也不一定可以看得过来,这时电脑就派上用场了! 什么是参数? 比如讲:10日均线,您可以把10日当作参数,好处在于,您觉得需要修改成5日的时候,就可以使用一些简单的方法,例如参数精灵来很方便的修改和调整。参数需要名字,例如M就不错。还要规定参数的范围,例如1日至260日。这
2、样我们就可以在1到260之间任意调节M的值了,M最常用的数填在“缺省”一栏,例如你最喜欢用10日均线,那就填10吧。 什么是周期? 这么解释吧!我们有的投资者喜欢使用日线图作技术分析;有的喜欢用5分钟的K线;有的喜欢使用长一点时间的,例如周线。所以在公式设计中,允许不同喜好的使用者选择不同的分析时间-就是可以选择不同的周期。 什么是函数? 函数在公式编写非常重要,如果作个比喻,我们用一种语言去告诉电脑我的想法,并且让它去帮我做,那么函数就是这种语言的单词。 例一: 一根K线有四个价格组成: 最高价:HIGH收盘价:CLOSE最低价:LOW开盘价:OPEN成交量:VOL 成交额:AMO 例二:
3、两条均线不断地交叉,就专门设定了一条函数来描述两条线交叉: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编写一条最简单的指标线
4、 通过前面的学习,我们今天开始使用软件的公式编辑功能编写我们自己的第一条指标线。 其实不难,你应该对自己有信心! 按照主菜单-工具-公式管理-选择-“技术指标”-点击“新建”,然后在公式编辑器中留下你的第一行脚印吧! 点击:“确认”,现在看一下我们第一条指标线。 这条指标线与你的想法相符吗? 总结与补充: 1、如果选择:“主图叠加”,我们的指标线会与K线图显示在同一个图形框中,现在我们的指标线显示在其下方,即“副图”中; 2、参数可以有,也可以没有,但是鼓励大家设置参数,这是非常好的习惯; 3、一个句子完了,别忘了以分号结尾; 你的公式写得对不对,可以通过“测试公式”来检查,如果错了,它会告诉
5、你错在哪里。 编写最常用的均量和均价线 均价线,不就是那个“移动平均线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); . 当然是有简单的
6、方法了!你把我在上面说过的话写下来,按照前面几课讲的,写在公式的编辑栏当中就可以了! 注意: “MA”表示的就是计算平均值。 在括号内写上计算的对象和计算的时间长度。 MA1,MA2,MA3.是好几条指标线,别忘记了用分号把它们分开。 同花顺公式编写教程公式编写规则 语言规范: 在自定义公式里面的各种符号(如,“;” )只能用半角不能用全角。 关键字 if else while break continue return (无大小写之分) 常数 浮点数、整数、字符串 分隔符 “ ” ( ) ; 注释/* */ 标识符 由字母和数字组成,由字母开头,不分大小写 运算符(优先级从高到低排列,同级同
7、行) * / + - = != = ”。其含义分别为“赋值”、 “赋值”、“赋值并输出数值或字符串”、“赋值并输出图形”。 注意:“”和“:=”两个运算符的意义、用法完全相同。这样做主要是为了更好地兼容市场上目前的各种带有公式编辑功能的分析软件。 条件语句:其一般形式为: IF(逻辑表达式) 语句1; ELSE 语句2; 上述结构表示: 如果逻辑表达式的值为非0(TURE)即真, 则执行语句1, 执行完语句1从语句2后开始继续向下执行; 如果表达式的值为0(FALSE)即假, 则跳过语句1而执行语句2。 注意: 1、条件执行语句中ELSE 语句2;部分是选择项, 可以缺省, 此时条件语句变成:
8、 IF(逻辑表达式) 语句1; 表示若逻辑表达式的值为非0则执行语句1 , 否则跳过语句1继续执行。 2、如果语句1或语句2有多于一条语句要执行时, 必须使用和 把这些语句包括在其中, 此时条件语句形式为: IF(逻辑表达式) 语句体1; ELSE 语句体2; 这里语句体指多个语句,每个语句都必须以“;”结尾。 3. 条件语句可以嵌套, 这种情况经常碰到, 但条件嵌套语句容易出错, 其原因主要是不知道哪个IF对应哪个ELSE。 例如: IF(x20 OR x-10) IF(yx) AGood; ELSE BBad; 对于上述情况, 规定: ELSE语句与最近的一个IF语句匹配, 上例 中的EL
9、SE与IF(yx)相匹配。为了使ELSE与IF(x20 OR x20 OR x-10) IF(yx) A=Good; ELSE B=Bad; 4. 可用阶梯式IF-ELSE-IF结构。 阶梯式结构的一般形式为: IF(逻辑表达式1) 语句1; ELSE IF(逻辑表达式2) 语句2; ELSE IF(逻辑表达式3) 语句3; 循环语句:while循环的一般形式为: while(条件) 语句; while循环表示当条件为真时, 便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。 注意: 1、可以有多层循环嵌套。 2、语句可以是语句体, 此时必须用和括起来。 break语句 br
10、eak语句通常用在循环语句中。当break语句用while循环语句中时,可使程序终止循环而执行循环后面的语句, 通常break语句总是与if语句联在一起。 即满足条件时便跳出循环。 注意: 1、break语句对if-else的条件语句不起作用。 2、在多层循环中, 一个break语句只向外跳一层。 continue 语句 continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。 continue语句只用在while循环体中, 常与if条件语句一起使用, 用来加速循环。 函数调用: 调用函数的基本方式为:函数名(参数,参数,) 其返回值为函数里面的return语句规定的返回值。若
11、无return语句,则返回被调用函数里,以函数名命名的变量的值。若无以函数名命名的变量,则返回最后一个输出的值。若无输出的值,则返回最后一个被调用的语句的值。 例如:调用KDJ指标。KDJ函数的名称为kdj,其参数和内容如下: 参数名 最小值 最大值 默认值 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)的时候,相当于计算N18,M1
12、6,M26时的J值,并把这个值赋给a。 注意: 1、当传递的参数数目不等于被调用函数设置的参数数目时。 a、没有传递参数。则采用原来设置的默认参数计算。 b、传递参数少于被调用函数设置的参数数目。则将参数传过去,依次改变前面同样数目参数的值,后面其它的参数采用原来设置的默认参数计算。 c、传递参数大于被调用函数设置的参数数目。则将参数传过去,依次改变被调用函数的参数值,多余的参数不起作用。 2、函数名称不区分大小写。 3、新建的函数,其函数名可能与其它以存在的函数里面的内部变量重名。这样在调用那个函数时,那个内部变量将变成对这个新建函数的函数调用,从而产生错误。所以,在新建函数起名时要注意。
13、返回值:自定义公式里面如果有多数据项输出,则调用此函数的时候返回值默认为最后一个输出。如果希望确定某项输出则可用return,或者将函数名指定为其中一项输出。 关于“空”:所谓“空”即指没有数据。在某些情况下,一些数据项可能取不到数据,这时返回值为“空”。例如,yearrep(&jlr,4),其含义为取该公司3年前年报的净利润。如果某家公司上市时间较短,而无三年前的年报数据,则其值为“空”。 1、“空”与任何数据作计算时,相应计算被取消。 例如:7NULL(即“空”)得到的结果为7。 2、“空”与任何数据比较大小时,“空”较小。 例如:7NULL(即“空”)得到的结果为1(即条件满足)。 这样的结果可能与您原来希望得到的数值不符,如果您想避免这种情况可以用ISNULL函数来判断某个数据是否为“空”(相关说明见后面的系统函数说明部分)。 公式编写规则 代码与周期: 由于证券市场里的各项数据都与代码、时间密切相关,所以在这里的各项数据都只能用于特定的一类或几类代码及相应的一个或几个周期。(注意:同一个数据项可能适用于