本人一个计算机专业毕业,曾有5+年的java编程经验。但是在理解TBL语言的时候,还是有些地方很费解啊!
我列出几个费解的点,还望该语言的设计同行指点迷津:
(1)关于序列变量这个类型。文档上只是简单做了介绍。
当变量a是序列类型时,相当于每个bar上都有一个独立的a。
当参数a是序列类型时,我就不太理解了。难道是 每次调用时,都会独立的存一份a?
(2)Average函数和Summation函数
Numeric Average(Numeric Price,Numeric Length)
Numeric Summation(Series<Numeric> Price,Numeric Length)
调用求和时,给的price参数,并不是序列类型啊! 只给了一个数值,怎么求和啊。 一头雾水。
是不是还是因为对序列类型的理解问题,才导致的无法继续后面的内容。
1. “当参数a是序列类型时,我就不太理解了。难道是 每次调用时,都会独立的存一份a?”
--------------
每一根K都有一份a,这个理解没问题,每次调用的时候 找到这个回溯K的a即可,不需要再存
2. “调用求和时,给的price参数,并不是序列类型啊! 只给了一个数值,怎么求和啊。”
--------------
Numeric Average(Numeric Price,Numeric Length) // 对于这个函数来说,它只需要入参 数值型即可
Numeric Summation(Series<Numeric> Price,Numeric Length) // 对于这个函数来说就不一样了,可以理解为这个函数在循环调用average,你注意看这个函数的入参是序列型的
Average函数的具体实现也是调用Summation 来完成
请看:
Begin
AvgValue = Summation(Price, Length) / Length;
Return AvgValue;
End
如果调用Average的时候给的不是序列变量,Summation 的参数要求是序列变量,那它调用Summation 不就有问题了吗?