以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助]各位大仙,路过请留步,关于vba,qq发送  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=10129)

--  作者:sun884588
--  发布时间:2012/2/14 11:45:58
--  [求助]各位大仙,路过请留步,关于vba,qq发送

首先感谢论坛的管理员,搞出很好的qq发送功能。谢谢

之后是一些我在使用中遇到的问题。恳请大家帮助

 

 


--  作者:sun884588
--  发布时间:2012/2/14 11:46:46
--  

Sub APPLICATION_VBAStart()
 call Application.SetTimer(0,300) \'创建一个0号定时器,间隔时间3秒
End Sub

Sub APPLICATION_Timer(ID)
Set Formula = marketdata.STKINDI("510180","sh","短线1号",0,0)\'品种、周期、指标修改为自己需要的。
    bb =  Formula.GetBufData("buy1",Formula.DataSize-1) \'显示最后周期指标线数值
    ss = Formula.GetBufData("sell1",Formula.DataSize-1) \'显示倒数第二周期指标线数值
       
set Report1 = marketdata.GetReportData("510180","sh")
    ifjg = Report1.NewPrice
   
set Report1 = marketdata.GetReportData("if00","zj")
    ifjg1 = Report1.NewPrice
   
Set obj = CreateObject("WWSCommon.TCGroup")
    bq = "<<股指期货对冲进出场信号系统>>"\'这里是信号之前的版权(广告)
    IF  bb>0 then
       mxmsg =vbCrLf&  bq &" " & Date &" " &time&vbCrLf&"上证180etf"&"-----"&"买入价格---0"&ifjg&vbCrLf&"股指期货当月"&"---"&"卖出价格---"&ifjg1
       \'application.MsgOut mxmsg
       call obj.TransMessage("邓艾黎源", mxmsg)
       Set obj = Nothing
    elseIF  ss>0 then
       mxmsg =vbCrLf&  bq &" " & Date &" " &time&vbCrLf&"上证180etf"&"-----"&"卖出价格---0"&ifjg&vbCrLf&"股指期货当月"&"---"&"买入价格---"&ifjg1
       \'application.MsgOut mxmsg
       call obj.TransMessage("邓艾黎源", mxmsg)
       Set obj = Nothing

    else
     \'mxmsg =bq &" " &  Date &" " &Time&vbCrLf&"暂无变化,保持之前状态。"
     \'application.MsgOut mxmsg
     \'call obj.TransMessage("邓艾黎源", mxmsg)
     \'Set obj = Nothing
    end if
      
end sub


Sub qq()
    call APPLICATION_Timer(ID)
End Sub


--  作者:王锋
--  发布时间:2012/2/14 12:06:07
--  
请告知你具体遇到了什么问题
--  作者:sun884588
--  发布时间:2012/2/14 12:12:23
--  

我是用在分笔上的,分别引用的510180和if00两个分笔数据,在510180上面,目的是看价差波动

 

现在发送是发送,但是不稳定,遗漏,延时,不对应等等。。。。。。。。。。。。问题很多,想请大家帮忙看看,能否改进。

 

我认为可能错误的地方:

 

1.定时器设定,究竟是多少比较好呢?对于分笔而言,中间的300是毫秒?那么折算成秒是多少秒?对于股指期货而言,一天大约是30000比以内,那么怎样的计时器,做到有可以不漏掉监控,有不至于太耗费资源呢?另外该计时器是否控制发送频率?那么在信号产生之后,正常情况应该触发发送。如果计时器小于分笔频率,假定分笔到分笔为均等的1秒,那么上面的计时器会在该分笔触发几次。我是完全不懂,请教了。究竟怎样的设定是正确与合理的。

 

2.Set Formula = marketdata.STKINDI("510180","sh","短线1号",0,0)\'品种、周期、指标修改为自己需要的。
原文为3分钟,我如果希望分笔上面根据指标值是否可以呢??????????

 

3.    bb =  Formula.GetBufData("buy1",Formula.DataSize-1) \'显示最后周期指标线数值
    ss = Formula.GetBufData("sell1",Formula.DataSize-1) \'显示倒数第二周期指标线数值

这个应该是引用指标线的值,原文是cc和refcc的值,即指标最后和最后倒数一根的值,我现在是引用两根指标线的值,不知道写的是否对,声明buy1和sell1就是开仓和平仓信号,并且在指标内已经正常显性。

 

4.set Report1 = marketdata.GetReportData("510180","sh")
    ifjg = Report1.NewPrice
   
set Report1 = marketdata.GetReportData("if00","zj")
    ifjg1 = Report1.NewPrice
   
Set obj = CreateObject("WWSCommon.TCGroup")
    bq = "<<股指期货对冲进出场信号系统>>"\'这里是信号之前的版权(广告)
    IF  bb>0 then

这里更改了原作的广告部分内容,谅解。刚发现有两个Report1,自己修正一下。

 

5.Set obj = CreateObject("WWSCommon.TCGroup")
    bq = "<<股指期货对冲进出场信号系统>>"\'这里是信号之前的版权(广告)
    IF  bb>0 then
       mxmsg =vbCrLf&  bq &" " & Date &" " &time&vbCrLf&"上证180etf"&"-----"&"买入价格---0"&ifjg&vbCrLf&"股指期货当月"&"---"&"卖出价格---"&ifjg1
       \'application.MsgOut mxmsg
       call obj.TransMessage("邓艾黎源", mxmsg)
       Set obj = Nothing
    elseIF  ss>0 then
       mxmsg =vbCrLf&  bq &" " & Date &" " &time&vbCrLf&"上证180etf"&"-----"&"卖出价格---0"&ifjg&vbCrLf&"股指期货当月"&"---"&"买入价格---"&ifjg1
       \'application.MsgOut mxmsg
       call obj.TransMessage("邓艾黎源", mxmsg)
       Set obj = Nothing

    else
     \'mxmsg =bq &" " &  Date &" " &Time&vbCrLf&"暂无变化,保持之前状态。"
     \'application.MsgOut mxmsg
     \'call obj.TransMessage("邓艾黎源", mxmsg)
     \'Set obj = Nothing
    end if

这里我想请教两个问题。

1.语法对吗,因为原创的进出,多空4种情况,我实际只需要进出就可以了,所以这样写if.....then....elseif....then......else是否可以,我完全不懂的。

2.买入和平仓这样写可以吗????分笔上,我在图标上见到的指标信号是正常的,即buy1--bb,sell1--ss没有信号是0,有信号是1,不知道在vba中需要怎样的描述才正确。

 

 

之后就是改了发送条件,发送群的设定。

 

Sub qq()
    call APPLICATION_Timer(ID)
End Sub

 

这句必须要加吗????


--  作者:sun884588
--  发布时间:2012/2/14 12:14:28
--  

Sub APPLICATION_VBAStart()
 call Application.SetTimer(0,300) \'创建一个0号定时器,间隔时间3秒
End Sub

Sub APPLICATION_Timer(ID)
Set Formula = marketdata.STKINDI("if00","zj","短线1号",0,17)\'品种、周期、指标修改为自己需要的。
    cc =  Formula.GetBufData("mxcc",Formula.DataSize-1) \'显示最后周期指标线数值
    refcc = Formula.GetBufData("mxcc",Formula.DataSize-2) \'显示倒数第二周期指标线数值
       
set Report1 = marketdata.GetReportData("if00","zj")
    ifjg = Report1.NewPrice
   
Set obj = CreateObject("WWSCommon.TCGroup")
    bq = "明心股指日内3分钟"\'这里是信号之前的版权(广告)
    IF refcc=0 and cc>0 then
       mxmsg = bq &" " & Date &" " &Time&vbCrLf&"股指期货"&" " &ifjg&" " &"开多"&cc&"手。"
       \'application.MsgOut mxmsg
       call obj.TransMessage("程序化初级群", mxmsg)
       Set obj = Nothing
    elseIF refcc>0 and cc=0 then
       mxmsg = bq &" " &  Date &" " &Time&vbCrLf&"股指期货"&" " &ifjg&" " &"平多"&refcc&"手。"
       \'application.MsgOut mxmsg
       call obj.TransMessage("程序化初级群", mxmsg)
       Set obj = Nothing
    elseIF refcc=0 and cc<0 then
       ss = 0-cc
       mxmsg = bq &" " &  Date &" " &Time&vbCrLf&"股指期货"&" " &ifjg&" " &"开空"&ss&"手。"
       \'application.MsgOut mxmsg
       call obj.TransMessage("程序化初级群", mxmsg)
       Set obj = Nothing
    elseIF refcc<0 and cc=0 then
       ss = 0-refcc
       mxmsg = bq &" " &  Date &" " &Time&vbCrLf&"股指期货"&" " &ifjg&" " &"平空"&ss&"手。"
       \'application.MsgOut mxmsg
       call obj.TransMessage("程序化初级群", mxmsg)
       Set obj = Nothing
    else
     \'mxmsg =bq &" " &  Date &" " &Time&vbCrLf&"暂无变化,保持之前状态。"
     \'application.MsgOut mxmsg
     \'call obj.TransMessage("程序化初级群", mxmsg)
     \'Set obj = Nothing
    end if
      
end sub

Sub qq()
    call APPLICATION_Timer(ID)
End Sub

 

 

 

 

此为明心老大的原文,版权所有,本人修改,冒犯请原谅!

 

 


--  作者:sun884588
--  发布时间:2012/2/14 12:15:39
--  
王峰老大好!!!!很多问题,延时,漏掉,一下子发送很多。。。。。。。
--  作者:sun884588
--  发布时间:2012/2/14 12:20:40
--  

把一个群轰的稀巴烂。我不清楚几个问题,计时器的正确设定,vba中对指标线的引用(进出场是否正确)请大家帮忙看看吧。

 

可以向群发送,挺好的功能我想用起来,自己基础差,所以请各位大仙帮助,谢谢,谢谢,谢谢


--  作者:王锋
--  发布时间:2012/2/14 13:02:42
--  

你的定时器设定有问题 300毫秒=0.3秒

 


--  作者:z7c9
--  发布时间:2012/2/14 13:20:06
--  

看看


--  作者:sun884588
--  发布时间:2012/2/14 13:30:21
--  
0.3说很大的错处应该也没有,因为是分笔监控。您建议使用多少秒?