当前位置:   article > 正文

通达信日线day文件格式详解(含港股)_c语言读取tdx日线文件

c语言读取tdx日线文件

最近在学习量化分析,需要采集一些历史数据,虽然途径有很多,但通达信自带的数据是不错的获取途径。
但现有网上的资料大多说明不清晰,导致浪费了不少时间。现把自己的解析写出来,为各位爱好者提供帮助。

这里只涉及日线历史数据,主要是以.day文件存在( 还有eday fzline minline 等其他指标,暂时不详细讨论),包括的途径:
vipdoc\sh\lday —上海
vipdoc\sz\lday —深圳
vipdoc\ds\lday —扩展

vipdoc\cw 和vipdoc\ot 两个目录尚未明白,如果有高人请指点一二。

内容格式:
每32个字节为一天数据
每4个字节为一个字段,每个字段内低字节在前。
但每个文件格式有所不同,这是比较坑人的地方。
00 ~ 03 字节:年月日, 整型
04 ~ 07 字节:开盘价
08 ~ 11 字节:最高价
12 ~ 15 字节:最低价
16 ~ 19 字节:收盘价
20 ~ 23 字节:成交额(元)
24 ~ 27 字节:成交量(手)
28 ~ 31 字节:保留,一般都是0

其中开盘价、最高价、最低价、收盘价, 在sh或sz 中是整数,其中基金或债券等需要除以1000,普通股票和指数等则除以100,而在扩展行情中则是浮点数
特别需要解释的是:
在上证 sh\lday 中,sh204xxx 表示逆回购债券,sh5xxxxx 表示基金,sh88xxxx 表示上海板块指数,sh90xxxx表示上证B股,sh99xxxx表示指数,其余sh6xxxxx是上证A股,sh000xxx 上海指数,其中有几个指标需要注意,sh000001与sh999999其实都是上证指数,
在深证 sz\lday 中,sz2xxxxx深圳B股,sz1318xx 深圳逆回购债券,sz1xxxxx 表示债券、基金,sz0xxxx深圳A股,sz3xxxxx 创业板,
在扩展 ds\lday 中,文件格式为 xx#xxxxx.day , 其中#前2位代码分别表示属性,如31#xxxxx 表示港股主板,71#xxxxx 表示港股通,47#xxxx表示债券等。

几个重要的代码:
sh99999 sh000001 上证指数,真的有两个代码,一样的数据
sh39001 深证成指
27#HSI 港股恒生指数
47#00405 港股越秀房产基金
31#01810 港股小米集团
71#01508 港股中国再保险

示例代码如下():
详细完整代码和程序可参考 通达信day格式文件转换(含港股和基金等

// 如果认准一个目标,那么就遇事要忍,出手要狠,善后要稳
//希冀一旦产生,除了实现它,别无他法
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <io.h>

union data 
{
	int n;
	float m;
}

int main()
{
    FILE *fp;
    int nLen;
    int i=0;
    union data num[8];
    // 把任意一个day文件拷贝为s.day,并以二进制方式打开
    if( (fp=fopen("s.day","rb")) == NULL )
    {  
       printf("Fail to open file!");
        exit(0);
    }

    while(!feof(fp))
    {
        nLen = fread(num, sizeof(int), 8, fp);
        for(i=0;i<8;i++)
        {
        
            printf("i=%d  ",i);
            // 把day的数据显示出来,可看到具体的数据,分别显示原始16进制数据、整数型和浮点数
            printf("== %x and  %d  and %f \n",num[i].n,num[i].n,num[i].m);  
                       
        }
   }

    fclose(fp);
 
    return 0;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44


这是sz000631 在20180115的数据

在这里插入图片描述

这是小米公司的上市首日的数据

不同的股票取值不同。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/171086
推荐阅读
相关标签
  

闽ICP备14008679号