数据格式

来源:互联网 发布:java 重定向 编辑:程序博客网 时间:2024/05/01 11:51

概念板块数据结构

    文件存储路径:tdx\T0002\hq_cache\block.dat
    
文件存储格式:
        
文件头:384字节
        
板块个数:2字节
        
各板块数据存储结构(紧跟板块数目依次存放)
            
每个板块占据的存储空间为2812个字节,可最多包含399个个股
                
板块名称:9字节
                
该板块包含的个股个数:2字节
                
板块类别:2字节
                
该板块下个股代码列表(连续存放,直到代码为空)
                    
个股代码:7字节

自定义板块存储数据结

板块名称文件:\tdx\T0002\block.cfg

    存储结构:

              空白:4字节

              板块名称:10字节字符串

              板块简码:5字节字符串

自定义的各板块个股存储

          文件名:tdx\T0002\blocknew\   自定义板块简码(与block.cfg文件中的各板块简码同)

      数据存储结构:

             个股分隔符:2字节

             个股属性代码:1字节(1:表示上证;0:表示深证)

             个股名称:6字节

 

K线数据格式

 

struct TdxRecord {     // K线数据结构

  unsigned int date;   // e.g. 20100304

  int _open;           // *0.01 开盘价

  int _high;           // *0.01 最高价

  int _low;            // *0.01 最低价

  int _close;          // *0.01 收盘价

  float amount;        // 成交额

  int vol;             // 成交量()

  int reserved;       

 

  float open(){  return 0.01*_open; }

  float high(){  return 0.01*_high; }

  float low(){   return _low*0.01; }

  float close(){ return _close*0.01; }

};

日记文件数据格式

 

 

struct TdxDiary_Idx {

  int   id;        // 0xffffffff = deleted, auto incr

  char  dummy1;    // = 0x00

  char  symbol[7]; // 7 char = 6 char symbol + 1 char '\0'

  int   date;      // 20110407

  int   time;      // 13:14:25 = 131425

  int   weather;   // 00 = , 01=, 02=, 03=

  char  title[64]; // title

  int   offset;    // offset in "symbol.cnt"

  int   length;    // content length

  int   date2;     // date2 = date

  int   time2;     // time2 = time

 

  void set(const char *symbol, const char *title, int offset, int length){

    memset(this->symbol, '\0', 7);

    memset(this->title, '\0', 64);

    this->dummy1 = '\0';

    this->weather=0x03;

    strcpy(this->symbol, symbol);

    strcpy(this->title, title);

    this->offset = offset;

    this->length = length;

  }

  void datetime(int date, int time){

    this->date  = date; this->time  = time;

    this->date2 = date; this->time2  = time;

  }

};

股票代码和名称数据格式

 

 

struct TdxSymbolMap {

  char symbol[6];    // 6 digits

  char dummy1[18]

  char name[8];      // 4 characters in GB2312

  char dummy2[218];

}

 

 

void tdx_read_symbols(const char *file){

  FILE *fp=fopen(file.c_str(),"rb");

  fseek(fp, 50, SEEK_SET);

  char buf[250];

  while(250 == fread(buf,1,250,fp)){

    std::string symbol(buf,0,6);

    std::string name(buf+24,8);

  }

  fclose(fp);

}

·         通达信的5分钟数据结构如下,我在VB中调试过了: 
Public Type tdxLC5 '
通达信分时LC5文件格式 
tdxD As Integer '
日期 
tdxT As Integer '
时间 
tdxO As Single '
开盘 
tdxH As Single '
最高 
tdxL As Single '
最低 
tdxC As Single '
收盘 
tdxJ As Single '
成交量 
tdxN As Long '
成交额 
tdxX As Long '
保留 
End Type

读取时32字节为一段

 

 

板块

BLOCK.DAT :
typedef struct _TDXBLOCKDATAFILEHEADER
{
    union
    {
        char       Header[0x182];
    };
}TDXBLOCKDATAFILEHEADER,*PTDXBLOCKDATAFILEHEADER;

typedef struct _TDXBLOCKDATA
{
    char                BlockName[9];
    unsigned short int  Num;
    unsigned short int  Data1;
    char                CodeName[400][7];
} TDXBLOCKDATA,*PTDXBLOCKDATA;

typedef struct _TDXBLOCKDATFILE
{
    TDXBLOCKDATAFILEHEADER      Header;
    TDXBLOCKDATA                Block[n];
}TDXBLOCKDATFILE,*PTDXBLOCKDATFILE;






日K线数据格式

/** 文件路径: Vipdoc/sz/*.lday*          Vipdoc/sh/*.lday*/struct TdxRecord {     // 日K线数据结构  unsigned int date;   // e.g. 20100304  int _open;           // *0.01 开盘价  int _high;           // *0.01 最高价  int _low;            // *0.01 最低价  int _close;          // *0.01 收盘价  float amount;        // 成交额  int vol;             // 成交量(手)  int reserved;          float open(){  return 0.01*_open; }  float high(){  return 0.01*_high; }  float low(){   return _low*0.01; }  float close(){ return _close*0.01; }};

日记文件数据格式

/*************************************************** Tdx Diary File Structure** Diary Path:  T0002/diary/sz/002036.idx (index)*              T0002/diary/sz/002036.cnt (content)**  File need purge after diary was modifed**************************************************/struct TdxDiary_Idx {  int   id;        // 0xffffffff = deleted, auto incr  char  dummy1;    // = 0x00  char  symbol[7]; // 7 char = 6 char symbol + 1 char '\0'  int   date;      // 20110407  int   time;      // 13:14:25 = 131425  int   weather;   // 00 = 晴, 01=阴, 02=雨, 03=雪  char  title[64]; // title  int   offset;    // offset in "symbol.cnt"  int   length;    // content length  int   date2;     // date2 = date  int   time2;     // time2 = time  void set(const char *symbol, const char *title, int offset, int length){    memset(this->symbol, '\0', 7);    memset(this->title, '\0', 64);    this->dummy1 = '\0';    this->weather=0x03;    strcpy(this->symbol, symbol);    strcpy(this->title, title);    this->offset = offset;    this->length = length;  }  void datetime(int date, int time){    this->date  = date; this->time  = time;    this->date2 = date; this->time2  = time;  }};

股票代码和名称数据格式

/**************************************************** 股票代码列表和股票名称*  T0002/hq_cache/shex.tnf*  T0002/hq_cache/szex.tnf***************************************************/struct TdxSymbolMap {  char symbol[6];    // 6 digits  char dummy1[18]  char name[8];      // 4 characters in GB2312  char dummy2[218];}void tdx_read_symbols(const char *file){  FILE *fp=fopen(file.c_str(),"rb");  fseek(fp, 50, SEEK_SET);  char buf[250];  while(250 == fread(buf,1,250,fp)){    std::string symbol(buf,0,6);    std::string name(buf+24,8);  }  fclose(fp);}



通达信在前,大智慧在后

通信达分时数据格式通信达分时数据格式
通达信的zst的数据记录是每6508个字节为一天的数据,每26个字节为一个分钟的记录,这26个字节是这样分配的,时间占两个字节化为十进制为570的话表示9:30分(570/60=9.5) 
下一个是占四个字节的叫现价,再下四个字节叫均价,另外还有两个字节为该分钟成交量(现在有可能已经改为四个字节),剩下的14个字节是预留的,那么大家会发现用我以前所有介绍的方法求出的现价和均价都是个天文数字,和股票价格相差甚远但又有规律似的,一般好像玛雅人才用到似的,我介绍一种最简单的办法给大家去求价格的对应关系,大家任找门股票把他的在整数位价格对应的四个字节的16进制和价格位记下来,如4元对应40800000 
其实这时你如果对zstli任意个16进制的价格x 
想求出他的对应的真实价格,只要用过比例式就能求出,不过先别高兴去操作,因为并不是所有价格档次都是同个比例的,大家看下面的表对照一下,我已经帮大家总结到32的价格,可算到64块钱内个股票64和128元的各位有兴趣在回复中补上,补充一点就是该方法是我导师陈尹力教授指导下完成的,程序代码将公布在个人随笔里的思想里面,也是这个月四月发布,由于笔记本被偷失去很多资料,具体公布的东西仅供大家参考,也作为抛砖引玉,支持我的朋友请在回复中发表您的发现,丰富知识内容。
该算法适用与所有通达信行情软件,如南方证券,鑫网通达信行情软件,并且价格的换算算法对通达信的day日数据里面的价格也适用


      RMBzst数据zst数据10进制1¥对应的16进制间隔人民币间隔1¥对应的10进制间隔
      ABCDEF
      03F80000010653532164000001¥4194304
      44080000010821304322000001¥2097152
      84100000010905190401000001¥1048576
      16418000001098907648800001¥524288
      32422400001109655552400001¥262144
        1118830592   

按比例算法求。设取到的数为X(化为十进制的了),那么(X-C)/real(x)=F/(1¥*1000) 
扩大一千倍,其实以上的C和F就是你可以通过判断逻辑求出取哪个对应的哪个C只有real(x)未知
移动方程两边可求出准确的价格(均价可达到0.001精度),求出后的十进制价格是放大了1000倍的

  大智慧新一代Level-2 分笔成交数据格式返回首页
返回股票数据格式首页
大智慧新一代Level-2 分笔成交数据格式
level2与传统行情的差别,在于传统行情是6秒撮合数据,level2是3秒撮合数据,大智慧level2可以浏览到逐笔明细.
Level-2的逐笔成交数据是缓存在dzh2\data\sh\TEMP目录下,文件名以证券代码为名,后辍是.L2D,如果重启大智慧,L2D文件会全部被删除,而且临时文件只有在浏览过该证券的逐笔成交后才会生成,不过花的时间也不算太多。
起止地址 数据内容 数据含义 数据类型 
00 - 03 F4 9B 13 FC 日线文件标志 int 
04 - 07 10 02 00 00 未知 int
08 - 0B 00 43 DF 46 1970.01.01 00:00:00始的秒数 int 
0C - 0F 5D 05 00 00 证券总数 int 
10 - 13 ED 20 00 00 未知 int 
14 - 17 ED 20 00 00 未知 int 
18 - 21 30 30 30 30 30 31 00 00 证券代码 byte[10] 
22 - 25 9C 12 00 00 日分笔记录数 int 
26 - 57 00 00 BA 03...FF FF 记录块号 char[25]
00041000 记录页起始点,
每记录长: 0x34 = 52
每页记录数: 0xEC = 236
每页长: 每记录长0x34 * 每页记录数0xEC = 0x2FF0 = 12272

地 址 数据内容 数据含义 数据类型 
41000 - 41003 35 FA DF 46 1970.01.01 00:00:00 始的秒数 int
41004 - 41007 00 00 18 41 最新价 float 
41008 - 4100B 00 80 B4 43 累计成交量 float 
4100C - 4100F 80 46 A7 48 累计成交金额 float
41010 - 41011 51 9C 累计成交笔数 char 
41012 - 41013 00 00 未知 char
41014 10 累计成交笔数的溢出标志(00|10) byte
41015 80 买入,卖出标识(80|E0买入,C0|A0卖出) byte
41016 - 41017 23 01 委买量1 char 
41018 - 41019 8E 5B 委买量2 char
4101A - 4101B 80 27 委买量3 char
4101C - 4101D 8E 5B 委买量4 char
4101E - 4101F B8 40 委买量5 char
41020 - 41021 23 01 委卖量1 char 
41022 - 41023 8E 5B 委卖量2 char
41024 - 41025 80 27 委卖量3 char
41026 - 41027 8E 5B 委卖量4 char
41028 - 41029 B8 40 委卖量5 char
4102A 16 委买价1 与成交价的差 byte
4102B 9A 委买价2 与成交价的差 byte 
4102C 80 委买价3 与成交价的差 byte 
4102D 40 委卖价4 与成交价的差 byte 
4102E 30 委卖价5 与成交价的差 byte
4102F 57 委卖价1 与成交价的差 byte
41030 68 委卖价2 与成交价的差 byte
41031 69 委卖价3 与成交价的差 byte
41032 7A 委卖价4 与成交价的差 byte
41033 81 委卖价5 与成交价的差 byte

0 0