同花顺公式编写的入门与精深.docx

上传人:b****5 文档编号:29671239 上传时间:2023-07-26 格式:DOCX 页数:15 大小:67.01KB
下载 相关 举报
同花顺公式编写的入门与精深.docx_第1页
第1页 / 共15页
同花顺公式编写的入门与精深.docx_第2页
第2页 / 共15页
同花顺公式编写的入门与精深.docx_第3页
第3页 / 共15页
同花顺公式编写的入门与精深.docx_第4页
第4页 / 共15页
同花顺公式编写的入门与精深.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

同花顺公式编写的入门与精深.docx

《同花顺公式编写的入门与精深.docx》由会员分享,可在线阅读,更多相关《同花顺公式编写的入门与精深.docx(15页珍藏版)》请在冰豆网上搜索。

同花顺公式编写的入门与精深.docx

同花顺公式编写的入门与精深

编写公式1)新建自定义公式。

单击“系统”菜单中的“新建”命令,选中“自定义公式”确定。

进入“公式编辑”对话框。

1.“名称”:

在这里输入所编公式的名称(一般用英文)。

这样当其它公式调用这个公式时将会使用这个名称。

例如:

数据项开盘价的函数名称为“OPEN”,则当别的公式要调用开盘价作计算时,在“公式编辑区域”输入OPEN就可以了。

2.“描述”:

给这个公式起一个简单的名称(一般用中文)。

将这个公式作为一个数据项输出时会显示这个名称。

例如:

数据项开盘价的描述为“开盘”,则在表格中显示开盘价的这一列的表头显示的名称就是“开盘”。

3.“密码”:

选中“密码”,表示将对该公式加密。

在输入密码后,今后对此公式进行修改和查看必须先输入密码。

不过仍然可以自由导入、导出和使用此公式。

4.“用法说明”:

可以写对这个公式用法的文本说明。

点击后就可以阅读或修改。

并且在很多其它界面能调用到,如选股界面。

5.“参数编辑”:

使用参数可以方便地使用中需要修改得数值进行调整。

每个参数需要设定参数名称、最小值、最大值和缺省值。

在这里依次填入参数名、最大、最小、缺省值。

如果要删除,则按delete键。

6.“参数精灵”:

在使用分析工具时,很多时候用户都需要调整参数,但很多用户无法理解对参数调整的实际意义。

使用“用法说明”按键下面的“参数精灵”,可以将参数调整及参数意义放在同一段文字中,方便用户使用。

用户在使用公式时,会在旁边显示参数精灵的内容。

参数精灵的内容是由公式剪辑者输入的一段文字,该文字描述了参数的使用方法,并且可以将参数设置与文字混合编辑。

方法是用“Param#1”(注意:

前后要加空格)来代替参数即可。

例如:

公式中有两个参数M和N,需要描述当M日均线与N日均线金叉时买入,可以这样写参数精灵:

“Param#1日均线与Param#2日均线发生金叉,发出买入信号。

”在实际使用该分析方法时,系统将显示:

5日均线与10日均线发生金叉,系统发出买入信号。

其中被包围在输入框中的5和10是参数,用户可以直接修改这些参数,而实际运算时将采用这些参数进行计算。

使用参数精灵大大降低了公式的使用难度。

7.“公式编辑区域”:

用于书写分析方法的算法,是公式编辑器的核心部分。

用户可以将自己的算法用公式语法书写到编辑窗中,关于公式语法请参见“附录5:

公式说明书”。

公式编辑器支持彩色显示,函数名称显示为大写蓝色,常数显示为粉红色。

当鼠标移动到任何函数名称上面时,系统将弹出解释器,解释该函数的含义、用法。

8.“测试公式”:

写完后,点击这里测试公式是否书写正确。

9.“提示”框:

测试完成后这里会提示测试结果,如果不通过会显示出错的具体位置。

10.“引入公式”:

可以引入其它公式的内容,方便公式之间的相互拷贝。

点击后会弹出窗口显示“技术指标”、“交易系统”、“五彩K线”三个目录下面的公式。

在窗口右面的公式列表里输入公式名的首字母快速搜索,在下面有选中公式的“用法说明”。

选中公式点“确定”键引入该公式,会将该公式的参数、公式内容、用法及参数说明全部加到现在的公式编辑器里,并且将现有的内容替换掉。

注意:

使用此功能时会将现有的内容替换掉!

11.“插入函数”:

显示选择函数对话框,帮助您在天网函数集中寻找所需函数。

您可以在弹出窗口右面的函数列表里输入函数名的首字母快速搜索,在下面有选中函数的“用法说明”。

选中函数点“确定”键后在“公式编辑窗”里面加入相应的函数名,使得当前的公式能调用该函数。

当您对系统提供的标准函数还不熟时,这个功能可帮您节省时间。

12.“适用周期”:

由于股市里的数据都与周期紧密相关,所以您在编写公式的时候要选择当前公式用于何周期下。

关于周期含义与用法请参见“附录5:

公式说明书”-“代码与周期”。

在选择“技术分析”周期时,子周期一般选择“全部适用周期”。

如果您希望实现同一公式在分钟K线和日线、周线时用不同的参数,如您希望看5日K线,但是切换到5分钟K线时看6个K线周期的均线(即半小时均线)。

您可以选择“技术分析”周期,选择子周期“5分钟”。

将“5分钟”K线的参数默认值设为“6”。

然后将子周期改成“日线”,改变参数默认值为“5”。

最后按“确定”键保存就可以了。

2)修改函数。

在“功能树”里“自定公式”一栏里选中所要修改的公式,单击右键选择“修改”。

接下来的操作和创建时的操作类似,只是公式名称不能修改。

 

 

 

 

附录五公式说明书

一、公式编写规则

二、行情数据说明

三、财务数据说明

四、资讯数据说明

五、财务分析说明

六、系统函数说明

七、基本公式

八、条件选股

九、技术指标

十、交易系统

十一、五彩K线

下一页

 

 

 

 

语言规范:

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

关键字

ifelsewhilebreakcontinuereturn(无大小写之分)

常数

浮点数、整数、字符串

分隔符

“”‘’();{}注释/**/

标识符

由字母和数字组成,由字母开头,不分大小写

运算符(优先级从高到低排列,同级同行)

*/

+-

==!

=><>=<=

And

Or

语句

赋值a=b

条件IF(a==b)c=d;

循环whilea==bc=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、条件执行语句中"ELSE语句2;"部分是选择项,可以缺省,此时条件语句变成:

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

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

2、如果语句1或语句2有多于一条语句要执行时,必须使用"{"和"}"把这些语句包括在其中,此时条件语句形式为:

IF(逻辑表达式){语句体1;}

ELSE{语句体2;}

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

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

例如:

IF(x>20ORx<-10)

IF(y<=100ANDy>x)

A="Good";

ELSE

B="Bad";

对于上述情况,规定:

ELSE语句与最近的一个IF语句匹配,上例

中的ELSE与IF(y<=100ANDy>x)相匹配。

为了使ELSE与IF(x>20ORx<-10)相匹配,必须用花括号。

如下所示:

IF(x>20ORx<-10)

{IF(y<=100ANDy>x)

A="Good";}

ELSEB="Bad";

4.可用阶梯式IF-ELSE-IF结构。

阶梯式结构的一般形式为:

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

ELSEIF(逻辑表达式2)语句2;

ELSEIF(逻辑表达式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,其参数和内容如下:

参数名

最小值

最大值

默认值

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函数来判断某个数据是否为“空”(相关说明见后面的系统函数说明部分)。

 

 

 

 

 

 

 

更多精彩内容仅在;我们将为广大投资者免费提供专业的投资建议

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1