ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:31.72KB ,
资源ID:10585714      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10585714.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(大学课件指南针指标设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大学课件指南针指标设计.docx

1、大学课件指南针指标设计指南针指标设计(一) 1. 指南针自定义指标语法 指南针自定义指标平台以高级程序语言语法为模板,定义了功能强大的自定义指标语法,支持高级语言的所有主要的程序结构顺序、循环和条件跳转。 指南针自定义指标语法以语句为单位,每个语句都需要以“;”作结尾。在自定义指标的语法中,有三种语句:赋值语句、条件跳转语句和循环语句。 1.1. 指标文件结构 指南针指标文件(zbt或者zbu)可以直接用文本编辑器打开。但是不提倡直接在文本编辑器中改写指标文件,因为这样做容易发生语法错误,而且无法使用指标平台编辑环境的提示功能。 指标文件的结构如下(括号中是注释说明): _ZBT (指南针指标

2、文件起始标志) _NAME (指标文件名称,不能为空) _COMM (指标文件注释,可以为空) _PAR (指标的参数列表,如果有多个参数,用逗号“,”分割) _VAR (指标的局部变量列表,如果有多个,用逗号“,”分割) _ZB (指标的参数指标列表,即需要用到的指标列表) _RES (指标文件的结果指标列表,即本文件能计算的指标列表) _DEF (指标的默认值,如果在计算中发生错误,则指标值填为默认值) _CODE (指标文件代码段起始标志) (代码段) _END (指标文件结束标志) 1.2. 运算符 指南针自定义指标中支持以下运算符(按优先级从高到低排列): l “(”、“)” 左右括

3、号 l “*”、“/” 乘、除 l “+”、“-” 加、减 l “”、“=”、“=” 大于、小于、大于或等于、小于或等于 l “=” 、“” 等于、不等于 l “&” 与,逻辑运算符,仅当两 l “|” 或 l “=” 赋值,注意赋值号和等于号是一样的 为了兼容中文输入的使用习惯,下列运算符“()*/+-=”支持中文全角输入。 1.3. 赋值语句 赋值语句的语法非常简单,没有关键字。赋值语句的型式有: a = b + c; a = 系统函数(); 系统函数(); 1.4. 条件跳转语句 条件跳转语句有4个关键字:IF (表示如果)、THEN (表示则)、ELSE (表示否则)、ENDIF (表

4、示条件语句结束)。完整的条件跳转语句的形式是: IF 条件 THEN 语句1; 语句2; ELSE 语句1; 语句2; ENDIF; “条件”的形式是型如 “a b”、“a b) & ( b c)”、“(a = b) | (b OPEN、CYF13 CYF34等;N是搜索的范围。如果当前天即满足条件X,返回0,在搜索范围内条件X没有满足则返回N 举例:BLAST( CYF13 CYF34, 10 ),表示求当前天和过去9天中最近一次CYF13 CYF34的日期偏移。 COST( N ) 取得成本分布情况。N是一个表示百分比的表达式,如20、涨跌幅等。合法的N必须是0100间的数,如果N小于0,

5、则视为0,如果N大于100,则视为100。 举例:COST(20),表示20获利盘的价格是多少,即有20的流通盘成本在该价格以下(获利盘),其余80的流通盘成本在该价格以上(套牢盘)。 COSTD( X, N ) 取得价格分布情况。X是一个表示价格的表达式,如15、CLOSE、HIGH等;N是一个表示百分比的表达式,表示相对价格X的偏移。合法的N值应该是一个-100到100的数值,如果N OPEN、CYF13 CYF34等;N是搜索的范围。 举例:COUNT( CLOSE OPEN, 10 ),表示10日内K线收阳的天数。 DMA( Z, X, A ) 求X的以A为平滑因子的指数移动平均。其中

6、Z是必须是结果返回指标,X是一个不为常数的表达式,A是平滑因子,其合理范围应该在01之间,如果A小于0则视为0,大于1则视为1。DMA的具体算法: Z = (1-A) Z1 + X A 。 Z1表示前一天指标Z的数值。 举例:DMA( Z, CLOSE + OPEN, 0.2 ),表示求以0.2为平滑因子的开盘价与收盘价之和的指数移动平均值,结果存放在指标Z中。 EMA( Z, X, N ) 求X的N日指数平滑移动平均。N是一个非负整数,如果N小于0,则视为0。EMA的具体算法:Z = (N-1) Z1+ 2X/(N+2) 举例:EMA( Z, CYF131, 10 ),表示对当前天的前一天的

7、CYF13指标作10日指数平滑移动平均,结果存放在指标Z中。 HHV( X, N ) 求N周期内X的最大值。X应该是一个不为常数的表达式,N是一个非负表达式,表示周期范围,如果N为0表示从第一个有效周期(上市第一天)开始计算。 举例:HHV( (OPEN + HIGHT + LOW + CLOSE) / 4, 10 ),表示求10天内的最高均价。 HHVB( X, N ) 求N周期内X值最大的周期到当前周期的日期偏移。X和N的含义同HHV(X,N)。如果X的最大值出现在当前周期,函数返回0。 举例:HHVB( (OPEN + HIGHT + LOW + CLOSE) / 4, 10 ),表示求

8、10天内的最高均价出现日期到当前天的偏移值。 KLINEINDEX 求当前周期是K线链上的第一个节点。如果当前是上市第一个周期,函数返回0;第二个周期,函数返回1; LFCAST( X, N ) 求X的N周期线形回归值。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作线性拟合,如果N为0表示从第一个有效周期(上市第一天)开始拟合。 举例:LFCAST( CYF34, 0 ),表示对股票上市以来指标CYF34的线性拟合值。 LLV( X, N ) 求N周期内X的最小值。X应该是一个不为常数的表达式,N是一个非负表达式,表示周期范围,如果N为0表示从第一个有效周期(上市第一天)

9、开始计算。 举例:LLV( (OPEN + HIGHT + LOW + CLOSE) / 4, 20 ),表示求20天内的最低均价。 LLVB( X, N ) 求N周期内X值最小的周期到当前周期的日期偏移。X和N的含义同LLV(X,N)。如果X的最小值出现在当前周期,函数返回0。 举例:LLVB( (OPEN + HIGHT + LOW + CLOSE) / 4, 20 ),表示求20天内的最低均价出现日期到当前天的偏移值 LSLOPE( X, N ) 求X的N周期线形回归线的斜率。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作线性拟合,如果N为0表示从第一个有效周期(上

10、市第一天)开始拟合。 举例:LSLOPE( CYF13, 0 ),表示对股票上市以来指标CYF13的数值作线性拟合后的直线斜率。 MA( X, N ) 求X的N周期简单平均值。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作平均,如果N为0表示从第一个有效周期(上市第一天)开始计算。MA的具体算法是: 举例:MA( CLOSE1 + OPEN, 20 ),表示20个周期内,每日的前收加上今开的平均值。 SMA( Z, X, N, M ) 求X的N日指数移动平均,平滑因子a = M / N。其中Z是必须是结果返回指标,X是一个不为常数的表达式,M的数值应该小于N的数值。SMA

11、的具体算法是: 举例:SMA( Z, CYF13, 10, 5 ),表示对CYF13作平滑因子为5/10=0.5的指数移动平均。 SUM( X, N ) 求X的N周期简单累加值。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作简单累加,如果N为0表示从第一个有效周期(上市第一天)开始计算。 举例:SUM( CLOSE1 + OPEN, 20 ),表示20个周期内,每日的前收加上今开的简单累加值。 SUMD( X, N, D ) 求X的N周期衰减累加值。X应该是一个不为常数的表达式;N是一个非负表达式,表示在多少周期内作简单累加,如果N为0表示从第一个有效周期(上市第一天)开

12、始计算;D是相对日期偏移的衰减系数,D应该小于N。 举例:SUMD( CLOSE - OPEN, 5, 1 ),表示5个周期内的当日涨的衰减累加,即 (CLOSE - OPEN) + (CLOSE1 - OPEN1) * 4 / 5 + (CLOSE2 - OPEN2) * 3 / 5 + (CLOSE3 - OPEN3) * 2 / 5 + (CLOSE4 - OPEN4) /5 3.2. 大盘函数 S0( X ) 引用指南针0号指数的数值,X是一个不为常数的表达式。 举例:S0( CLOSE1 + OPEN ),表示求0号指数当前周期的前收加今开的数值。 S0A01( X ) 引用指南针0

13、A01指数的数值,X是一个不为常数的表达式。 举例:S0A01( 成交量 ),表示求0A01指数当前周期的成交量的数值。 S0AMV( X ) 引用指南针0AMV指数的数值,X是一个不为常数的表达式。 S0DMV( X ) 引用指南针0DMV指数的数值,X是一个不为常数的表达式 3.3. 数学函数 ABS( X ) 取绝对值,ABS(X) = |X|。 DERIV( Z, X ) 求X的导数,结果存放在Z中。Z应该是结果返回指标,X是一个不为常数的表达式。 举例:DERIV( Z, CLOSE1 ),表示求前收的导数。 EXP( X ) 求e的X次方,EXP(X)=ex 。 INTEGER(

14、X ) X向下取整, 。 LN( X ) 求X的自然对数。 LOG( X ) 求X的以10为底的对数。 MAX( A, B ) 求A、B中的较大值。 MIN( A, B ) 求A、B中的较小值。 MOD( X, N ) 求X模N的值, POW( X, N ) 求X的N次方, SGN( X ) 取X的符号,如果X是正数,返回1;如果X是负数返回-1;如果X是0,返回0。 SQRT( X ) 取X的平方根 3.4. 统计函数 AVEDEV( X, N ) 求X的N日平均绝对差。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作统计。 举例AVEDEV( CLOSE OPEN, 1

15、0 ),表示统计10日内的当日涨跌的平均绝对差。 DEVSQ( X, N ) 求X的N日偏差均方和。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作统计。 举例DEVSQ( CLOSE OPEN, 10 ),表示统计10日内的当日涨跌的偏差均方和。 STD( X, N ) 求X的N日估算标准差。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作统计。 举例STD( CLOSE OPEN, 10 ),表示统计10日内的当日涨跌的估算标准差。 STDP( X, N ) 求X的N日总体标准差。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作统

16、计。 举例STDP( CLOSE OPEN, 10 ),表示统计10日内的当日涨跌的估算标准差。 VAR( X, N ) 求X的N日估算样本方差。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作统计。 举例VAR( CLOSE OPEN, 10 ),表示统计10日内的当日涨跌的估算样本方差。 VARP( X, N ) 求X的N日总体样本方差。X应该是一个不为常数的表达式,N是一个非负表达式,表示在多少周期内作统计。 举例VARP( CLOSE OPEN, 10 ),表示统计10日内的当日涨跌的总体样本方差。 3.5. 三角函数 ACOS( X ) 求X的反余弦值。X取值应该

17、在01范围内,如果X小于0,则视为0;如果X大于1,则视为1。返回值在0 之间。 ASIN( X ) 求X的反正弦值。X取值应该在01范围内,如果X小于0,则视为0;如果X大于1,则视为1。返回值在 之间。 ATAN( X ) 求X的反正切值。返回值在0 之间。 COS( X ) 求X的余弦值,X的单位是弧度,返回值在-11之间。 SIN( X ) 求X的正弦值,X的单位是弧度,返回值在-11之间。 TAN( X ) 求X的正切值,X的单位是弧度。 指南针指标设计(四) 4. 指标点评 4.1. AR、BR、CR指标 我们通过介绍AR、BR、CR指标的实现代码,进一步说明赋值、条件跳转和循环三

18、种基本语句的应用。指标的代码如下: 指标名称:ABCR 指标注释:(空) 默认值:0 输入参数:M 局部变量:V1, V2, V3, V4, V5, V6, AV, I 参数指标:开盘价, 最高价, 最低价, 收盘价 结果指标:AR, BR, CR 指标文本: T1 = 0; T2 = 0; T3 = 0; T4 = 0; T5 = 0; T6 = 0; I = 0; LOOPBEGIN IF( I = M ) THEN BREAK; ENDIF; T1 = T1 + HIGHI - OPENI; T2 = T2 + OPENI - LOWI; IF( HIGHI CLOSEI+1 ) THE

19、N T3 = T3 + HIGHI - CLOSEI+1; ENDIF; IF( OPENI CLOSEI+1 ) THEN T4 = T4 + OPENI - CLOSEI+1; ENDIF; AV = (HIGHI+1 + LOWI+1) / 2; IF( HIGHI AV ) THEN T5 = T5 + HIGHI - AV; ENDIF; IF( AV LOWI ) THEN T6 = T6 + AV - LOWI; ENDIF; I = I + 1; LOOP; AR = T1 / T2; BR = T3 / T4; CR = T5 / T6; 下面详细分析指标的代码段,文本的一开

20、始是7条赋值语句,分别把7个局部初始化为0; T1 = 0; /赋值语句 T2 = 0; T3 = 0; T4 = 0; T5 = 0; T6 = 0; I = 0; 接下来是一个循环体: LOOPBEGIN /循环开始,I是循环控制变量 IF( I = M ) /条件跳转语句,控制循环结束 THEN BREAK; /结束循环的分支 ENDIF; I = I + 1; /赋值语句,循环控制变量赋值 LOOP; /循环结束 联系前面的赋值语句I=0 、循环中的赋值语句I=I+1以及控制循环的条件跳转语句可以发现,这是一个参数M次的循环,例如如果参数M为10时,这个循环需要执行10次。 在循环体中

21、有4条赋值语句和5条条件判断语句我们举例说明, T1 = T1 + HIGHI - OPENI; 意思是把当前天的前面第I天的最高价和开盘价的差值加到局部变量T1中; T2 = T2 + OPENI - LOWI; 是说把当前天往前第I天的开盘价和最低价的差值加到局部变量T2中; IF( HIGHI CLOSEI+1 ) THEN T3 = T3 + HIGHI - CLOSEI+1; ENDIF; 如果当前天前面第I天的最高价大于第I+1天的收盘价,则把当前天往前第I天的最高价和第I+1天的收盘价的差值加到局部变量T3中; AV = (HIGHI+1 + LOWI+1) / 2; 是说把前天

22、往前第I+1天的最高价和最低价的平均值赋给局部变量AV; 最后是三句赋值语句,分别给三个结果返回指标赋值。 AR = T1 / T2; BR = T3 / T4; CR = T5 / T6; 4.2. SRDM(动向速比率)指标 SRDM(动向速比率)指标是一个经典指标,我们通过这个指标的实现代码,进一步说明指南针指标平台中函数的应用。 指标名称:SRDM 指标注释:动向速比率 默认值:1.000 输入参数:N 局部变量: 参数指标:最高价, 最低价 结果指标:SRDM_DMZ, SRDM_DMF, SRDM_SRDM, SRDM_ASRDM, SRDM_ADMZ, SRDM_ADMF 指标文

23、本: IF( (最高价 + 最低价) = (最高价1+最低价1) ) THEN SRDM_DMF = 0; ELSE SRDM_DMF = MAX( ABS(最高价 - 最高价1), ABS(最低价 - 最低价1) ); ENDIF; SRDM_ADMZ = MA( SRDM_DMZ, 10 ); SRDM_ADMF = MA( SRDM_DMF, 10 ); IF( SRDM_ADMZ SRDM_ADMF ) THEN SRDM_SRDM = (SRDM_ADMZ - SRDM_ADMF) / SRDM_ADMZ; ELSE IF( SRDM_ADMZ = SRDM_ADMF ) THEN SRDM_SRDM = 0; ELSE SRDM_SRDM = (SRDM_ADMZ - SRDM_ADMF) / SRD

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

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