请问这个文华的代码barslast怎么改写 MC 呢 [MC]
- UID
- 2
- 积分
- 2874674
- 威望
- 1387366 布
- 龙e币
- 1487308 刀
- 在线时间
- 13156 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-11-24
|
请问这个文华的代码barslast怎么改写 MC 呢 [MC]
MC用户求助:
文华的代码
A:=HIGH>REF(HIGH);// 最高价大于前K线高点;
B:=REF(HIGH,2+BARSLAST(A)) ;满足条件A的前面3根K线的高点;
c:=REFX(B,1);//取B在一个周期后的值
这个转换为MC 怎么写呢
(来自旧论坛客户,go-yunhang)
MC回复讨论一:
抱歉回复的有点晚!
文华支持未来数据,但是MC不支持未来数据,MC只能从当根bar的位置取历史bar的数据(即向历史回溯);下面先分开来介绍各个部分,然后再汇总给予整体回复。
//A:=HIGH>REF(HIGH);
condition1=high>high[1];
{您可以看一下关键字ago,了解一下MC如何在当根bar回溯历史数据的,例如,回溯前一根bar的最高价,使用high[1],即在后面加括号,括号里面使用1,其它数字的意思以此类推}
//B:=REF(HIGH,2+BARSLAST(A)) ;
value1=2+mro(condition1,20,1);
value2=symbol_high[value1];
{您可以在公式编译器中查看一下函数mro的使用,上面的例子中mro(condition1,20,1)的意思是,在最近20根bar上搜索第一个condition1条件成立的bar并且返回该bar与当根bar的距离;value2存储的是前value1根bar上的最高价}
//c:=REFX(B,1);
由于MC没有办法引用未来数据,比如您是在编号为10的bar上引用编号为11的bar上的数据,那么您需要在编号为11的bar上去回溯检查编号为10的bar上的数据以确定编号为11的bar上的数据是策略需要的
MC回复讨论二:
感谢 Alex,我能直接说文华的BARSLAST函数 跟 函数mro 是一个意思么? 是可以用在回测和实盘里吧 ?
MC回复讨论三:
可以说用在回测和实盘中,这两个函数可以达到同样的功能,只是文华的barslast函数只有一个参数,而mro有三个参数。
两者的对比:
一、barslast没有指定搜索历史bar的范围;而mro可以指定搜索的范围。
二、 barslast只能搜索最近一个,而mro可以指定搜索的是第几个。
三、barslast是封闭的不能更改,而mro是一个开放的函数,可以自行查看内部逻辑代码并且修改。
MC回复讨论四:
可以说用在回测和实盘中,这两个函数可以达到同样的功能,只是文华的barslast函数只有一个参数,而mro有三个参数。
两者的对比:
一、barslast没有指定搜索历史bar的范围;而mro可以指定搜索的范围。
二、 barslast只能搜索最近一个,而mro可以指定搜索的是第几个。
三、barslast是封闭的不能更改,而mro是一个开放的函数,可以自行查看内部逻辑代码并且修改。 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|