以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  强烈建议增加函数功能  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=11345)

--  作者:matador_liu
--  发布时间:2012/4/26 21:53:40
--  强烈建议增加函数功能
现在所有的代码都必须写在一个文件中,实现一个稍微复杂一点儿的算法,便又长又乱,甚难阅读。
虽然可以引用指标,可以编写自定义函数,但对于需要返回多个结果的情况来说,一个真正的函数机制才是最好用的;而且还能复用代码。
希望在以后的版本中考虑!

--  作者:王锋
--  发布时间:2012/4/26 22:11:21
--  

如果需要多个返回结果的情况,单纯的函数是解决不了的,因为函数调用只能有一个返回,引用指标才是最理想的方案


--  作者:matador_liu
--  发布时间:2012/4/26 22:21:05
--  
比如我需要一个功能模块(权且叫做F),对矩阵进行处理,需传入多个数组,例如:F(&a[], &b[])  (此为伪码),处理完后返回这几个数组。在我的策略中需多次调用此模块,并且传入数据都不同。
请问用金字塔该怎样实现才方便呢?多谢!

--  作者:admin
--  发布时间:2012/4/26 22:38:29
--  

这种情况一个效率比较高的做法就是你通过自定义函数来解决了。

思路如下:

 

VBA中你做个公用模块用来计算矩阵。

分别定义自定义函数A,B,这两个函数只做数据传递之用

函数C,用来开始计算

函数D,用来调取A结果,函数E用来调取结果B

 

考虑到效率问题,如果你的C++功底比较好,可以考虑使用DLL公式的方式来解决,DLL公式解决步骤就简单的多,由于计算更加灵活,会更方便。但是考虑到可能中间你要缓冲结果,需要在 工具-》选项-》勾选“DLL公式内存驻留模式”,金字塔的公式语言均为脚本语言,本身无法实现C语言的指针功能,每次调用只能返回一个结果,目前只能这一种做法


--  作者:matador_liu
--  发布时间:2012/4/26 22:52:22
--  关于商品指数合约与连续合约的区别
我上面说的那个模块,另外一个函数需要调用它25次,还不能用循环,我都快崩溃了……:(
用自定义函数的办法铁定也太麻烦,我还是试用一下dll吧。
这里的dll是com组件(vc++6.0或其它编译器编译的)还是用.net编译的版本?
我基础还可以,只不过第一次编写金字塔用的dll,一定有许多问题要问,希望不吝指教!

--  作者:admin
--  发布时间:2012/4/26 22:57:18
--  

DLL就是普通的VC6编译的DLL工程。

初学者建议参考金字塔安装目录下的 FmlDevelope.zip 示例工程,尤其是.H头文件上标注有完整的说明


--  作者:matador_liu
--  发布时间:2012/4/26 23:00:36
--  
好吧,我先装个vc6先,好多年没用这玩艺儿了:)
多谢!

--  作者:matador_liu
--  发布时间:2012/4/26 23:04:14
--  
我这台pc上是win7, 还装着vs的各个版本,现在装个vc6会不会出问题,你们用的是哪个版本啊,能不能给个下载链接?

--  作者:admin
--  发布时间:2012/4/26 23:08:19
--  

用2008等VS版本的C++也是兼容的,只不过要注意些细节 参考http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=5337


--  作者:matador_liu
--  发布时间:2012/4/26 23:12:25
--  
非常感谢!