公式系统技术白皮书Word文档格式.docx
- 文档编号:19394947
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:37
- 大小:47.70KB
公式系统技术白皮书Word文档格式.docx
《公式系统技术白皮书Word文档格式.docx》由会员分享,可在线阅读,更多相关《公式系统技术白皮书Word文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
如果希望确定某项输出则将函数名指定为其中一项输出。
在自定义公式里面的各种符号(如,“;
”)只能用半角不能用全角。
2.2.1语言规范
公式体所有语句
无大小写之分
常数
浮点数、整数、字符串
分隔符
“”,();
注释/**/或//
标识符
由字母和数字组成,由字母开头,不分大小写
运算符(优先级从高到低排列,同级同行)
*/
+-
==<
>
>
<
=<
=
And&
&
Or||
赋值语句
赋值a:
=b
条件语句IF(X,A,B)若X不为0则返回A,否则返回B。
无循环语句。
函数调用func(a,b)。
2.2.2关于标识符
标识符在表达式中只存名称,值保留在符号表。
标识符包括函数名、参数名和变量名。
函数名用来传递函数返回值;
参数名用于函数调用时的参数传递;
变量名在计算中存储中间计算结果。
分隔符
符号
含义
“”
引用字符串
()
控制运算的优先级
;
每行语句的结束标志
/**/或//
注释,无任何实际功能
赋值语句
其一般形式为:
a:
=b;
含义为将b的值付给a。
几个运算符“:
=”“:
”。
其含义分别为“赋值”、“赋值并输出图形”。
引用函数/指标
调用函数的基本方式为:
函数名/指标名(参数,参数,…)
其返回值为函数里面的最后一个被调用的语句的值。
例如:
调用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、函数名称不区分大小写。
2.2.3关于在一条语句后加上线形描述符
基本方式为:
一条语句,描述符1,描述符2,描述符3,描述符4。
共四个描述符;
四个描述符的取值如下:
名称
说明
取值
描述符1
图形绘制方式(却省为曲线)
1、STICK:
柱状线,从0到指标值间画垂直线;
2、COLORSTICK:
彩色柱状线,当值为正时显示红色,否则显示绿色;
3、VOLSTICK:
成交量柱状线,当股价上涨时显示红色空心柱,否则显示绿色空心柱;
4、LINESTICK:
同时画出柱状线和指标线;
5、CROSSDOT:
小叉线;
6、CIRCLEDOT:
小圆圈线;
7、POINTDOT:
小圆点线。
8、DRAW3D:
画3d柱状图。
9、LINEDRAW3D:
画3D曲线
描述符2
图形绘制颜色(却省为自动取)
用rgb(r,g,b)取数值
描述符3
图形绘制的线风格(却省为线)
0实线
1破折号式线/*-------*/
2点线/*.......*/
3破折号+点线/*_._._._*/
4破折号+双点线/*_.._.._*/
描述符4
图形绘制的线宽度(却省为自动取)
大于零的常数
2.2.4关于“空”的问题
所谓“空”即指没有数据。
在某些情况下,一些数据项可能取不到数据,这时返回值为“空”。
例如,ref(close,4),其含义为取前四天的收盘价。
如果前四天数据没有,则其值为“空”。
1、“空”与任何数据作计算时,相应计算结果为”空”。
7×
NULL(即“空”)得到的结果为NULL。
2、“空”与任何数据比较大小时,相应结果为“空”。
-7>
2.2、现在我们以MACD公式为例说明公式的基本要素和规则
1、一个公式包括公式名称、参数、公式体、注释、参数精灵等部分组成。
2、每一个公式必须有一个名称,这个名称由字母或数字组成。
公式名称在同类公式中必须是唯一的,例如不能同时存在俩个MACD技术指标,但可以存在一个MACD技术指标一个MACD条件选股公式。
公式名称没有字符限制。
3、计算参数:
每个公式可以有0-100个计算参数,计算参数用来替代公式中所需的常数,在使用时可以方便地调节参数,不必修改公式就可以对计算方法进行调节。
计算参数包括参数名称、最小值、最大值、缺省值四个部分。
参数名称用于标识参数,一般情况下计算公式时采用缺省值计算,而最小值和最大值是参数的调整范围。
对于交易系统公式,每个参数还包括一个测试步长,在优化参数时系统从最小值到最大值逐一调整参数,每次调整量就是测试步长。
例如最小值是1,最大值是10,步长是2,则系统将测试参数1,3,5,7,9。
在实际设置时,请注意步长的选择,过大会漏掉一些数据,过小会延长计算时间,每个公式的最大测试步数为10000次,即所有参数变化量的乘积必须小于10000。
例如某公式有俩个参数,参数一最小、最大和步长分别为1、100、1,参数二分别为1、100、2,则参数一变化量为100,参数二变化量为50,总的测试次数为100*50=5000次。
4、公式体由若干语句组成,每一个语句描述一个算法。
关于公式体的具体定义方法见下一小节。
5、公式描述是一段文字,用来简单描述该公式的含义,在公式列表时显示这段文字。
这段文字不宜过长。
6、公式注释是一段文字,相对于公式描述而言它可以更长,主要用来描述一个公式如何使用、注意事项、计算方法等,在使用公式时为用户提供一定的参考。
7、参数精灵用于方便用户设置参数。
对于不熟悉的指标,用户使用时设置参数比较困难,使用参数精灵可以解决这个问题。
例如均线选股系统用于选出短期均线与长期均线发生金叉的股票,用参数精灵可以让用户界面出现“买入条件为□日均线与□日均线发生金叉”,其中‘□’符号表示输入筐,用户可以输入需要的数字,则计算就按照指定的参数运行。
参数精灵的写法是用‘param#1’表示第一个参数。
用‘param#2’表示第二个参数,系统在显示参数精灵时使用输入框代替param#x.例如上面文字在参数精灵设置中应写为“买入条件param#1日均线与param#2日均线发生金叉”。
8、禁用周期表示该公式不能在指定周期进行计算,同时还可以指定默认周期,这样在进行选股、排序等功能时自动使用默认周期。
9、技术指标公式还可以强制设定坐标位置,例如KD指标我们需要在0,20,50,80,100画5条坐标线,可以在坐标线位置输入框中写入0;
20;
50;
80;
100。
公式体:
1、公式体由若干语句组成。
每个语句表示一个计算结果,在技术指标上就是一条指标线,语句间用‘;
’割开。
每个语句可以有一个名称,该名称写在语句的最前面,并用一个冒号将它和语句分割开。
DEA:
MA(CLOSE,5);
该语句表示求收盘价的的五日均线,语句的名称为DEA。
在后面的语句中可以直接用DEA来替代五日均价,例如:
MA(DEA,5)表示对收盘价的五日均线在求五日平均,相当于MA(MA(CLOSE,5),5)。
2、一个语句如果不需要显示,可以将它定义为中间语句,中间语句必须有名称,用“:
=”替代冒号表示名称,其他与一般语句完全一样。
使用中间语句可以有效降低公式的书写难度,还可以将需要重复使用的语句定义成中间语句以减少计算量,例如我们需要多次使用五日均价,则可以将它定义为中间语句,下面的例子可以看出他的优点:
MA(CLOSE,5)+MA(MA(CLOSE,5),10)+MA(MA(CLSOE,5),20)可以写为
MM:
=MA(CLSOE,5);
MM+MA(MM,10)+MA(MM,20);
3、每个公式最多语句没有限制,中间公式数量也没有限制。
也就是说每个指标可以最多画n条指标线。
4、对于技术指标公式可以在语句后加上线形描述符,用来描述如何画该语句的指标线。
5、每个语句有若干函数通过四则运算或逻辑运算而组成。
函数是公式系统的基本单位,它描述了用户的基本要求、每个函数都由函数名称和参数组成,参数放在函数后的括号内,若干参数量为0个则可以不写括号。
例如CLOSE()函数没有参数,所以在公式中写成CLOSE和CLOSE()都可以。
6、公式系统使用计算符将函数连接成为公式。
计算符号分为算术运算符和逻辑计算符。
算术计算符包括+、-、*、/、他们分别对计算符号两边的数据进行加减乘除计算;
逻辑计算符包括>
、<
、>
=、<
=、=、AND、OR八种,如果条件成立计算结果就等于1,否则等于0。
例如3+4就等于7,4>
3就等于1,4>
3AND12>
=4的结果等于1,4>
3OR3>
12的结果等于1.
7、公式系统可以处理的数据分为两类:
变量和常量。
所谓常量就是一个永远不变的数据,变量就是一个随着时间变化而变化的数据,例如成交量,每个函数需要的参数可能是变量也可能是常量,不能随便乱用,函数计算的结果一般是一个变量。
例如计算收盘价均线MA(CLSOE,5),MA函数要求第一个参数为变量,而CLSOE函数返回的正是变量;
MA函数要求第一个函数为变量,而CLSOE函数返回的正是一个变量;
MA函数要求第二个参数是常量,5可以满足要求。
我们不能这样书写:
MA(5,CLOSE)。
8、除技术指标公式外,其他公式均需逻辑语句表达式,即当语句返回0时表示否,返回非0时表示是。
例如CLOSE>
OPEN语句,当条件满足时返回0。
如果用CLOSE-OPEN语句,则只有当平盘时返回0,其他情况下均表示条件满足。
条件选股公式只能有一条语句,用来表示条件是否成立;
交易系统公式需要1-4条语句表示多头和空头的买入买出条件;
五彩K线公式可以有n条语句,描述最多n种不同的情况。
9、交易系统公式需要设定买入和买出条件语句,分别用ENTERLONG,ENITLONG,ENTERSHORT,EXITSHORT作为表达式名称表示多头买入和多头买出、空头买入和空头买出条件,当这些语句返回非0时,表示需要进行相应的操作。
10、指标引用。
在某公式中若需计算另一指标的值,可以引用指标,格式为:
“指标.指标线”(参数),指标与指标线之间用小数点割开。
“MACD.DEA”(26,12,9)表示计算MACD指标的DEA指标线,计算参数用26,12,9。
指标线可以省略,这样表示该指标的最后一条指标线;
参数可以省略,表示使用缺省参数,因此“MACD”就表示MACD指标线的最后一条指数线,并且计算时用缺省参数26,12,9。
11、跨周期引用。
利用本功能可以引用某指标在另外一个分析周期的数值。
跨周期引用只能引用更长周期的数值,例如日线分析时只能引用周线或月线的数值。
跨周期引用格式为:
“指标。
指标线#周期”(参数)和“指标。
指标线##周期”(参数),其中#周期表示所引用的分析周期,其他定义与指标引用相同。
引用周期有可以是MIN1、MIN5、MIN15、MIN30、MIN60、DAY、WEEK、MONTH,分别表示引用1分钟、5分钟、15分钟、30分钟、60分钟、日线、周线或月线的数值。
使用#和##表示不同的对齐方式,#表示引用本周期数值,##表示引用上周期数值。
假如7月1日是星期一,则使用#WEEK表示引用本周数据,使用的是7月1日—7月5日之间的周线数据;
而##WEEK则表示引用上周数据,使用的是6月24日—6月28日间的周线数据。
由此可见,使用#引用本周期数据会发生引用未来数据的问题,它不能保证时间不变性,因此应当尽量避免使用,但使用##时没问题。
12、其他股票数据引用:
引用大盘数据可以用INDEXC等函数,引用其他股票可以写为:
“股票代码$数据”,$数据可以是$OPNE、$HIGH、$LOW、$CLOSE、$VOL、$AMOUNT,分别表示引用开盘价、最高价、最低价、收盘价、成交量和成交金额。
例如“000001$CLOSE”表示000001的收盘价。
3、函数参考
3.1、行情函数
行情函数是最基本的函数,它为我们提供计算所需的数据,而其它多数函数所需的计算数据一般也是由行情函数产生的。
OPNE返回开盘价;
(OPNE+CLOSE)/2返回中介价等。
OPEN
开盘价,取得本周期开盘价,单位:
元。
参数:
无
HIGH
最高价,取得本周期最高价,单位:
参数:
LOW
最低价,取得本周期最低价,单位:
元
AMOUNT
成交额,取得本周期成交额,单位:
ADVANCE
上涨家数,取得本周期上涨家数
限制:
仅对大盘有效,其它股票返回0
DECLINE
下跌家数,取得本周期下跌家数
BUYVOL
主动性买盘成交量,取得本笔成交主动性买盘成交量。
当本笔成交为主动性买盘时,其数值等于成交量,否则为0
限制:
仅在分笔成交分析周期中对个股分析时有效,否则返回0。
BUYVOL
主动性卖盘成交量,取得本笔成交主动性卖盘成交量。
当本笔成交为主动性卖盘时,其数值等于成交量,否则为0
ISBUYORDER
测试是否以主动性买盘成交,取得本笔成交是否为主动性买单。
当本笔成交为主动性买盘时,其数值等于1,否则为0。
无
BIDPRICE(N)
委买价,返回三档买盘价格,N取值范围1—3,分别取得买1、买2和买3的价格。
例:
BIDPRICE
(1)-BIDPRICE
(2)>
0.1表示买一价与买二相差1毛钱以上
BIDVOL(N)
委买量,返回三档买盘量,N取值范围1—3,分别取得买1、买2和买3的委买量。
BIDVOL
(1)+BIDVOL
(2)+BIDVOL(3)表示三档买盘总委买量
ASKPRICE(N)
委卖价,返回三档卖盘价格,N取值范围1—3,分别取得卖1、卖2和卖3的委卖量。
ASKPRICE
(1)-CLOSE表示买一价与成交价之差
ASKVOL(N)
委卖量,返回三档卖盘量,N取值范围1—3,分别取得卖1、卖2和卖3的量。
ASKVOL
(1)>
1000表示卖一量大于1000手
ISUP
测试本周期是否收阳,若本周期收盘价>
开盘价,返回值为1,否则为0
ISEQUAL
测试本周期是否平盘,若本周期收盘价=开盘价,返回值为1,否则为0
ISDOWN
测试本周期是否收阴,若本周期收盘价<
EXTDATA(N)
扩展数据,取得第N号扩展数据,扩展数据是用户自定义的超出基本日线数据以外的数据。
仅在日线分析周期有效
常量,取值范围是1—11。
3.2、日期函数
日用函数返回本周期的时间特性,使用他们可以得到数据的年、月、日、时、分钟特性。
例如:
YEAR>
=1998表示若数据日期在1998年1月1日之后返回1,否则返回0。
DAY
日期,取得本周期的日期,其有效返回值为1—31,分别代表本周期在当月中的日期。
DAY<
=15,表示当天处于上半月
WEEKDAY
星期,取得本周期的日期,其有效返回值为0—6,代表星期日、星期一。
。
星期六。
WEEKDAY=1表示当天是星期一
MONTH
月份,取得本周期的月份,其有效返回值为1—12,分别代表1—12月。
YEAR
年份,取得本周期的年份,其有效返回值1970—2038,分别代表1970年、1971年、。
2038年
1998OR(YEAR=1998ANDMONTH>
=6)表示是在1998年6月以后
HOUR
小时,取得该周期的小时数,其有效返回值0—23,分别代表0点、1点、。
23点。
对于日线及更长的分析周期该函数返回值恒为0。
MINUTE
分钟,取得该周期的分钟数,其有效返回值0—59,分别代表0分、1分、。
59分。
DATE
时间,取得该周期的日期,格式为YYYMMDD,表示以1900年为基期的日期,注意2000年表示100年而不是2000年。
DATE=990103表示当天为1999年1月3日;
DATE=1000505表示2000年5月5日
TIME
时间,表示本周期的时分秒数,格式为HHMMSS,有效范围000000—235959,采用24小时制。
例:
TIME>
93000表示时间大于09:
30:
00
3.3、引用函数
引用函数主要用于对前后相邻数据进行操作。
REF(CLOSE,12)表示12天前的收盘价。
Count(x,n)
统计满足条件的周期数。
该函数统计本周期及以前总共N周期中满足条件X的周期数:
若N=0则表示统计所有数据。
X,变量,表示统计条件,是逻辑值
N,常量或变量,表示统计时间的长度
COUNT(CLOSE>
OPEN,20):
统计20周期内收阳的周期数。
COUNT(CLOSE>
12。
5,0):
统计历史上所有价格高于12。
5元的周期数
SUM(X,N)
求总和。
该函数统计本周期及以前共N周期中X的总和,若N=0则统计所有数据。
X:
变量,表示被统计时间长度。
N:
常量或变量,表示统计时间长度
SUM(VOL,0):
统计上市以来的成效量总和
SUM(VOL,HHVBARS(HIGH,40)):
统计创40日新高以来的成交量总和。
REF(X,N)
引用若干周期前的数据,该函数返回N周期前的X值。
变量,表示需要引用的数据
常量或变量,表示向前引用的周期数,必须大于等于1
REF(CLOSE,1):
表示上一周期的收盘价,在日线上就是昨天收盘价。
REF(LOW,LLVBARS(LOW,40)):
取得创40天新低的最低价格。
BSCKSET(X,N)
向前赋值,如果X条件成立,则将当前周期及以前共N个周期的返回值设为1。
变量,表示赋值条件,是逻辑值,
变量或常量,表示赋值天数,不能为负数。
BACKSET(CLOSE>OPEN,2)表示若收阳则本周期及前一周期的返回值为1。
本函数是少数几个不满足时间不变性的函数之一,它主要在五彩K线中用于设定需要彩色的周期数,一般情况下请不要随便使用。
HHV(X,N)
历史最大值,求本周期及以前共N周期内X的最大值,N=O则求全部数据的最大值。
变量,需要求最大值的数据
常量或变量,统计时间长度,必须大于等于1。
HHV(HIGH,30):
求30周期内的最高价。
LLV(X,N)
求历史最小值,求本周期及以前共N周期内X的最小值,N=0则求全部数据的最小值,
变量,需要求最小值的数据
常量或变量,统计时间长度,必须大于毛等于1。
LLV(LOW,0):
求上市以来的最低价。
MA(X,N)
简单移动平均,求X的N周期简单移动平均值。
算法:
(X0+X2+。
XN-1)/n,其中XI表示X表示X从本周期向前数的第I个数据。
变量,待统计数据
N:
常量,计算时间长度
MA(CLOSE,10)表示求10日均价。
以下是几种指数平滑移动平均,所谓指数平滑就是一种迭代算法,其原理均为:
Y=Y,*(1-a)+x*a
其中X表示待求平均数据,Y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公式 系统 技术 白皮书