将技术分析进行到底
提供专业的程序化交易解决方案

算法模型之数据区功能介绍

本文介绍文华财经赢智8.2程序化交易平台的算法交易模型功能中数据区函数的使用方法及注意事项。


 

我们知道,算法模型不像趋势模型那样用K线图表来存储历史数据。在算法模型中,所有需要的数据都需要保存到自定义变量中。

为了解决对历史数据的需求,算法模型设计了数据区的概念。定义数据区之后,后台可以自动保存最近N笔、最近N秒的历史数据,以便随时调用。

 


 

要弄清楚什么是数据区,只需要看明白这张表:

2003.1

TheData1是这张表的名称,也就是数据区变量的名称。在这张表中,纵向每一列代表一笔TICK行情,横向每一行代表一笔TICK行情中所有的数据。

在算法模型中,使用VAR_TICKDATA声明一个数据区变量,就意味着在内存中申请了一个二维的存储空间。运行时,后台会自动将相关数据存储到这个空间对应位置。

要从这张表中取数据,只需要定位数据是在哪一列、哪一行。

例如:TheData1[2].Ask1表示第三列、Ask1行的数据。

 


 

声明了数据区变量之后,还需要在主函数中对该变量进行赋值。通过赋值,确定数据区的类型。

目前主要有两种类型:最后N秒内所有的TICK数据组成的数据区,和最后N笔TICK数据组成的数据区。

例如:

TheData1 = Def_TickData(“IF1603”,0,10);//最后10秒内所有的TICK数据组成的数据区
TheData2 = Def_TickData(“IF1603”,1,10);//最后10笔TICK数据组成的数据区

 


 

再看一个具体应用:

2003.2

运行结果:

2003.3

这个模型分别定义了两个数据区,然后从数据区取中将所有的卖①价格输出出来,之后退出运行。

 


 

需要注意以下几点问题:

● TheData1.State和TheData2.State分别表示这两个数据取的状态。

从加载运行,到数据区第一次存满,状态变为1。只有状态变为1之后,才能使用该数据区。这也是为什么日志中先输出了TheData2数据区,后输出 TheData1数据区。

 

● TheData1.Num和TheData2.Num表示数据中存了多少组行情,也就是对应上面的表格有多少列。

需要特别注意的是,列序号是从0开始的,所以最后一组的需要是TheData1.Num-1和TheData2.Num-1

 

● 从数据区中取数据,只需要定位哪一列、哪一行。

例如:TheData1[0].Ask1和TheData2[0].Ask1

 

 

 

赞(0)
未经允许不得转载:文华程序化 » 算法模型之数据区功能介绍
分享到: (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

横冲直撞 一直到最远方