以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  VBA能否多线程编程?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=155712)

--  作者:道飞
--  发布时间:2017/7/5 13:22:04
--  VBA能否多线程编程?

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20161019231852.jpg
图片点击可在新窗口打开查看

--  作者:王锋
--  发布时间:2017/7/5 13:47:23
--  

多线程编程不是你想象的那么简单,需要涉及到各个线程的独立运行,中间还要对共享的内存和操作做好保护防止冲突,VBA作为弱语言主要目标客户是对编程不是那么精通的用户,因此无法提供多线程的操作,如果你有这种需求,你可以考虑在C++下用金字塔提供的接口进行多线程编程。

 

从你的截图上来看,效率不高不全是多线程的问题,初步判断你的代码应该是大量的调用了Stkinidi函数,如果你的PEL公式编写的没有效率的话,再多的线程也是无用的,建议你从下面2点来解决问题:

1,将PEL公式修改为序列模式运行,因为序列模式本身就是多线程工作状态。

2,参考 有关PEL编程时,若干注意效率问题的汇总,用户必看 http://www.weistock.com/bbs/dispbbs.asp?boardid=16&Id=74267 教程,优化PEL公式代码。

3,如果你的策略只是作为选股使用,Stkindi函数有个参数是可以控制计算的数据量,尽量少的使用少的数据也会大大提升运行速度


--  作者:无所畏惧
--  发布时间:2017/7/5 15:29:12
--  
比如我在15分钟周期要使用日MACD,要使用年线,要使用上市天数,要使用本月的最低价,来过滤,不使用引用怎么行啊
--  作者:王锋
--  发布时间:2017/7/5 16:00:05
--  

请认真看一下上面帖子我给您看的链接,里面有解决方案

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20161019231852.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/7/5 16:00:14编辑过]