以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  请教几个问题  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=136583)

--  作者:分析者
--  发布时间:2016/7/22 14:21:39
--  请教几个问题
 

一、 请问,是否VBA公式(或者项目)向PEL返回数据只能返回一个数值或一个数组(序列模式),不能返回多个数值或多个数组,extgbdataSet除外?

之前的帖子中说到有extgbdataSetdocument.getextData,但这个是操作全局变量,我不喜欢用这个方法。

二、 VBS公式(不是指VBA公式或者项目)能否使用所有的VBA内部和外部对象?

三、 VBS公式(不是指VBA公式或者项目)能否能使用框架、窗体。

四、 由于序列模式有一些限制,可否在序列模式中编写复杂的指标策略A,然后在序列模式下再编写交易系统B,在逐K交易系统B中引用序列模式指标A


--  作者:王锋
--  发布时间:2016/7/22 16:07:09
--  

1,不能返回多个数组

2,3,VBS公式已经是很老的东西了,我们平台目前不做更多技术支持,请使用自定义函数

4,可以的


--  作者:分析者
--  发布时间:2016/7/22 16:43:36
--  

   其实,正是因为VBA自定义函数的缺陷:不能返回多个数组或多个数据,我才被逼迫无奈用VBS公式,因为VBS公式和PEL互传多个数组很方便,稍微复杂点的计算肯定要用到多个数组,还需要从VBA传回到PEL。

   我想了个如下的折衷的办法,请问可否?

   凡是需要多个数组计算的,我就用VBS公式,用VBS公式做数据计算,凡是涉及到金字塔对象的,例如ORDER,涉及到窗体、框架的,且不需向PEL传递多个数组,或多个数据的就用VBA自定义函数,将VBS公式和VBA自定义函数结合起来使用。

  这样可否?

  


--  作者:分析者
--  发布时间:2016/7/22 16:50:12
--  
我打算从VBA向PEL传递多个数组的目的是:要使用PEL显示指标、画图,VBA好像没有PEL画指标、画图方便,所以只好在VBA中运算数据,然后将计算结果返回PEL,再用PEL画图,画指标。
--  作者:分析者
--  发布时间:2016/7/22 17:09:15
--  
如果VBA自定义函数中就可以方便的画图、画指标,那就可以不用向PEL传多个数组了,但VBA的资料没看到这个,请问可以吗?
--  作者:分析者
--  发布时间:2016/7/23 23:07:05
--  
麻烦解答一下我上述后续提问吧,谢谢!
--  作者:王锋
--  发布时间:2016/7/24 11:48:49
--  

不需要VBS公式的,用自定义函数照样可以用里面的对象进行数组传递的。

参考

VarData                 取或设置公式线序列数组数据

VarStartIndex           得到指定公式线数组变量有效数值起始位置


--  作者:分析者
--  发布时间:2016/7/25 15:14:44
--  

王总:

    您说的在自定义函数中使用VARDATA有个问题,对象formula中的方法VARDATA只能读取公式输出线的序列数据,不能是内部的序列变量,而VBS公式中的FFL.VARDATA可以读取任意数组,那么,当一个数组只有5个元素,并不是公式线的时候,则不能用VARDATA在自定义函数中读取吧?


--  作者:王锋
--  发布时间:2016/7/25 15:32:32
--  
你使用数据线输出就可以了