开拓者期货期权程序化系统交易论坛

标题: TB的公式应用在代码编写出错的时候不抛异常的? [打印本页]

作者: 开心    时间: 2013-5-9 11:05:41     标题: TB的公式应用在代码编写出错的时候不抛异常的?

Vars
        Numeric tt;
Begin


tt=Correlation(CloseD,CloseD[20],20);

Commentary("20日相关系数值"+Text(tt));

End
我有这么一个程序,Correlation的函数要是数值型序列值,而CloseD,CloseD[20]明显是错误的方式,但是直接就编译过了,而且还计算出来的值tt永远是1.问下,TB这种情况都不报错的么,至少也要抛异常吧!看了半天都不知道问题出在哪里!
作者: 小米    时间: 2013-5-9 11:17:19

closeD()是一个用户函数,使用中后面要带括号,括号里写上指定的天数。
取当天的是用closeD(0),如果不带括号及参数,默认的是使用2天前的即:closeD==closeD(2)..
那closeD[20]是指在当前回溯20个bar上取到的是closeD(2)的值。
建议按正确的语法规则来使用此函数,方可达到需求。
作者: 开心    时间: 2013-5-9 13:13:45

小米 发表于 2013-5-9 11:17
closeD()是一个用户函数,使用中后面要带括号,括号里写上指定的天数。
取当天的是用closeD(0),如果不带括 ...

你好!请问下“closeD[20]是指在当前回溯20个bar上取到的是closeD(2)的值”这句话什么意思啊!
作者: 小米    时间: 2013-5-9 13:47:20

开心 发表于 2013-5-9 13:13
你好!请问下“closeD[20]是指在当前回溯20个bar上取到的是closeD(2)的值”这句话什么意思啊! ...

反正是一个不正确的写法,不用理会。使用正确方式来使用此函数就行了。
作者: kyler    时间: 2013-5-10 13:08:25

开心 发表于 2013-5-9 13:13
你好!请问下“closeD[20]是指在当前回溯20个bar上取到的是closeD(2)的值”这句话什么意思啊! ...

注意区分[ ]和()
作者: 开心    时间: 2013-5-11 09:37:53

kyler 发表于 2013-5-10 13:08
注意区分[ ]和()

我知道closed是用小括号的,但是我用closed[20]在测试的时候有数据,所以我想问下,closed[20]表示什么!如果是错误的表达话,系统为什么编译通过!
作者: kyler    时间: 2013-5-12 12:25:12

开心 发表于 2013-5-11 09:37
我知道closed是用小括号的,但是我用closed[20]在测试的时候有数据,所以我想问下,closed[20]表示什么! ...

当前k线往前第20根k线的closed(2)值,表达没有错误,只是可能不是你想要值。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2