同花顺公式编辑教程大全另附经典公式Word文档格式.docx
《同花顺公式编辑教程大全另附经典公式Word文档格式.docx》由会员分享,可在线阅读,更多相关《同花顺公式编辑教程大全另附经典公式Word文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
![同花顺公式编辑教程大全另附经典公式Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/7/faaae41d-aef6-4fb1-8fc6-f0405d4c41a8/faaae41d-aef6-4fb1-8fc6-f0405d4c41a81.gif)
REF(Close,5)表示5天前的收盘;
REF(Vol,10)表示10天前的成交量;
这里的M就是参数,您现在明白了什么是参数了吗?
例四:
如果我想把两个条件并列在一起怎么办?
AND
XANDY就表示条件X和条件Y
编写一条最简单的指标线
通过前面的学习,我们今天开始使用软件的公式编辑功能编写我们自己的第一条指标线。
其实不难,你应该对自己有信心!
按照主菜单-工具-公式管理-选择-“技术指标”-点击“新建”,然后在公式编辑器中留下你的第一行脚印吧!
点击:
“确认”,现在看一下我们第一条指标线。
这条指标线与你的想法相符吗?
总结与补充:
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......是好几条指标线,别忘记了用分号把它们分开。
同花顺公式编写教程
公式编写规则
语言规范:
在自定义公式里面的各种符号(如,“;
”)只能用半角不能用全角。
关键字
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、条件执行语句中"
"
部分是选择项,可以缺省,此时条件语句变成:
表示若逻辑表达式的值为非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<
x)相匹配。
为了使ELSE与IF(x>
-10)相匹配,必须用花括号。
如下所示:
{IF(y<
A="
ELSEB="
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
函数内容为:
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函数来判断某个数据是否为“空”(相关说明见后面的系统函数说明部分)。
代码与周期:
由于证券市场里的各项数据都与代码、时间密切相关,所以在这里的各项数据都只能用于特定的一类或几类代码及相应的一个或几个周期。
(注意:
同一个数据项可能适用于多类代码及多个周期,其具体的数值也将不同。
)
代码的分类:
个股(含债券)。
沪深指数(仅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(金额)
在实时、分时周期时代表当日的成交金额只和。
在分钟K线、日K线周期时代表那一个周期的成交金额只和。
当用于指数时,指此指数所包含所有交易品种成交金额之和。
VOL(总手)
在实时、分时、成交明细周期时代表当日的成交量只和。
在分钟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线”时,分别为某一分钟和某一日的成交次数。
VOLCLASS(成交量分类)
其数值与该笔成交的价位关系为:
“3”为“成交价<
=买三价”,“2”为“买三价<
成交价<
=买二价”,“1”为“买二价&
lt;
=买一价”,“0”为“买一价<
卖一价”,“5”为“卖一价<
=成交价<
卖二价”,“6”为“卖二
价<
卖三价”,“5”为“卖三价<
=成交价”。
(注意,这里的买卖盘的价格都是指上一次传过来的价格,与内外盘原理相同。
也
可以将“成交量分类”视为划分更为详细的内外盘。
个股的实时、分时、成交明细。
SELLPRICE(卖出)、BUYPRICE(买入)
本次成交时的委托卖出、买入价。
即用于成交明细的买一价、卖一价。
个股的成交明细周期。
仅适用于大盘的数据项:
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线模式。
公式的编辑在公式编辑器中完成。
公式系统处理的原始数据的分析周期(即相邻两组数据间的时间间隔)可以从1分钟到1000天间的任意值,也可以是分笔成交数据,改变分析窗口显示的分析周期,则公式处理新的分析周期的数据。
学习公式编写,使用的基本方法
基本捷径是从软件公式或他人公式入手,多看多动手边理解其写法,为什么调用这个函数,这个函数的意义是什么,这一句预要表达什么意思等等。
不动手永远不可能学会的。
从简单公式入手,先弄懂一,两个公式。
从修改公式加入自己的目标语句实现自己目标入手,几乎没有一个公式是那一个人自己完成的,或多或少都使用了前人的成果。
在编写中多用“测试公式”按钮,让软件作判断,告诉你编写对错与否。
使用彩色编辑可事半功倍。
多用鼠标指针指向不懂的函数,软件马上会告诉你。
公式编写步骤
1.设定公式名称:
每个公式都有自己的名称,它由字母或数字组成,最多可以有9个字符。
请注意,公式名称在同类公式中不能重复,且不能为空。
2.描述公式:
用于简单描述该公式的含义(可不填亦能通过), 3.注释公式:
用于描述一个公式如何使用、计算方法等内容。
输入后,在有关窗口按“用法注释”按钮可以查看公式注释(可省略)。
4.设计技术指标公式语句:
公式的形式由若干语句组成。
每个语句得到一个计算结果,对于技术指标,就是一条指标线,语句间用分号(“;
”)隔开。
一个语句由若干函数通过四则运算或逻辑运算而组成。
函数是公式系统的基本成分