日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

同花顺的数据格式总览(转帖)

發布時間:2023/11/27 生活经验 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 同花顺的数据格式总览(转帖) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文:http://enterprisebeing.spaces.live.com/Blog/cns!1D3811D0695B6887!172.entry

同花順采用了簡易的數據庫組織方式。在同花順的發布文件包中包括了SQLite 3的驅動,但不是很清楚同花順是如何使用這個驅動的。基本上,對同花順數據結構的解析不需要這么復雜,同花順發布文件包中的SQLite文件被核新程序員重新編譯過,不過就與SQLite Manager的簡單配合使用來看,并不影響對標準數據庫文件的讀取,當然,也不支持把同花順數據文件當成標準的數據庫文件進行讀取。

基本上,同花順的數據文件可以分為兩類,一類是history\下行情數據文件,另一類是finance\下財務數據文件。

在history\下的數據文件,通過子目錄名稱識別市場代碼,通過子目錄下的文件名稱識別交易標的(包括股票、期貨等等)。文件格式采用的是簡單格式,每個數據文件分別由:

  • 文件頭;
  • 列定義;
  • 內容;

三個部分組成。

在finance\下的數據文件,采用的是單文件容納所有品種數據的方式,因此采用的是復合格式,每個數據文件分別由:

  • 文件頭;
  • 列定義;
  • 填充區域;
  • 復合索引數據塊;
  • 內容;

五個部分組成。

文件頭

文件頭固定為16個字節,包括:

  • byte [6],6 字節長度,固定為 {0x68,0x64,0x31,0x2E, 0x30,0x00},用于識別數據文件類型;
  • dword,4 字節長度,記錄“內容”區域的記錄條數;
  • word,2 字節長度,記錄“內容”區域的開始位置;
  • word,2 字節長度,記錄“內容”區域每條記錄的字節長度;
  • word,2字節長度,記錄“列定義”的列個數;

列定義

列定義固定為4 個字節一組,標示一個列,第4 個字節為列內容的字節長度,由于是使用1 個字節表示,因此數據文件每列的最大長度為255個字節。

填充區域

在finance\目錄下的數據文件,采用的是包括索引的復合格式存儲。在列定義和符合索引數據塊之間存在著一個未使用的填充區域,填充區域的長度總是列定義數量的兩倍,即文件頭偏移 0x0E 處 WORD 類型 * 2。

就目前所知,這一區域基本上都使用 0x00 填充,可能是保留未來使用。

復合索引數據塊

在finance\目錄下的數據文件,文件的“內容”區域并不包含記錄所隸屬的證券品種,而是把此內容放置在一個單獨的索引區域。索引區的開始位置 = 0x10 + 0x04 * 列定義數量 + 0x02 * 列定義數量。

復合索引數據塊由三個部分組成:

  • word,2 個字節,記錄本索引數據區域的字節長度;
  • word,2 個字節,記錄本索引數據區域中所包含的索引的條數;
  • byte[],不定長的索引記錄,每條索引記錄為18個字節長度,因此總長度 = 索引條數 * 0x12;

索引

每條索引的長度為18個字節,格式分別為:

  • byte,1 字節長度,標識證券品種類型,目前已知的包括3 類4 種標示,分別是:0x10,國內證券;0x48和0x50,港股;0x4A,基金。在“權息資料”中,使用0x50標示港股,在“現金流量”中,使用0x48標示港股,不知道是設計的 bug,還是存在其他用意;
  • byte [9],9 字節長度,標識交易品種的符號,目前已知是ASCII格式,從整個文件的多字節字符處理來看,文件的整體字符編碼應該是GB2312編碼,因此這一部分原始的處理應該是使用GB2312編碼通讀;
  • word,2 字節長度,標識隸屬此交易品種的記錄區域中實際上未使用的記錄條數,有關的組織方式下面再詳細解釋;
  • dword,4 字節長度,標識隸屬于此交易品種的記錄的開始下標,注意是記錄在數據文件中從0 開始排列的順序號,而不是文件的偏移地址,其實際的偏移地址 = “內容”區域的開始地址 + 此開始下標 * 記錄的長度;
  • word,2 個字節長度,標識隸屬于此交易品種的記錄的條數;

總體來說,存在索引的文件其實際的完整數據由兩個部分組成,一個就是索引數據區,另一個就是記錄內容數據區。其與索引對應的記錄內容數據采取分塊的存儲模式,即,每一個交易品種總是使用一個固定的、連續的內容數據區存儲相對應的數據,因此在實際的數據存儲過程中,存在著并未被實際使用的“空余”記錄的數據區。

復合文件通過兩個方法來識別有效和無效的記錄,首先,索引記錄其所使用的數據區總容納的記錄條數和未被使用的、無效的記錄條數,兩者相減可知被實際使用的記錄條數;其次,復合文件的記錄總是使用一個類型為Int32的4 字節用于標識時間的列開始,如果這個列的值為<=0,則表明這是無效的數據記錄。

內容

數據內容開始的地址偏移在文件頭0x0A處的一個word類型的2字節數據指示,其有效長度 = 列長度 * 記錄條數。

?

附錄
同花順的數據文件讀取器和支持類庫在 https://sourceforge.net/projects/ociathena/

轉載于:https://www.cnblogs.com/limitplus/archive/2010/04/09/1708033.html

總結

以上是生活随笔為你收集整理的同花顺的数据格式总览(转帖)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。