首先感谢论坛的管理员,搞出很好的qq发送功能。谢谢
之后是一些我在使用中遇到的问题。恳请大家帮助
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
我是用在分笔上的,分别引用的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
这句必须要加吗????
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
此为明心老大的原文,版权所有,本人修改,冒犯请原谅!
把一个群轰的稀巴烂。我不清楚几个问题,计时器的正确设定,vba中对指标线的引用(进出场是否正确)请大家帮忙看看吧。
可以向群发送,挺好的功能我想用起来,自己基础差,所以请各位大仙帮助,谢谢,谢谢,谢谢
你的定时器设定有问题 300毫秒=0.3秒
看看