期貨3-6轉折、盤後籌碼資料自動抓取檔案更新版
之前文章被分類到程式交易區...我只是資料紀錄...還沒到程式交易的地步...之前有分享過幾個相關檔案:
http://coco-in.net/forum.php?mod=viewthread&tid=11056&page=1#pid159663
http://coco-in.net/forum.php?mod=viewthread&tid=11610&page=1#pid1715
http://coco-in.net/thread-11610-1-1.html
有的人使用好像有問題,我也因工作忙碌一段時間沒上來了
這檔案我自己在用時發現嚴重問題點:
檔資料量越來越大時,excel計算量會很大,變得很慢,慢到....想使用: "道門上乘武學: 歸然八火"
http://www.youtube.com/watch?v=NSARi6u9QGQ
我以前的作法是把舊的籌碼資料刪除在手動修改一下讓巨集可以正常work,我就是很懶才想說花時間搞自動更新,現在又因為計算量慢又搞得很麻煩....所以昨天總算有點時間作一下改良,我是用的最笨程式邏輯來做到VBA自動更新,簡單說就是程式碼複雜點,不過不管能達到效果就好,沒時間思考太多....
要避免計算量過大,除非記憶體夠大,本人只有2G...因此無法避免,只要籌碼資料累積約2個月份,excel明顯變慢。基本上我不知道如何減輕計算量...所以現在只能改成單獨月份做紀錄,不要把所有歷史資料放在同一個檔案。
而且也改良了每個新月份或是任何妳想開始紀錄的那天,直接開啟"期權盤後籌碼資料表格" 再用VBA更新即可,然後另存新檔,此後用另存的檔案一直更新到結算。新月份再開啟原本表格直接在更新即可....
籌碼資料與平均成本更新這兩頁,完全不要變更,如果你想VBA的話,那請自行修改。
第一頁全年度紀錄表: 只要輸入開高低收即可,其他是一些參考數據、3-6轉折等;新年度只要自行修改日期即可
第二頁盤後籌碼資料: 直接執行巨集更新籌碼資料即可
第三頁平均成本計算: 直接執行巨集更新即可,說平均成本是騙人的,沒參考價值,參考多空相對關係就好了
第四頁三關價參考策略: 供參考,自己是沒再參考啦,只是把之前分享過的都整合在一起
程式碼很囉唆沒時間優化,多數是用錄製巨集產生的。
這次改良版,不論你是何時下載此檔案,都可以使用,因為都從你開始下載資料那天起開始計算平均。
需注意,新檔案使用,籌碼資料區累積到2天的資料才能更新平均成本,有兩天的資料能比較....所以第一次使用新檔案更新籌碼資料,須等到下一個交易在更新完籌碼資料後,才能到平均成本頁面更新平均成本
下載後以此為表準表格,有資料更新另存新檔,新月份開始在開啟表準表格更新後再另存新檔....
新版我測試3天了,都正常,之後應該都沒問題...
補充內容 (12-5-30 00:28):
修改bug,請參考第12樓程式碼 太棒了!!
多一招可以學學看!
{:4_87:} 謝謝大大分享~~~~~~~~~~ 真是好用的工具,謝謝囉 真是好用的工具謝謝{:4_82:} {:4_82:}真是好用的工具,謝謝大大分享 謝謝大大分享~
{:4_113:} 又多一項工具使用謝謝 感謝大大無私分享~~
肛溫 剛大概看了一下eclipse大的codes,好像很多都是EXCEL錄製的codes,
可以稍微簡化一下,這樣可能會跑得比較有效率一點。 都沒人發現問題嗎?? 空白表格計算有bug...導致成本計算有問題,請自行開啟VBA 在第二個模組補上以下程式碼:
msg = MsgBox("!!請確認已先更新籌碼資料!!", 1 + 48, "更新確認")==> 從此列以下插入以下程式碼:
If j = 0 Then
Range("N19").Select
ActiveCell.FormulaR1C1 = "=籌碼資料!RC[-3]"
Range("N20").Select
ActiveCell.FormulaR1C1 = "=籌碼資料!RC[-3]"
Range("N21").Select
ActiveCell.FormulaR1C1 = "=籌碼資料!RC[-3]"
Range("N19:N21").Select
Selection.AutoFill Destination:=Range("N19:Q21"), Type:=xlFillDefault
Range("N19:Q21").Select
Range("P19:Q21").Select
Selection.Interior.ColorIndex = 35
Range("R19").Select
ActiveCell.FormulaR1C1 = "=籌碼資料!RC[-3]"
Range("R19").Select
Selection.AutoFill Destination:=Range("R19:R21"), Type:=xlFillDefault
Range("R19:R21").Select
Range("R19:R21").Select
Selection.AutoFill Destination:=Range("R19:S21"), Type:=xlFillDefault
Range("R19:S21").Select
Range("O19").Select
Sheets("平均成本估算").Select
End If
rockwell 發表於 12-5-24 16:30 static/image/common/back.gif
剛大概看了一下eclipse大的codes,好像很多都是EXCEL錄製的codes,
可以稍微簡化一下,這樣可能會跑得比較 ...
excel的函數及語法實在不習慣也不熟悉,用錄製的比較快....
不過應該還好吧...耗最多時間的就是連上網下載資料,其餘動作只是刪除不必要的資料、上色、複製貼上而已...
如果計算公式寫在vba裡而不是寫在cell裡,應該可以減輕計算量,只是這樣我要每個cell都寫到vba....想過用迴圈...不過沒時間思考....記錄資料而已,不是程式設計....
eclipse_fuzzy 發表於 12-5-30 00:36 static/image/common/back.gif
excel的函數及語法實在不習慣也不熟悉,用錄製的比較快....
不過應該還好吧...耗最多時間的就是連上網下 ...
沒有別的意思啦~~~ 經濟第一啦!!
在沒有追求時效的程式上,像大大的想法是對的。
錄製真的超方便的,尤其是用在文書處理上。
謝謝大大分享~~~~~~~~~~{:4_81:} 感謝版大的分享~{:4_161:}