以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  明明定义了函数QQMSGX,却说我函数未定义  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=71542)

--  作者:白云天天飘
--  发布时间:2014/10/30 14:21:56
--  明明定义了函数QQMSGX,却说我函数未定义
完全照太极福爷《金字塔自动向QQ发送消息实例》里面做的
开始可以执行,过一会就不能执行了,编辑公式,说我qqmsgx函数未定义
请各位高手指点一下

附引用的文章
工作原理:
此功能充分展示了金字塔强大的扩展能力,金字塔的确是一个无比强大的好工具。
先说功能调用的逻辑。
金字塔公式系统可以调用VB,VB可以调用DLL,DLL可以扩展实现捕捉QQ窗口发送消息的功能。
再说数据传递。
金字塔公式系统可以直接向VB传递参数,也可以用全局数据向VB传递数据,全局数据支持字符串,比较灵活。

下面开始讲如何配置:
1、下载dll,http://www.weistock.com/download/WWSCommon.dll
2、注册dll,打开win的运行,regsvr32 C:\\WWSCommon.dll
以上两步可能2.8以上版本自动做了,但我是手工注册了一下dll。

代码的编写
1、先写VB代码,打开金字塔的管理面板-高级,模块,function;先让VB停止运行,菜单,运行,重新设置;
2、菜单,插入,过程,输入函数名和参数名:QQMSGX,(QQNum,QQMSG),系统会生成一段代码,手工改一下如下:


Function QQMSGX(Formula,QQNum,QQMSG)
   QQMSG=document.GetExtString("QQSTR")
   
   Set obj = CreateObject("WWSCommon.TCGroup")
   bq = " 交易系统信号发布 "
   mxmsg = bq &"  " & Date &" " & Time & vbCrLf & " 信号" & " " & QQMSG
   call obj.TransMessage("你自己的群显示名字", mxmsg)
   Set obj = Nothing  
   
   Set obj = CreateObject("WWSCommon.TCGroup")   
   call obj.TransMessage("某个人的qq显示名字", mxmsg)
   Set obj = Nothing  
   
End Function

改完以后让VB开始跑,菜单有运行,或者管理面板上有个黑三角,总之要跑起来!

3、下面搞公式代码
代码是个测试的东东,一个在每根K线走完发消息,两个在出现买卖信号发消息,大家可以自己改。

 GLOBALVARIABLE: bb=0;

VBuy:l<=o;
VSell:h>=o;
    
if islastbar and bb<>barpos and not(VBuy) and not(VSell) then
  begin
     bb:= barpos;
     extgbstringSet(\'QQSTR\',\'PR \'+numtostr(close,5) + \' OB \'+numtostr(h,5)+\' OS \'+numtostr(l,5) );
     VQQM:=QQMSGX(1,close);
   end
       
if VBuy then
begin
  //buy(1,1,limitr,c);       {开多}
  if islastbar and bb<>barpos then
   begin
      bb:= barpos;
      extgbstringSet(\'QQSTR\',\'1分钟超卖,尝试开多:\'+numtostr(close,5));
      VQQM:=QQMSGX(1,close);
   end
end; 
      
if VSell then
begin
  //sell(1,1,limitr,c);       {开多}
  if islastbar and bb<>barpos then
   begin
      bb:= barpos;
      extgbstringSet(\'QQSTR\',\'1分钟超买,尝试开空:\'+numtostr(close,5));
      VQQM:=QQMSGX(1,close);
   end
end; 

--  作者:王锋
--  发布时间:2014/10/30 15:25:09
--  
这个自定义函数你必须要在公式编辑器界面上的自定义函数组里能看到才行的