以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  关于vba的重启机制  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=78831)

--  作者:wukong_32
--  发布时间:2015/5/20 21:36:37
--  关于vba的重启机制

最近遇到一个问题:

就是在中午11:30收盘后至13:00开盘前,vba程序“偶尔”会死掉(不在执行了,但并不报错),重新手工重启vba后正常;

目前正在使用debugfile做一些记录,准备定位错误;

 

上面问题是偶尔出现的,没有办法测试。

 

我的问题是:

1、我是个vb初学者,请问金字塔中的vba程序,能否实现“自动”重启?比如,某个时间点;

2、我查到下面的帖子,

http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=53828&authorid=0&page=0&star=1

使用定时killtimer,然后重新settimer,这种重新定义定时器,对已经死掉的sub调用,是否能起到重启的作用?

 

非常感谢!

 

 


--  作者:王锋
--  发布时间:2015/5/20 21:58:34
--  
自己是没办法做这些的,通常VBA死掉的原因是你的VBA程序自身的问题,比如对象数据加载没有释放,错误的调用了系统的对象,造成不断错误积累最后导致VBA引擎最终停止工作
--  作者:wukong_32
--  发布时间:2015/5/20 22:15:22
--  

说起数据加载释放,程序涨有如下语句:

 

Formula_1=MarketData.stkindi(...)

value_1=Formula_1.GetBufData(..., index)

其中,GetBufData中的index取了历史数据(当前时点往前取数);

 

请问,是否需要释放?

假如需要的话,是使用DestoryHistoryData吗?

 

非常感谢这么晚还答复;

[此贴子已经被作者于2015/5/20 22:16:39编辑过]

--  作者:wukong_32
--  发布时间:2015/5/20 22:43:24
--  

stkindi中,使用了公式系统中的“技术指标”中的公式;

我看您在下面这个帖子的答复中,不建议这么做?是否因为效率问题?

http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=57119

[此贴子已经被作者于2015/5/20 22:44:51编辑过]

--  作者:王锋
--  发布时间:2015/5/22 23:07:31
--  

如果公式中你频繁大量的调用功能计算,也是有可能导致问题的,建议你采用排除法,减少公式计算的数据量,或者排查一下公式里是不是用了某些东西了。