金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3446|回复: 13

金字塔VBA大运算量时候没用满CPU负荷

[复制链接]

55

主题

179

帖子

179

积分

等级: 免费版

注册:
2021-11-18
曾用名:
发表于 2021-12-27 15:01 | 显示全部楼层 |阅读模式
我用VBA写了个监控价格变化以及对价格进行一些运算处理,大概运作一次要2分钟作用。

这时候,金字塔软件是不响应的,应该是在计算,可是计算时候,我在资源管理器上看到的金字塔软件的CPU使用就0.2%,还不如我同时开着的通达信。

想问下如果大计算量,那种类似不响应的情况是正常吗?有没有什么参数可以调整,让金字塔使用更高效的CPU计算啊?我是AMD8核16线程,但是发现单一线程都没有到100%的。
回复

使用道具 举报

1

主题

843

帖子

853

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-12-27 15:08 | 显示全部楼层
vba没法使用多核
回复

使用道具 举报

9

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2021-5-29
曾用名:
发表于 2021-12-27 20:04 | 显示全部楼层
运算过程中使用Application.PeekAndPump 来进行异步运算,就可以避免失去响应问题!
回复

使用道具 举报

55

主题

179

帖子

179

积分

等级: 免费版

注册:
2021-11-18
曾用名:
 楼主| 发表于 2021-12-27 21:37 | 显示全部楼层
软件不响应目前对我影响不大,目前是计算一个品种大概需要6~8秒钟,而我要连续监控30个品种,VBA里面就按顺序执行,总共要运行3分钟时间

这30个品种,我想不知能否有办法让金字塔并行运算,因为这30个品种之间没有关系,只是共用一个函数而已,函数也是我自己写的
回复

使用道具 举报

55

主题

179

帖子

179

积分

等级: 免费版

注册:
2021-11-18
曾用名:
 楼主| 发表于 2021-12-27 21:39 | 显示全部楼层
onlyfly 发表于 2021-12-27 20:04
运算过程中使用Application.PeekAndPump 来进行异步运算,就可以避免失去响应问题!

具体怎么异步运算吗?我看文档写的例子也不明白是怎么用的?
能给个简要的例子吗?
谢谢!
回复

使用道具 举报

1

主题

843

帖子

853

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-12-27 23:39 | 显示全部楼层
这个异步运算并不是多核,只是在例如FOR循环等大量计算时可以避免无响应,对于执行速度没有帮助
回复

使用道具 举报

55

主题

179

帖子

179

积分

等级: 免费版

注册:
2021-11-18
曾用名:
 楼主| 发表于 2021-12-28 10:00 | 显示全部楼层
我现在一个品种需要6~8秒,大概监控30个品种,就3分钟内,金字塔软件就没有响应了。
想问下,在这个没响应的时间段内,金字塔的数据接收会异常嘛?是否这3分钟的数据就漏掉了?

想问如果是这样的需求,有什么办法能用上金字塔的多线程?是不是使用“本地预警”功能?但本地预警可以实现自动下单交易嘛?如果要自动化,需要是哪个功能啊?我感觉如果用单线程、监控一遍那么慢,单线程做法可能没法使用啊

补充内容 (2021-12-28 10:08):
我的程序是目前是是用VBA语法自定义计算(不过都是一些for的循环,没有很复杂的语句),可以被本地预警调用嘛?

补充内容 (2021-12-28 10:15):
由于现在算一次,要3分多钟,而且程序几乎处于无法响应状态,我担心接收数据不完整,就没法让他持续不断的运行。
我想找个持续不断运行的方法,所以想问多核是不是个思路
回复

使用道具 举报

1

主题

843

帖子

853

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-12-28 13:41 | 显示全部楼层
你要么想法来优化VBA的计算,要么就改成后台的PEL下单,PEL的后台程序化可以多核并行执行,也可以直接下单交易的。
回复

使用道具 举报

55

主题

179

帖子

179

积分

等级: 免费版

注册:
2021-11-18
曾用名:
 楼主| 发表于 2021-12-28 14:48 | 显示全部楼层
技术015 发表于 2021-12-28 13:41
你要么想法来优化VBA的计算,要么就改成后台的PEL下单,PEL的后台程序化可以多核并行执行,也可以直接下单 ...

那金字塔不响应期间,数据接收和完整性是不是会影响到的啊?有办法自动调整吗?
回复

使用道具 举报

55

主题

179

帖子

179

积分

等级: 免费版

注册:
2021-11-18
曾用名:
 楼主| 发表于 2021-12-28 14:50 | 显示全部楼层
羊洋 发表于 2021-12-28 14:48
那金字塔不响应期间,数据接收和完整性是不是会影响到的啊?有办法自动调整吗?

应该说是,系统会自动补充数据吗?因为我并不知道不响应期间,到底数据是否完整
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 12:07 , Processed in 0.263763 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表