以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 让VBA代码在某一点上停止运行一段时间 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=30185) |
-- 作者:bl6712 -- 发布时间:2012/10/29 17:07:28 -- 让VBA代码在某一点上停止运行一段时间 我做套利操作,两边同时发单之后,因为一段时间之后回单才会到本地,所以希望发单之后停一定时间然后查持仓数据,VBA应该如何实现,定时器可以么 还是需要用DO循环,
DO IF TIME()-TIME1>1 THEN 查持仓 ELSE MSGOUT "订单等待时间不足" END IF LOOP |
-- 作者:bl6712 -- 发布时间:2012/10/29 17:08:44 -- 还有就是如果用DO循环 势必会资源占用较大,而且两个时间相隔只能精确到秒,能不能有更好的方式来解决这个问题
|
-- 作者:王锋 -- 发布时间:2012/10/29 17:09:36 -- 使用定时器是比较好的方法,使用循环会导致程序停止响应 |
-- 作者:bl6712 -- 发布时间:2012/10/29 17:13:09 -- 我是在函数中间哦 定时器是这个功能么 不是你们告诉我说是每隔一定时间去刷新代码一遍么 有没有SLEEP之类的函数的
|
-- 作者:王锋 -- 发布时间:2012/10/29 17:15:20 -- SLEEP会造成系统停止响应,不建议使用,使用定时器是最好的方法。 金字塔在报单后,会有报单事件给你,你记下这个时间后,用1秒一次的定时器与当前时间对比,然后进行操作 |
-- 作者:bl6712 -- 发布时间:2012/10/29 17:17:21 -- 能否例子示范下简单示范一下,就从发单之后开始,多谢 |
-- 作者:王锋 -- 发布时间:2012/10/29 17:19:08 -- 问题太函数,无法给出具体例子,建议你先按照我说的方法自行在论坛找相应的范例,遇到具体的编程问题再来发帖求教 |
-- 作者:guotx2010 -- 发布时间:2012/10/29 17:19:55 -- 使用DateDiff函数比较时间,如: Ms=DateDiff("s",CDate(tOrderTime),Cdate(time)) 就是比较下单时间与当前时间的间隔秒数,在你的条件上加上秒数判断就可以实现你的需求了。 |
-- 作者:bl6712 -- 发布时间:2012/10/29 17:39:25 -- 解决了,谢谢,先建立一个SUB 然后回头调用call sleeponesecond Sub sleeponesecond |
-- 作者:adansmu -- 发布时间:2016/7/31 3:46:34 -- 请问这种方法是不是需要打断流程? 比方在需要暂停3秒的时候,设置一个100号计时器,然后end sub。将后续流程写入另一个sub next() 然后在计时器流程中写:“if id=100 then ...判断时间到了3秒,执行sub next()?在sub开头加入kill timer来结束这个计时器? |