Board logo

標題: [發問] 關於EXCEL寫指標的疑問 [打印本頁]

作者: daniel5168    時間: 2015-8-4 15:50     標題: 關於EXCEL寫指標的疑問

我有用EXCEL把台指期歷史資料做一個想策略回測的檔案,其中有許多指標,由於不懂VBA當時也不知道VBA都是用網路搜尋EXCEL函數編寫而成,但我懷疑一直 增加的指標公式以及不段增加的歷史數據導致我的EXCEL檔開啟越來越慢,且有當機情形,請教各位先進那些指標可以用VBA解決嗎?亦或是有甚麼解決方法
?因為我編寫指標只是策略的參考,後面會寫參考指標條件做出買賣的損益回測,檔案會越來越大
[attach]21644[/attach]
[attach]21645[/attach]
有勞各位先進給予指點
作者: lpk187    時間: 2015-8-4 16:43

回復 1# daniel5168


   一般的程式會把執行檔和資料檔分開,資料檔視需求分為幾個資料庫,
當程式執行時會把需要的資料由資料庫中叫出來使用,有新資料時則存到資料庫中
若用VBA寫程式,最好分成執行檔和資料庫,尤其像你這種每日資料非常龐大的資料若不分開的話,一段時日過去一定會很慢的
作者: c_c_lai    時間: 2015-8-5 07:06

回復 1# daniel5168
正確地應用 VBA 編寫交易策略,在常理上是與檔案大小無多大關係的,
EXCEL檔開啟越來越慢,且有當機情形,通常多為 EXCEL 本身
載入筆數內容愈積愈多以致造成開檔延遲、或是連接不當而產生
不正常狀況。
作者: Farnsworth    時間: 2015-8-5 17:29

回復 1# daniel5168

這個只能用VBA程序式做,如果用函數表達,以後你的資料越來越大,到時想死的心都有。再有你的電腦配置要好,做工作會事半功倍。
作者: daniel5168    時間: 2015-8-5 21:11

回復 4# Farnsworth

是真的被您說中,我會到這裡也是因為我遇到瓶頸,光是一個刪除欄位動作要等上5分鐘,真有種想砸電腦的衝動,是故來這學習,但幾天下來發現我大概太笨了,毫無頭緒,VBA好像不好學,我都是用其他人寫的VBA拿來東改西改,改錯了就再問,沒得改的我就沒輒
作者: daniel5168    時間: 2015-8-5 21:21

回復 2# lpk187


    我弄這個就是為了能把操作的想法用程式幫我做回測並計算勝率,卷商的看盤軟體都沒這功能要不然就必須使用付費版本,想節省沒想到要用EXCEL做這工作還真複雜,偏偏我又找步道可以用DDE位資料給飛狐交易師的方法,只好硬著頭皮做功課學EXCEL VBA,突然又蹦出一個資料庫,我真的暈了,敢問我該如何做學習可以比較不會像無頭蒼蠅亂亂鑽
作者: daniel5168    時間: 2015-8-5 21:24

回復 3# c_c_lai


我在開啟這檔時,去看系統管理員,EXCEL居然吃到五六百MB記憶體,曾經有一次我不知道怎麼弄得居然吃掉750MB左右記憶體
作者: c_c_lai    時間: 2015-8-6 07:54

回復 7# daniel5168
這絕對是匯入資料累績量愈來愈多、以及你的 VBA 程式撰寫是否得體所造成的,
譬如:事件驅動程式碼內容之正確處理、抑或是產生不必要之過濾區塊使之不斷地
在空轉執行;再者主程式內的流程是否合理分派與運用等等,皆會深遠引響
整個體系邏輯性的合理運作。
作者: daniel5168    時間: 2015-8-6 12:14

回復 8# c_c_lai


    是的!!因為裡面除了開高低收四價及成交量外,幾乎每一個欄位都是函數計算,沒有用VBA組成,隨著數據的增加以及指標的加多,整個EXCEL要執行可以說是電腦沉重的負擔,如果說指標編寫改用VBA資料數據增加時再執行VBA去演算這樣是不是會讓EXCEL不這麼DELAY
作者: joey0415    時間: 2015-8-6 14:20

回復 6# daniel5168

你的是日資料,三十年也沒有很多,多的是一萬多個格子與你後面二三十種函數指標造成的,
資料從日資料庫撈出來,後面用vba來計算指標後,最後的格子貼上的只有值而不是函數,就不會這麼慢了
這種過程有用excel玩股票的人,必經的過程
這種不用飛狐也不用dde,你要你寫的好也是可以算出來你要的東西,但是如果要回測的話,去找專業的軟體來回測會比較省事
作者: daniel5168    時間: 2015-8-7 08:45

回復 10# joey0415

還有分鐘的喔我只是以日線做編輯一段落就複製成分鐘的,所以那些指標的函數造成系統很大的負擔
作者: joey0415    時間: 2015-8-7 14:15

回復 11# daniel5168

如果要回測分k且要跑指標只有兩個方式

第一種:資料放進資料庫,每次撈出你要的資料長度透過運算,取出計算值,

第二種:直接用mc或amibroker等專業軟體寫,你就不用花心思想指標的事與進出場點




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)