欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → 【VBA策略】自动新股申购源码共享

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有8457人关注过本帖树形打印复制链接

主题:【VBA策略】自动新股申购源码共享

帅哥哟,离线,有人找我吗?
道飞
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:22 积分:0 威望:0 精华:0 注册:2015/12/25 8:49:06
【VBA策略】自动新股申购源码共享  发帖心情 Post By:2017/5/16 22:50:39 [只看该作者]

您是否为了记住每天都要查看都有哪些新股需要发行而烦恼呢,是否会因为忘记申购发行的新股而懊恼呢?从现在开始就不用怕啦,金字塔已经全面支持股票的自动化操作了,有了这个强大的工具,为啥该机器去做的事情,还要人工的去搞呢。

该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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2017/12/14 10:04:14 [只看该作者]

这个代码,我测试了,没有成功,请问有人成功了吗?

 回到顶部
帅哥哟,离线,有人找我吗?
无为剑
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2017/12/14 11:49:51 [只看该作者]

不成功要看具体什么情况了。

你要具体调试一下后才能知晓


 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2017/12/14 12:38:25 [只看该作者]

我调试了,返回的MaxVol为0,可是我账户一直有持仓,是满足新股申购条件的,用这个不行,用别的软件申购可以的。

 回到顶部
帅哥哟,离线,有人找我吗?
无为剑
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2017/12/14 22:06:43 [只看该作者]

范例查询申购数量的参数填反了,已经修正


 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2017/12/29 8:15:13 [只看该作者]

call Order.PleaceOrderNewStock(Code,Market,Price,MaxVol,"")这一句中的maxVol也不对的,不是市场可以申购的最大数,而是本股票可以申购的最大数,也就是UpperLimit。

 回到顶部
帅哥哟,离线,有人找我吗?
hj007s
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:212 积分:0 威望:0 精华:0 注册:2017/10/26 16:40:54
  发帖心情 Post By:2018/1/5 14:11:39 [只看该作者]

这个范例哪可以加入申购时间?就是我决定申购的下单的时间

 回到顶部
帅哥哟,离线,有人找我吗?
无为剑
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:2437 积分:0 威望:0 精华:0 注册:2016/3/5 22:53:41
  发帖心情 Post By:2018/1/5 15:38:36 [只看该作者]

代码范例上有时间,范例是9:45开始申购,你可以自己改


 回到顶部