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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 让VBA代码在某一点上停止运行一段时间

   

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


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

主题:让VBA代码在某一点上停止运行一段时间

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


加好友 发短信
等级:新手上路 帖子:6 积分:40 威望:0 精华:0 注册:2012/5/31 23:08:46
让VBA代码在某一点上停止运行一段时间  发帖心情 Post By:2012/10/29 17:07:28 [只看该作者]

我做套利操作,两边同时发单之后,因为一段时间之后回单才会到本地,所以希望发单之后停一定时间然后查持仓数据,VBA应该如何实现,定时器可以么  还是需要用DO循环,

 

 

DO

  IF TIME()-TIME1>1 THEN

      查持仓

 ELSE 

     MSGOUT  "订单等待时间不足"

END IF

 LOOP


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


加好友 发短信
等级:新手上路 帖子:6 积分:40 威望:0 精华:0 注册:2012/5/31 23:08:46
  发帖心情 Post By:2012/10/29 17:08:44 [只看该作者]

还有就是如果用DO循环 势必会资源占用较大,而且两个时间相隔只能精确到秒,能不能有更好的方式来解决这个问题

 


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/10/29 17:09:36 [只看该作者]

使用定时器是比较好的方法,使用循环会导致程序停止响应



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
bl6712
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:6 积分:40 威望:0 精华:0 注册:2012/5/31 23:08:46
  发帖心情 Post By:2012/10/29 17:13:09 [只看该作者]

我是在函数中间哦  定时器是这个功能么 不是你们告诉我说是每隔一定时间去刷新代码一遍么

有没有SLEEP之类的函数的

 


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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/10/29 17:15:20 [只看该作者]

SLEEP会造成系统停止响应,不建议使用,使用定时器是最好的方法。

金字塔在报单后,会有报单事件给你,你记下这个时间后,用1秒一次的定时器与当前时间对比,然后进行操作



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
bl6712
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:6 积分:40 威望:0 精华:0 注册:2012/5/31 23:08:46
  发帖心情 Post By:2012/10/29 17:17:21 [只看该作者]

能否例子示范下简单示范一下,就从发单之后开始,多谢

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/10/29 17:19:08 [只看该作者]

问题太函数,无法给出具体例子,建议你先按照我说的方法自行在论坛找相应的范例,遇到具体的编程问题再来发帖求教


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

使用DateDiff函数比较时间,如:

Ms=DateDiff("s",CDate(tOrderTime),Cdate(time))

就是比较下单时间与当前时间的间隔秒数,在你的条件上加上秒数判断就可以实现你的需求了。


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


加好友 发短信
等级:新手上路 帖子:6 积分:40 威望:0 精华:0 注册:2012/5/31 23:08:46
  发帖心情 Post By:2012/10/29 17:39:25 [只看该作者]

 解决了,谢谢,先建立一个SUB 然后回头调用call sleeponesecond

Sub sleeponesecond
SaveTime=TimeGetTime
While TimeGetTime<SaveTime+1000
Wend
End Sub


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


加好友 发短信
等级:新手上路 帖子:6 积分:0 威望:0 精华:0 注册:2016/6/25 22:41:33
  发帖心情 Post By:2016/7/31 3:46:34 [只看该作者]

请问这种方法是不是需要打断流程?
比方在需要暂停3秒的时候,设置一个100号计时器,然后end sub。将后续流程写入另一个sub next()
然后在计时器流程中写:“if id=100 then ...判断时间到了3秒,执行sub next()?在sub开头加入kill timer来结束这个计时器?


 回到顶部