详解未定义标识符 巧转大智慧公式

互联网 | 编辑: 吴宏 2007-07-01 00:30:00转载-投稿 返回原文

巧转大智慧公式

如果你把下载来的其他软件中的公式拷贝到大智慧里检测,遇到最多的错误是“未定义标识符”,它是说大智慧不认识这个“字”,通常是函数名等。如果公式在原软件中能正常运行,大部分情况是可改的 --- 把这些不认识的函数换成大智慧认识的、实现相同或类似功能的函数就行了。但也有根本不能改的情况 --- 大智慧没有实现相同或类似功能的替代函数可用。

一、公式转换方法

不懂公式的朋友要想转换公式,首先要对公式有一个大面上的了解,例如:

* 一个公式是由一或多个语句组成的。可能还有参数定义部分。

* 每条语句的最后必须是一个分号(最后一条可无分号)。

* 语句中的不同元素之间用逗号分隔。

* 在花括弧{}中的内容是注释,对公式本身没任何影响,就象根本没有它一样。

* 公式中的冒号、逗号、等号、圆括号、分号等必须是英文状态下键入的标点符号。  

当检测出“未定义标识符”错时,你一单击〈确定〉,光标就指到了那个出错的标识符上了。所以,不要慌,看看你能不能把它替换成大智慧中等价或类似的标识符。例如公式中有以下语句:

MA5: ma(close,5), ColorMAGENTA;

报错后,光标停在ColorMAGENTA字上,因为大智慧不认识它。但你知道这是指某种颜色。于是,把它换成大智慧认识的任何一种颜色就行,例如换成ColorFF00FF。这个语句就过了。如此继续,你一个一个地改,直到检测通过。

下文将最经常遇到、又最容易修改的“未定义标识符”列出来,也许你知道这些就能把一个比较简单的公式改好了。实在通不过,再去〈求助区〉发帖请高手帮你。不过我还是劝你学习一下怎样编公式,即便不精通,也要知道个大概,起码能改改下载来的公式。就象我似的,直到今天本人对大智慧公式也仅仅是初步了解,对其他行情软件的公式更是从未碰过,但也能凑合修修改改了。

二、“未定义标识符”:

(1)  input:P1(60,1,250),P2(11,1,200);  参数描述
         
 改: 把本语句用花括弧{}括起来。再把这些写在参数定义中。

例如P2(11,1,200)表示参数名是P2,默认值是11,最小值1,最大值200。

详解未定义标识符

(2)  颜色

在大智慧里,颜色有两种表示方式:

1)使用英文字,如

COLORWHITE(白) COLORRED(红) COLORGREEN(绿) COLORBLUE(蓝)

但以下这些在大智慧里则属于“未定义标识符”:

COLORBLACK黑色 COLORBROWN 棕色    COLORMAGENTA晶红                

COLORCYAN青色   COLORGRAY 灰色

你必须删掉或改成大智慧认识的颜色。              

2)使用颜色代码,如Color000000(黑), ColorFFFFFF(白)等。 一般格式为:           
ColorXXXXXX                    

其中XXXXXXX是6位16进制数字,每一位可以是:

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,或 F

你可以查颜色代码表。随便写也行,然后看显示的颜色,不满意再改。

我看到有的公式中有“ColorFF”这样的省写,即只写了2位或4位数字,你必须把它补全成6位数字:改成“ColorFF0000”或 “Color0000FF”,是坐补0或右补0,取决于原软件系统的规定。对于改公式来说,反正没关系,用什么颜色不过是自己的喜好。

3)有的公式中还有一种RGB颜色表示法,如ColorRGB(255,255,0),它等同于ColorFFFF00,一般地,你把COLORRGB(x,y,z)中的3个参数换成3个16进制数就行了:ColorXXYYZZ。如果你不懂16进制,就按2)随便改成一种颜色吧。

(3)DRAWGBK(x,COLOR1,COLOR2,Dir);

原意是画渐变背景色,大智慧不支持此函数。虽然在大智慧里能用较多的语句画出颜色渐变的背景,但不画也罢。你把该语句用{}括起来就是。

如果你在屏幕上显示多个副图,每个公式又很复杂的话,显示其实是挺慢的。当你用PageUp/PagrDown键换股时就能感觉到这种慢。所以除非追求美观,公式还是能简单就简单点好。

(4)PartLine(X,Y),ColorXXXXXX; 几条PartLine语句一起,用来画变色的曲线。

把此语句改成:    

StickLine(X,Y-d,Y+d,k,0), ColorXXXXXX;

StickLine画出的线是由一系列小矩形组成的。

其中取d=0.005或d=0.01等,d越大画出的矩形越厚;

取k=1—8,k越大矩形越宽,k<=5就变成虚线了。

(5)Vertline(X);  当X非0时画竖线。

改成StickLine(X, -m, +m,k,0);   

其中m取足够大的数即可,k是线宽:1 -- 8。   

(6)ALIGNi (i=0--5)

删去就行了。别忘了,把ALIGNi前面的逗号也要删去。

(7)公式中的参数

如果公式带参数,你忘了在参数表中定义,那出现在公式中的每个参数都是“未定义标识符”。

返回原文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑