Board logo

標題: [轉貼] 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/)