以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  VBA字符转换函数getstringptr有问题?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=162280)

--  作者:qihuo2018
--  发布时间:2018/3/23 15:35:56
--  VBA字符转换函数getstringptr有问题?
金字塔图表的函数:
1.当前公式名称:formulaname;
2.当前合约代码:stkname;
3.当前市场代码:marketlabel;
这以上三个函数的返回值均是地址,不能直接被VBA使用。

VBA的下单函数order.buy()需要合约代码和市场代码不能直接使用,需要转换,我用以下函数提示缺少对象,请问老师,该如何修改?谢谢!
Function gtr3(Formula,name3)

    strname1=formula.getstringptr(name3)
    gtr3=strname1

End Function

另,后台交易如何取得合约代码和市场代码?


--  作者:无为剑
--  发布时间:2018/3/23 18:42:30
--  

请问你上述VBS代码有何问题?你意思是没法打印出name3的字符串吗?


--  作者:qihuo2018
--  发布时间:2018/3/23 21:38:58
--  
谢谢老师回复!
提示缺少对象。
缺少以下红色字体部分,不知道该怎么写?
Function gtr3(Formula,name3)
     set formula=?;
    strname1=formula.getstringptr(name3)
    gtr3=strname1

End Function

另,后台交易如何取得合约代码和市场代码?

--  作者:无为剑
--  发布时间:2018/3/23 21:45:13
--  

  set formula=?; 这句话是不要的,formula对象是触发gr3自定义函数事件时带过来的对象,可以直接使用。

 

如果你需要直接获取你需要的信息,可以直接在formula对象中获取,示例:

 

Set Grid =  formula.ParentGrid

 

Grid对象里都包含你需要的信息

 


--  作者:qihuo2018
--  发布时间:2018/3/23 22:41:46
--  
谢谢老师!
程序通过!
但是,当前策略名称取得不对:
 Set Grid =  formula.ParentGrid
\'取得的是框架名称
  formula_name=grid.name
取当前策略名称(公式名称)怎么写?查了好半天没有查到。



--  作者:马良
--  发布时间:2018/3/24 15:10:12
--  
策略名称在 formula对象中,在编程手册上能查到