作者wsoar (JcWax)
看板Programming
标题[请益] Excel VBA速度慢,考虑换语言请教
时间Sun Nov 12 17:56:30 2017
最近写了一包股票价格模型的Excel + VBA但发现跑一次需要一个钟头
本来是打算看有无机会做成Real Time介面,但跑一次一小时也无从real time起了
目前想了几个方向:
1. 改用资料库+VBA而不是Excel+VBA
2. 是电脑速度问题所以把电脑从intel i5 换成i7
3. 是语言问题所以是否该学python之类的
请大家协助看一下以下的code看哪方向比较实际?
=======以下是我的code大致结构(不是完整code,写个感觉让高手看一下)========
A. 先去钜亨网爬虫出50支股票最新价格
for i = 0 to 49
CreateObject("InternetExplorer.Application")
ObjIE(i).Document.getElementsBytagname("td")
next i
B. 双层回圈计算最佳移动平均
for i = 0 to 49
for j = 0 to 145
先算50种股票股票10,12,14...300日平均线
array MVA(i,j)储存50种股票的146种移动平均
类似用最小平方法算出哪个移动平均线最准
储存50种各别的移动平均线
next j
next i
C. 把50支股票的历史价格拉出来(2008-现在),再跑线性回归算模型
for i = 0 to 49
预测股价 = WorksheetFunction.LinEst(
Y=实际收盘价
X=MVA(i) , 大盘价格 , 其他二个变数
)
next i
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.68.48.186
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1510480594.A.A63.html
1F:推 chuegou: 1 这看起来现有的资料表已经不能满足你 111.243.50.102 11/12 18:06
2F:→ chuegou: 了 111.243.50.102 11/12 18:06
3F:→ MOONRAKER: vb.net用一用就好了 218.161.46.90 11/12 22:42
4F:→ wsoar: 所以.NET跟python速度有明显差异吗?223.136.124.104 11/13 14:16
5F:→ niwat: 一开始把所有的资料丢到array, 全部的运算137.132.176.189 11/13 14:37
6F:→ niwat: 都用array去做, 结果写回cell就行了137.132.176.189 11/13 14:38
7F:→ niwat: excel 存取cell很慢137.132.176.189 11/13 14:38
8F:→ cancelpc: VB.NET 会比较快(编译语言) 36.227.17.155 11/13 15:10
9F:→ cancelpc: python 除非用外部已写好的(c,c++)的 36.227.17.155 11/13 15:11
10F:→ cancelpc: 算数函示库。 36.227.17.155 11/13 15:11
11F:→ MOONRAKER: 开玩笑 python慢有名的 220.135.118.23 11/13 16:07
12F:→ MOONRAKER: 但是你这样要换语言不是考虑快 是考虑 220.135.118.23 11/13 16:07
13F:→ wsoar: 我先试试看全存array好了~感觉python不优 114.136.29.205 11/13 16:09
14F:→ wsoar: 晚点回报一下效果如何~ 114.136.29.205 11/13 16:09
15F:→ MOONRAKER: 熟悉 还有想不想写 220.135.118.23 11/13 16:11
16F:→ MOONRAKER: VB.NET是熟悉性 但是python当然较时髦 220.135.118.23 11/13 16:12
17F:→ MOONRAKER: 以速度来讲 哪一个都会比VBA好 220.135.118.23 11/13 16:13