以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- pel公式调用VB自定义函数,传递字符串的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=56610) |
-- 作者:cthlj -- 发布时间:2013/9/13 13:08:09 -- pel公式调用VB自定义函数,传递字符串的问题 VB自定义函数不支持传递字符串参数,搜索了好一会儿,可以用超全局变量解决。 但遇到问题,不能正常传递, 问题会出在哪儿了? 公式: GLOBALVARIABLE:买入信号=\'买入\'; //这里的‘字符串’是你自己取的变量名 testtxt(); 自定义函数: Function testtxt(Formula) \'系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码 testtxt=0 MSG=document.getextData("买入信号") MsgBox "传递字符串:" & MSG End Function 运行弹出的对话框提示:“传递字符串:100057”,最后变成了数字?
|
-- 作者:王锋 -- 发布时间:2013/9/13 13:36:23 -- 此主题相关图片如下:qq截图20130911122009.jpg |
-- 作者:cthlj -- 发布时间:2013/9/13 14:55:07 -- 好吧,之前对字符串的问题,在论坛搜索过的,但没有找到解决办法。 王管应说的是这个帖子的10楼吧:http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=9511 if VBuy then begin buy(1,1,limitr,VOP); {开多} if islastbar and bb<>barpos then begin bb:= barpos; extgbdataSet(\'字符串\',\'开多信号:\'+numtostr(close,0)); //这里的‘字符串’是你自己取的变量名 VQQM:=QQMSSG(close,open); end end; 在VBA的自定义函数中这样写: QQMSG=document.getextData("字符串") \'获取公式中设置的变量值 Set obj = CreateObject("WWSCommon.TCGroup")
但根据这个方法,重新试了一下,还是不对,弹出窗口依然显示的是数字?
if islastbar then
Function QQMSSG(Formula) End Function |
-- 作者:王锋 -- 发布时间:2013/9/13 15:04:24 -- 字符串的操作要用
EXTGBSTRING( )
这2个函数 |
-- 作者:cthlj -- 发布时间:2013/9/13 17:32:23 -- 感谢回复!
EXTGBSTRING( )和EXTGBSTRINGSET( , ) 是试过的,但是没有得到预期的结果, 是下面的代码有问题吗? 运行后,依然提示不对?郁闷! if islastbar then
Function QQMSSG(Formula) End Function |
-- 作者:王锋 -- 发布时间:2013/9/13 17:36:14 -- 你看看 工具菜单-》数据-》全局变量数据库,里面记录的对不对再说 |
-- 作者:cthlj -- 发布时间:2013/9/13 21:44:02 -- 原因终于搞清了,内牛满面: 在逐K线模式,使用EXTGBSTRINGSET( , )设定字符串型全局变量,在VB中用document.GetExtString()取值。 下面帖子的10楼给出的例程,只适用于数值型全局变量。 感谢王版,尽管没有直接指出问题在哪儿。 |