以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  自定义函数为什么会这样呢?  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=87733)

--  作者:fengxiaoyong
--  发布时间:2015/11/25 16:20:40
--  自定义函数为什么会这样呢?

 我通过自定义函数和PEL交互,选好股后,通过自定义函数把股加到对应的板块中,代码如下,但是通过调试程序,字符传不过去,是空值,这个是啥原因呢


Function AddBlock(Formula,StockCode,BlkName)
    \'系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
    AddBlock=0
    Application.MsgOut stockcode & blkname
    set blk=CreateObject("Stock.Block")
    blk.CreateBlock "我的分类",BlkName
    if blk.AddStock(BlkName,StockCode) then
       addblock=1
    end if
End Function


--  作者:十世
--  发布时间:2015/11/25 16:33:19
--  

空值说明你没有取出选股后的 品种代码


--  作者:fengxiaoyong
--  发布时间:2015/11/25 16:34:21
--  
 不是的,我还没选股,直接用技术指标调用这个函数都直接传不进去参数值进去
--  作者:fengxiaoyong
--  发布时间:2015/11/25 16:37:56
--  
 王峰老师回答一下吧:我调试发现只有传递数值才可以,字符串是无法传递过去的,如果我要PEL和VBA之间传递字符串用什么办法呢
--  作者:yukizzc
--  发布时间:2015/11/25 16:39:23
--  
自定义函数无法传递字符串,解决方法看这边http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=9511
--  作者:fengxiaoyong
--  发布时间:2015/11/25 17:18:44
--  
谢谢解决了,但是我测试外部对象STOCK.BLOCK发现AddStock这个函数无效,什么参数都是返回1,无法把该股加入到对应板块中
Function AddBlock(Formula,StockCode,BlkName)
   
    AddBlock=0
    stockcode= document.GetExtString("stockcode")
    blkname =document.GetExtString("marketname")
    Application.MsgOut stockcode & blkname
    set blk=CreateObject("Stock.Block")
    blk.CreateBlock "自选股",BlkName 
    if blk.AddStock(BlkName,StockCode) then
       Application.MsgOut "添加个股到板块成功"
       addblock=1
    end if 
End Function

--  作者:yukizzc
--  发布时间:2015/11/26 9:05:37
--  

http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=77581&skin=0

添加后tosave保存下,这边我写过一个例子您看下