查看引用数据和指标的源代码
←
引用数据和指标
跳转到:
导航
,
搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
=策略中跨周期引用= ==refDataEx和refIndiEx== 在策略中引用数据或指标需要用到refDataEx和refIndiEx函数 同样的,这两个函数也是只能用在逐根模式。 '''refDataEx与refData的区别:''' 在引用到大周期数据时, refData和refIndi是直接用大周期历史数据计算而成。 refDataEx和refIndiEx用到的数据,是由主图的小周期类型数据,在每一个小周期,不断插值拼接成大周期,再进行计算。由于Ex函数是用本周期数据合成被引用的数据,所以在大周期用Ex引用小周期是没有意义的;数据只能通过合并由多变少,不能变多。 这么做的目的是,测评的时候能得到当时精确的大周期值。当然,交易时,如果在小周期引用大周期进行交易,那么只要使用nextBar模式,也保证了历史信号是正确的。 例如,1分钟引用日线,那么,每一个1分钟,都能得到当时那1分钟的日线的收盘,而不是那1分钟所在那一天的最后一分钟的日线收盘。 这样就杜绝了未来数据,让历史信号精确匹配。 例如,主图是5分钟K线,引用“沪深300”日线的5日均线。 refIndiEx( '399300', 'ma.m1', P_DAY,1); 那么,首先取出沪深300的5分钟线,然后用这些5分钟线合成日线,然后用合成的日线计算5日均线。 注意: 在实际使用中,上例中的refIndiEx( '399300', 'ma.m1', P_DAY,1);是个不好的例子,因为它引用了逐行的ma指标。 在逐根时,不要引用逐行指标。逐根引用逐行,带来一个dataCount*dataCount次的循环,会导致公式运行非常缓慢。 有可能的话,自己写一个#run_by_bar的ma指标,然后引用它。 例如这样:建一个指标myma #Run_By_Bar ma5:ma(c,5); 然后引用公式是: #Run_By_Bar _refIndiEx : RefIndiEx( ' ', 'myma.ma5', P_Day, 1 ); 让我们对比一下 _refIndi :RefIndi( ' ', 'ma.m1', P_Day, 1 ); [[文件:refVSrefEx.jpg]] 白色横线是原引用函数refIndi的结果,它直接取了日线最后的结果填到每一根1分钟里。 黄色锯齿状线是新引用函数refIndiEx的结果,它的数值是日线在当时每1分钟下的ma5值。 ==refDataEx和refIndiEx的局限== 由于数据是由小周期数据(典型应用里都是分钟数据)组合而成,那么有可能所有分钟得到的最高最低值,不一定能和日线的最高最低值匹配。原因是日线的最高最低是由交易所提供,而分钟线的最高最低,是从分笔得来,而分笔是一个均值,不一定能达到真正的最高最低。 对于nextBar交易,小周期拼接可以大大提升策略的进入时机的精确性; 而对于运行在thisBar模式下的交易,小周期拼接的精确性,依然无法达到分笔插值的程度。 ==refIndiEx实例== rr:RefIndiEx('000001.SZ', 'RSI.RSI1', P_Day, 2, 20); //计算深发展的参数为20的日线的RSI rr1:rr[1];//深发展昨天收盘时的RSI值 rr0:rr[0];//深发展这一刻的日线RSI值
返回到
引用数据和指标
。
个人工具
内存:18911KB
18.224.60.132
该IP地址的讨论
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
金魔方论坛
下载金魔方
帮助
工具箱
链入页面
链出更改
特殊页面