[請益] Excel VBA速度慢,考慮換語言請教

看板Programming作者 (JcWax)時間6年前 (2017/11/12 17:56), 編輯推噓1(1016)
留言17則, 5人參與, 6年前最新討論串1/1
最近寫了一包股票價格模型的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://www.ptt.cc/bbs/Programming/M.1510480594.A.A63.html

11/12 18:06, 6年前 , 1F
1 這看起來現有的資料表已經不能滿足你
11/12 18:06, 1F

11/12 18:06, 6年前 , 2F
11/12 18:06, 2F

11/12 22:42, 6年前 , 3F
vb.net用一用就好了
11/12 22:42, 3F

11/13 14:16, 6年前 , 4F
所以.NET跟python速度有明顯差異嗎?
11/13 14:16, 4F

11/13 14:37, 6年前 , 5F
一開始把所有的資料丟到array, 全部的運算
11/13 14:37, 5F

11/13 14:38, 6年前 , 6F
都用array去做, 結果寫回cell就行了
11/13 14:38, 6F

11/13 14:38, 6年前 , 7F
excel 存取cell很慢
11/13 14:38, 7F

11/13 15:10, 6年前 , 8F
VB.NET 會比較快(編譯語言)
11/13 15:10, 8F

11/13 15:11, 6年前 , 9F
python 除非用外部已寫好的(c,c++)的
11/13 15:11, 9F

11/13 15:11, 6年前 , 10F
算數函示庫。
11/13 15:11, 10F

11/13 16:07, 6年前 , 11F
開玩笑 python慢有名的
11/13 16:07, 11F

11/13 16:07, 6年前 , 12F
但是你這樣要換語言不是考慮快 是考慮
11/13 16:07, 12F

11/13 16:09, 6年前 , 13F
我先試試看全存array好了~感覺python不優
11/13 16:09, 13F

11/13 16:09, 6年前 , 14F
晚點回報一下效果如何~
11/13 16:09, 14F

11/13 16:11, 6年前 , 15F
熟悉 還有想不想寫
11/13 16:11, 15F

11/13 16:12, 6年前 , 16F
VB.NET是熟悉性 但是python當然較時髦
11/13 16:12, 16F

11/13 16:13, 6年前 , 17F
以速度來講 哪一個都會比VBA好
11/13 16:13, 17F
文章代碼(AID): #1Q21hIfZ (Programming)