|
本帖最后由 RonnieZ 于 2012-6-27 11:18 编辑
序列变量 序列变量是程序化交易编程语言与一般编程语言(如:C++)的一个显著差别,他是为了简化金融统计运算(如:计算移动平均)而设计实现的。
序列变量(如:NumericSeries)拥有数据回溯的功能,它可以用中括号的方式访问以前K线的数据,如:High表示本周期的最高价,High[1]就表示上一根K线的最高价。
为了让序列变量拥有回溯功能,我们在后台做了这样的工作:
1.用户代码运行之前,将序列变量从一个存储空间里取出来。并让序列变量的初始值等于上一周期的值。
2.用户代码运行结束后,将序列变量保存到存储空间。
3.下次运行时,如果发现是一根新生成的K线,则将序列变量的长度自动增加1。新增加的元素值等于上一周期的值。
由此可见,序列变量是一个长度自动变化的数组,他的长度始终和图表中K线的数量是一致的。截图是使用序列变量求指数平均的源代码。
采用序列变量编写的公式、函数,代码非常简洁直观,而且运行效率很高。但快速易用的同时还必须遵循一些使用规则,特别是在函数中定义的序列变量更要遵循这些规则,否则有可能造成多个序列变量在存取时发生混乱,具体规则如下:
尽可能保证每一周期的序列函数都得到执行。 尽量不要在If,Else等语句中使用序列函数。 可以在循环语句中使用序列函数,但必须保证每个周期中序列函数的调用次数是相同的 。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册入住
x
|