请问mc怎么抓取上一个条件满足的位置 [MC]
-
MC用户求助:
如果您需要用到上个同样条件满足时的currentbar,您可以使用函数mro,该函数返回指定表达式为true的之前柱状线数量,具体用法如下:
MRO(Test, Length, Instance)
Test
设置要检查的 True/False 表达式(即 Close > Open)。
Length
设置要检查的柱状线数量。
Instance
设置发生顺序,例如 1 = 最近发生,2 = 次最近发生,以此类推。
举例,若您需要在最近10根bar上返回第二次满足close>open的bar离当根bar的距离,可以使用mro(close>open, 2, 10);
但是这个函数会使用instance限定搜索的范围,所以您可以使用变量来保存满足条件时的currentbar
“当前条件满足的currentbar减去上个同样条件满足时的currentbar,怎么得到具体数字“,这句话不是很理解;若通过变量保存上一次条件满足时的currentbar,当条件再次满足时,可以直接用当根bar的currentbar减去上一次条件满足时的currentbar即可,得到一个相对位置(比如,这里用cur来代表);若您还需要通过这个相对位置去回溯上一次条件满足时的bar上的价格,例如close价格,可以使用symbol_close[cur],这里不能使用close[cur],原因是当使用close[cur]时,cur不能超过最大bar数量(默认是50),超过就会报错的;而symbol_close[cur]不受最大bar数量限制,这是close和symbol_close的区别,其它没有区别。
还有其它一类的symbol系列关键字,您可以看一下这个帖子,http://forums.icetech.com.cn/for ... &extra=page%3D7 -
MC回复讨论一:
如果您需要用到上个同样条件满足时的currentbar,您可以使用函数mro,该函数返回指定表达式为true的之前柱状线数量,具体用法如下:
MRO(Test, Length, Instance)
Test
设置要检查的 True/False 表达式(即 Close > Open)。
Length
设置要检查的柱状线数量。
Instance
设置发生顺序,例如 1 = 最近发生,2 = 次最近发生,以此类推。
举例,若您需要在最近10根bar上返回第二次满足close>open的bar离当根bar的距离,可以使用mro(close>open, 2, 10);
但是这个函数会使用instance限定搜索的范围,所以您可以使用变量来保存满足条件时的currentbar
“当前条件满足的currentbar减去上个同样条件满足时的currentbar,怎么得到具体数字“,这句话不是很理解;若通过变量保存上一次条件满足时的currentbar,当条件再次满足时,可以直接用当根bar的currentbar减去上一次条件满足时的currentbar即可,得到一个相对位置(比如,这里用cur来代表);若您还需要通过这个相对位置去回溯上一次条件满足时的bar上的价格,例如close价格,可以使用symbol_close[cur],这里不能使用close[cur],原因是当使用close[cur]时,cur不能超过最大bar数量(默认是50),超过就会报错的;而symbol_close[cur]不受最大bar数量限制,这是close和symbol_close的区别,其它没有区别。
还有其它一类的symbol系列关键字,您可以看一下这个帖子,http://forums.icetech.com.cn/for ... &extra=page%3D7 -
MC回复讨论二:
是的,我的目的就是您“这句话不是很理解”的下一句,但是因为条件是相同的,我可以记录前满足条件时的数据,但是上一次满足的数据会因为重新满足了一次而数据被重新取值,也就是无法获得上一个条件满足的数据了
-
MC回复讨论三:
array: cur[1](0);
condition1=close>open; //这里只是一个例子,也可以使用其它的条件
if condition1 then begin
cur[1]=cur[0];
cur[0]=currentbar; //这里只是一个例子,也可以保存close等数据,不一定要保存currentbar数据
end;
新建一个两元素的数组,cur[1]保存上一次满足条件时的数据,而cur[0]保存当前满足条件时的数据。当条件condition1条件再次满足时,首先将cur[0]的数据赋值给cur[1],然后再将最新的数据赋值给cur[0]即可。 -
MC回复讨论四:
array: cur[1](0);
condition1=close>open; //这里只是一个例子,也可以使用其它的条件
if condition1 then begin
cur[1]=cur[0];
cur[0]=currentbar; //这里只是一个例子,也可以保存close等数据,不一定要保存currentbar数据
end;
新建一个两元素的数组,cur[1]保存上一次满足条件时的数据,而cur[0]保存当前满足条件时的数据。当条件condition1条件再次满足时,首先将cur[0]的数据赋值给cur[1],然后再将最新的数据赋值给cur[0]即可。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容