编写公式
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线 下一页 语言规范: 在自定义公式里面的各种符号(如,“;” )只能用半角不能用全角。 关键字 常数 分隔符 标识符 if else while break continue return (无大小写之分) 浮点数、整数、字符串 “ ” ? ? ( ) ; { } 注释/* */ 由字母和数字组成,由字母开头,不分大小写 * / 运算符(优先级从+ - 高到低排列,同级== != > < >= <= 同行) And Or 赋值 a = b 语句 条件 IF (a==b) c=d; 循环 while a==b c=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、条件执行语句中\语句2;\部分是选择项, 可以缺省, 此时条件语句变成: IF(逻辑表达式) 语句1;
表示若逻辑表达式的值为非0则执行语句1 , 否则跳过语句1继续执行。
2、如果语句1或语句2有多于一条语句要执行时, 必须使用\和\把这些语句包括在其中, 此时条件语句形式为:
IF(逻辑表达式) { 语句体1; } ELSE { 语句体2; }
这里语句体指多个语句,每个语句都必须以“;”结尾。
3. 条件语句可以嵌套, 这种情况经常碰到, 但条件嵌套语句容易出错, 其原因主要是不知道哪个IF对应哪个ELSE。