❶ 求大神C#編程:打開並讀取格式為「.day」的文件!!!求助!!!
這是個二進制文件,用低級函數讀寫。
建議先用ultraedit打開,把裡面的結構搞清楚,例如那一段是股票代號,哪一段是名稱,哪一段價格。
第二步:讀寫流。讀寫二進制文件用System.IO.BinaryReader和System.IO.BinaryWriter類;
你同樣要分析數據格式。特別day文件里的日期,我是老早搞過,現在都忘了。裡面的日期好像還要換算。day文件里存儲的是一段時期的每天價格。這個好像很好分析的。原來用delphi編過,剛才找沒找到,可能被老婆給刪除了。
這個給你參考:
一、數據文件和數據結構:
大智慧數據文件和數據結構:(假設大智慧股票行情軟體安裝在D:dzh目錄下)
上海日線存儲路徑為:D:dzhDATASHaseDay,文件擴展名為:.day
上海周線存儲路徑為:D:dzhDATASHaseweek,文件擴展名為: .wek
上海月線存儲路徑為:D:dzhDATASHasemonth,文件擴展名為: .mnt
深圳日線存儲路徑為:D:dzhDATASZnseDay
深圳周線存儲路徑為:D:dzhDATASZnseweek
深圳月線存儲路徑為:D:dzhDATASZnsemonth
周線,月線格式與日線格式一致.
以深發展日線為例:
1A76:0100 D6 CD 2F 01 52 07 01 00-52 07 01 00 52 07 01 00
1A76:0110 52 07 01 00 86 0F 00 00-4D 02 00 00 00 00 00 00
1A76:0120 00 00 00 00 00 00 00 00-D7 CD 2F 01 60 03 01 00
1A76:0130 60 03 01 00 60 03 01 00-60 03 01 00 82 05 00 00
1A76:0140 D4 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
每一條記錄的長度為40位元組:
1-4位元組為日期,D6 CD 2F 01轉換為十進制是:19910102
5-8位元組=開盤價(元)*1000
9-12位元組=最高價(元)*1000
13-16位元組=最低價(元)*1000
17-20位元組=收盤價(元)*1000
21-24位元組=成交金額(元)/1000
25-28位元組=成交量(手)
其餘12位元組未使用
實現步驟:
1、先定義日線數據結構數組
2、再以實際記錄數分配動態數組空間
3、然後把數據讀入相應數組中
日線數據放在:%app_dir%\DATA\SHase\Day(上證A股) 以及 %app_dir%\DATA\SZnse\Day(深圳A股)
#pragma once
struct DZH5Day
{
unsigned long date;//date的格式:20070423
unsigned long open;//開盤價
unsigned long high;//最高價
unsigned long low;//最低價
unsigned long close;//收盤價
unsigned long moneysum;//成交金額
unsigned long turnover;//成交數量
char unused[12];//保留
};
整個結構共40個位元組,讀者可以查看所有的日線文件,大小肯定是40的倍數
這樣很容易讀出相應的數據:
如:
FILE* pFile = fopen("600001.day", "rb");
if (NULL != pFile)
{
while(!feof(pFile))
{
DZH5Day dayK;
fread(&dayK, sizeof(DZH5Day), 1, pFile);
......
}
}
-------------------------------------------------------------------------------------------------------
❷ 通達信.day文件的數據格式是什麼樣的
day文件是股票軟體自身存放的每日均線數據,這是個數據文件,不能被直接打開的 其它股票軟體要使用這個數據還要進行一次轉換工作
❸ 如何使用EXCEL讀取通達信股票日線數據
定量分析的第一步,是獲取數據。 獲取股票歷史行情數據最方便的途徑,就是直接讀取股票行情軟體留在你電腦中的日線數據文件。 但如果不是程序員,電腦里一般不會有VB、VC之類的編程語言。 其實,大家的電腦中一般都有OFFICE。OFFICE中的EXCEL自帶了一個VBA語言的編程環境。功能也很強大。 我用EXCEL里的VBA編寫了一段代碼,讀取通達信股票行情軟體的日線文件。已經測試通過。 代碼如下。與愛好定量分析的朋友分享。 TypeMyType a1AsLong'標示碼 a2AsLong'日期 a3AsSingle'開盤價 a4AsSingle'最高價 a5AsSingle'最低價 a6AsSingle'收盤價 a7AsSingle'成交金額 a8AsLong'成交量 EndType Sub按鈕1_Click() DimFile2AsInteger DimbAsMyType File1=FreeFile Opensh600000.dayForBinaryAccessReadAs#File1i=1DoWhileNotEOF(File1) Get#File1,,b Cells(i,1)=b.a1 Cells(i,2)=b.a2 Cells(i,3)=b.a3 Cells(i,4)=b.a4 Cells(i,5)=b.a5 Cells(i,6)=b.a6
❹ 我下載了一些股票的歷史行情數據,是*.Day格式的,請問怎樣打開,謝謝!
可以試一下 阿寶,一次轉換 ok
搜索「股票數據轉換寶」