分享

通达信数据格式

 imelee 2017-03-17

概念板块数据结构

    文件存储路径: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;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多