標題:
[轉貼]
Re: (更版前網址的發問文) 如何將Excel檔自動轉存成CSV檔?
[打印本頁]
作者:
luhpro
時間:
2010-5-9 11:14
標題:
Re: (更版前網址的發問文) 如何將Excel檔自動轉存成CSV檔?
yuan797 說到 :
> 請問:我想建立"期貨技術分析即時盤".要如何將期貨DDE---Excel檔自動轉存成CSV檔?
(餘文請自行參看網址 : http://gb.twbts.com/index.php?topic=13260.0 ,因文長此處請恕不再引用原文)
我大概了解你所說的存取方式,概述如下 :
1. TWSTMIN.xls 的 =YES|DQ!OOO.OOO 等儲存格的內容會被 期貨DDE看盤軟體 因盤價而隨時修改.
2. 貴方希望 Excel 程式能在 1 ~ 3 秒內將 4 個CSV的檔案產生出來.
3. 技術分析軟體 會自動抓取CSV檔作處理並刪除已處理過的檔案.
估且先不談此VBA程式如何設計,上述的方式有一些地方你可能需要先釐清一下:
1. 期貨盤並不一定是 "每一秒只有一盤" 也就是你上述的方式可能 TXF 是抓到該秒內的第 1 盤資料, 但 FXF 卻是抓到該秒內 1~ 5 盤的資料,舉例如下:
(這邊還有一點無法確認就是你用的 期貨DDE看盤軟體 其 開收盤價 與 最高低價 是以每一秒鐘(每一分鐘 或 每一小時) 亦或是 每一天 為計算區間?
如果是以 每一天 為計算區間, 那麼建議 開盤價、漲跌、最高價 與 最低價 盤中都不要轉, 因為要轉的資料越多每一輪檔案產生的總時間就會越長.)
(以下假設是以每一秒鐘為計算區間)
代碼
時間 收盤價 漲跌 總量(累積) 開盤價 最高價 最低價
TXF
10:47:47 8133 174 46470 8133 8133 8133 <---轉檔時抓到這一筆
10:47:47 8135 176 46495 8133 8135 8133
10:47:47 8138 179 46512 8133 8138 8133
10:47:47 8131 171 46518 8133 8138 8131
10:47:47 8128 169 46534 8133 8138 8128
中間抓取並產生了 MXF 與 EXF 的檔案
FXF
10:47:47 838.4 20.4 3025 838.4 838.4 838.4
10:47:47 838.6 20.6 3053 838.4 838.6 838.4
10:47:47 838.9 20.9 3059 838.4 838.9 838.4
10:47:47 837.7 19.7 3069 838.4 838.9 837.7
10:47:47 838.0 20.0 3072 838.4 838.9 837.7 <---轉檔時抓到這一筆
10:47:47 838.9 20.9 3075 838.4 838.9 837.7
也就是各商品盤價的計算時間基準可能並不一致.
2. 假設以 每一秒 產生一輪 4 個檔案來看, 期貨盤 從早上 08:45 ~ 下午 13:45 收盤為止, 共需轉檔 (14-9)*60*60 = 18,000 次,
也就是硬碟上同一個地方每一天至少要讀寫 18,000 次, 這對硬碟壽命是會有滿大的影響的,
如果可以建議考慮找找看是否能直接在 "記憶體" 層面上就把資料傳遞過去, 當然這要看 期貨DDE看盤軟體 與 技術分析軟體 是否能支援囉.
3. 在步驟 2. 與 3. 可能會發生 :
a. 技術分析軟體 還沒來得及刪除舊檔案 Excel 程式 就在產生新檔案, 也就是可能會發生 檔案共享違規 的錯誤.
b. Excel 程式 還沒來得及產生新檔案 技術分析軟體 就又要抓新資料了, 也就是 技術分析軟體 這一輪抓不到資料, 變成要等下一輪才能再重抓了.
亦即 "讀取順序交錯" 這類 "同步" 方面的問題, 這也是可能必須克服的地方.
附檔是我所想的程式,提供給你參考:
[attach]148[/attach]
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)