设为首页收藏本站

 找回密码
 注册
查看: 1485|回复: 1

[求助]同一函数中传递多个序列结果至公式 [复制链接]

Rank: 1

精华
0
UID
243907
积分
5
帖子
4
主题
1
阅读权限
10
注册时间
2016-11-30
最后登录
2017-12-19
发表于 2016-12-5 11:24:25 |显示全部楼层
各位大牛,小弟遇到一个问题没搜到答案,还望不吝赐教。
需求:在函数内计算跨周期的指标,将结果(多个序列)传递出来,在公式中进一步计算后执行。

想到的几个办法:
1\函数定义var 为 NumericSeries var1,return var1,此方法是现在用的,对于传递一个序列出来没问题,但同一函数传递多个序列,就不行了,为了计算多个指标,需要将同样的代码复制N次只改最后一行,效率低且浪费计算量;
2\函数定义param 为Numericref,可以传递最后值出来,但是无法传递序列,公式中无法参与回溯计算;
3\函数中将序列结果赋值给全局变量,但会导致不同周期的计算结果相互覆盖,如果将全局变量再维护一个值,则跟其他全局变量可能会在不经意间覆盖,风险更大。

感觉如果有个NumericSeriesRef就可以直接解决这个问题,但木有找到。
请各位指点下这种情况怎么解决,不胜感激!!

Rank: 1

精华
0
UID
243907
积分
5
帖子
4
主题
1
阅读权限
10
注册时间
2016-11-30
最后登录
2017-12-19
发表于 2016-12-5 11:30:38 |显示全部楼层
补充一下,用自带函数举个例子吧,以下我直接复制了TB自带的macd的源码,将var定义改为序列后,问题就是如何将MACDValue,AvgMACD ,MACDDiff 三个序列完整的传递出来?哪位大牛要能直接在上面改两行,就能一眼看明白了!
Params
        Numeric FastLength(12);
        Numeric SlowLength(26);
        Numeric MACDLength(9);
Vars
        NumericSeries MACDValue;
        NumericSeries AvgMACD;
        NumericSeries MACDDiff;
Begin
        MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;       
        AvgMACD = XAverage(MACDValue,MACDLength);
        MACDDiff = MACDValue - AvgMACD;

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-18 20:54

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部