作者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/m.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