RonnieZ 发表于 2012-6-27 10:59:45

程序化每日一帖——2012-06-27(序列变量)

本帖最后由 RonnieZ 于 2012-6-27 11:18 编辑

序列变量      序列变量是程序化交易编程语言与一般编程语言(如:C++)的一个显著差别,他是为了简化金融统计运算(如:计算移动平均)而设计实现的。
      序列变量(如:NumericSeries)拥有数据回溯的功能,它可以用中括号的方式访问以前K线的数据,如:High表示本周期的最高价,High就表示上一根K线的最高价。
为了让序列变量拥有回溯功能,我们在后台做了这样的工作:
1.用户代码运行之前,将序列变量从一个存储空间里取出来。并让序列变量的初始值等于上一周期的值。
2.用户代码运行结束后,将序列变量保存到存储空间。
3.下次运行时,如果发现是一根新生成的K线,则将序列变量的长度自动增加1。新增加的元素值等于上一周期的值。
由此可见,序列变量是一个长度自动变化的数组,他的长度始终和图表中K线的数量是一致的。截图是使用序列变量求指数平均的源代码。


采用序列变量编写的公式、函数,代码非常简洁直观,而且运行效率很高。但快速易用的同时还必须遵循一些使用规则,特别是在函数中定义的序列变量更要遵循这些规则,否则有可能造成多个序列变量在存取时发生混乱,具体规则如下:
尽可能保证每一周期的序列函数都得到执行。 尽量不要在If,Else等语句中使用序列函数。 可以在循环语句中使用序列函数,但必须保证每个周期中序列函数的调用次数是相同的 。

初级炒单 发表于 2012-6-27 11:06:14

排版有些乱啊

RonnieZ 发表于 2012-6-27 11:16:25

初级炒单 发表于 2012-6-27 11:06 static/image/common/back.gif
排版有些乱啊

不好意思,我也发现了,已更新

F_Phoebe 发表于 2013-5-15 11:08:30

楼主继续啊~~~写得挺好的!

zhangjian 发表于 2013-6-16 13:26:50

实际上就是数列。
页: [1]
查看完整版本: 程序化每日一帖——2012-06-27(序列变量)