以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 交易策略发布专区 (http://weistock.com/bbs/list.asp?boardid=10) ---- 【VBA策略】自动新股申购源码共享 (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=153080) |
-- 作者:道飞 -- 发布时间:2017/5/16 22:50:39 -- 【VBA策略】自动新股申购源码共享 您是否为了记住每天都要查看都有哪些新股需要发行而烦恼呢,是否会因为忘记申购发行的新股而懊恼呢?从现在开始就不用怕啦,金字塔已经全面支持股票的自动化操作了,有了这个强大的工具,为啥该机器去做的事情,还要人工的去搞呢。
该VBA代码仅限4.2正式版或更高版本支持
Dim NewStockStatus \'该标志用来标记属于VBA的查询,防止手工查询新股申购时自动申购
NewStockStatus = 0
Sub APPLICATION_Timer(ID)
If Id = 0 Then
If Time = "09:45:00" Then
\'执行新股申购查询
NewStockStatus = 1
Order.ReqNewStockInfo ""
End If
If Time = "09:46:00" Then
\'一分钟后停止标记
NewStockStatus = 0
End If
If Time = "09:50:00" Then
\'查询是否中签
Order.ReqNewStockLotInfo ""
End If
End If
End Sub
Sub APPLICATION_VBAStart()
Application.SetTimer 0,1000
End Sub
Sub ORDER_ActionNotify(Types, Account, Data)
If Types = 2 And Data > 0 And NewStockStatus = 1 Then
\'当新股申购查询返回直接处理申购事宜
NewStockPleaceOrder(Data)
End If
If Types = 3 And Data > 0 Then
\'当查询到中签新股后,触发语音播报消息
SpkSound
End If
End Sub
\'该过程对已经查询过的当日可申购新股做自动申购操作
Sub NewStockPleaceOrder(Count)
Dim Code
Dim Name
Dim Market
Dim Price
Dim Upperlimit
Dim Lowerlimit
NewSize = Count
For I = 0 To NewSize - 1
Ret = Order.GetNewStockInfo(i,"",Code,Name,Market,Price,Upperlimit,Lowerlimit)
If Ret = 1 Then
\'满额申购新股
MaxVol = Order.GetNewStockMaxVol("",Market)
If MaxVol > 0 Then
call Order.PleaceOrderNewStock(Code,Market,Price,MaxVol,"")
Application.MsgOut "已经处理新股委托"&Code&"--"&Name
End If
Set Code = NoThing
Set Name = NoThing
Set Market = NoThing
End If
Next
End Sub
Sub SpkSound
Set Spk = CreateObject("SAPI.SpVoice")
Spk.Speak "恭喜您,新股中签啦"
Set Spk = nothing
Application.PlaySoundFile "OptimizeComplete.wav"
End Sub
|
-- 作者:guotx2010 -- 发布时间:2017/12/14 10:04:14 -- 这个代码,我测试了,没有成功,请问有人成功了吗? |
-- 作者:无为剑 -- 发布时间:2017/12/14 11:49:51 -- 不成功要看具体什么情况了。 你要具体调试一下后才能知晓 |
-- 作者:guotx2010 -- 发布时间:2017/12/14 12:38:25 -- 我调试了,返回的MaxVol为0,可是我账户一直有持仓,是满足新股申购条件的,用这个不行,用别的软件申购可以的。 |
-- 作者:无为剑 -- 发布时间:2017/12/14 22:06:43 -- 范例查询申购数量的参数填反了,已经修正 |
-- 作者:guotx2010 -- 发布时间:2017/12/29 8:15:13 -- call Order.PleaceOrderNewStock(Code,Market,Price,MaxVol,"")这一句中的maxVol也不对的,不是市场可以申购的最大数,而是本股票可以申购的最大数,也就是UpperLimit。 |
-- 作者:hj007s -- 发布时间:2018/1/5 14:11:39 -- 这个范例哪可以加入申购时间?就是我决定申购的下单的时间 |
-- 作者:无为剑 -- 发布时间:2018/1/5 15:38:36 -- 代码范例上有时间,范例是9:45开始申购,你可以自己改 |