Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共17 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:强烈建议增加函数功能

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

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

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

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

思路如下:

 

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

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

函数C,用来开始计算

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

 

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

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

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

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

7楼
matador_liu 发表于:2012/4/26 23:00:36
好吧,我先装个vc6先,好多年没用这玩艺儿了:)
多谢!
8楼
matador_liu 发表于:2012/4/26 23:04:14
我这台pc上是win7, 还装着vs的各个版本,现在装个vc6会不会出问题,你们用的是哪个版本啊,能不能给个下载链接?
9楼
admin 发表于:2012/4/26 23:08:19

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

10楼
matador_liu 发表于:2012/4/26 23:12:25
非常感谢!
共17 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.03906 s, 2 queries.