跨周期应用数据问题 [MC]
-
MC用户求助:
调用子图需要注意两个地方:定义子图变量、调用子图数据和存储子图数据,下面假设图表只有主图data1和子图data2的情况,多子图原理是一样的。
一、定义子图变量,包括一般变量和数组变量:
var: var_name1(0, data1), var_name2(0, data2);
array: arr_name1[2,3](0, data1), arr_name2[3,4](0, data2);
以上定义了主图一般变量var_name1和子图一般变量var_name2(见关键字variable的用法),定义了主图数组arr_name1和子图数组arr_name2(见关键字array的用法)
二、调用子图数据并且同时存储到相应的变量,包括直接调用和函数调用:
//直接调用子图的收盘价
var_name1=close data1;
var_name2=close data2;
//通过函数调用子图数据
var_name1=summation(close,3) data1;
var_name2=summation(close,4) data2;
三、注意事项
1、 信号是默认基于主图进行运算的,所以默认情况下,变量都是主图的变量,默认情况下调用的数据都是主图的数据,也就是后面不加data1的都是基于主图的变量和调用主图的数据;
2、 指标可以选择基于主图资料计算还是基于子图资料计算,当指标计算资料基于data2(指标属性中有相关选项)时,变量默认是data2的变量,调用的数据默认下也是调用data2的数据;其它情况,以此类推。
3、 基于data2的变量,当代码是基于data2进行计算时,data2的变量才会更新,其它情况下data2的变量只是计算,所以调用data2的数据不一定要存储在data2的变量上;关于变量更新和计算的区别可以参考帖子http://forums.icetech.com.cn/for ... &extra=page%3D1 -
MC回复讨论一:
调用子图需要注意两个地方:定义子图变量、调用子图数据和存储子图数据,下面假设图表只有主图data1和子图data2的情况,多子图原理是一样的。
一、定义子图变量,包括一般变量和数组变量:
var: var_name1(0, data1), var_name2(0, data2);
array: arr_name1[2,3](0, data1), arr_name2[3,4](0, data2);
以上定义了主图一般变量var_name1和子图一般变量var_name2(见关键字variable的用法),定义了主图数组arr_name1和子图数组arr_name2(见关键字array的用法)
二、调用子图数据并且同时存储到相应的变量,包括直接调用和函数调用:
//直接调用子图的收盘价
var_name1=close data1;
var_name2=close data2;
//通过函数调用子图数据
var_name1=summation(close,3) data1;
var_name2=summation(close,4) data2;
三、注意事项
1、 信号是默认基于主图进行运算的,所以默认情况下,变量都是主图的变量,默认情况下调用的数据都是主图的数据,也就是后面不加data1的都是基于主图的变量和调用主图的数据;
2、 指标可以选择基于主图资料计算还是基于子图资料计算,当指标计算资料基于data2(指标属性中有相关选项)时,变量默认是data2的变量,调用的数据默认下也是调用data2的数据;其它情况,以此类推。
3、 基于data2的变量,当代码是基于data2进行计算时,data2的变量才会更新,其它情况下data2的变量只是计算,所以调用data2的数据不一定要存储在data2的变量上;关于变量更新和计算的区别可以参考帖子http://forums.icetech.com.cn/for ... &extra=page%3D1 -
MC回复讨论二:
想问下老师,注意事项3中调用data2的数据不一定要存储在data2的变量上,这句话我能不能这样理解:如果1分周期主图data1,5分钟周期子图data2,我取变量data2的收盘价,在5分钟BAR与BAR之间的空隙是重新计算,5分BAR与5分BAR是更新,那我在空隙间取data2的数据,然后用var_name2(0, data2)来保存,这里的这个var_name2(0, data2)实际上指定了data2保存数据的位置,但是这部分空隙间的数据,实际上还是存到data1中的,因为5分BAR这里没有形成,这样就如老师所说调用data2的数据不一定要存储在data2的变量上,是这样么?
还请老师回答下var_name2(0, data2)中加data2的意思? -
MC回复讨论三:
一、如果您在5分钟bar与5分钟bar收盘时间点之间取data2的数据,其实取的是最近的5分钟bar的数据(也就是图表左边最近的历史5分钟bar的数据),这个数据,您如果存储在var_name2上,var_name2并不会更新(也就是您下一次调用的时候,其实取的数据不是这一次计算的数据结果),您可以将这个数据存储在var_name1上(因为这个会更新,下一次可以调用这一次计算的数据结果)。
二、var_name2(0, data2)中的data2的意思是,这个变量是定义为data2的变量,当代码基于data2的bar计算时,这个变量才会更新,否则中是计算。
三、简单的说,变量的更新是指它的计算结果可以被以后的代码计算调用,而变量的计算是指它的计算结果可以被当次代码计算调用。 -
MC回复讨论四:
一、如果您在5分钟bar与5分钟bar收盘时间点之间取data2的数据,其实取的是最近的5分钟bar的数据(也就是图表左边最近的历史5分钟bar的数据),这个数据,您如果存储在var_name2上,var_name2并不会更新(也就是您下一次调用的时候,其实取的数据不是这一次计算的数据结果),您可以将这个数据存储在var_name1上(因为这个会更新,下一次可以调用这一次计算的数据结果)。
二、var_name2(0, data2)中的data2的意思是,这个变量是定义为data2的变量,当代码基于data2的bar计算时,这个变量才会更新,否则中是计算。
三、简单的说,变量的更新是指它的计算结果可以被以后的代码计算调用,而变量的计算是指它的计算结果可以被当次代码计算调用。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容